Jump to content
IGNORED

TIATracker: A new sound routine and sequencer application


Kylearan

Recommended Posts

I'm still looking forward to this.

I tried the version posted, but I could not even make a simple percussion loop that sounds like "boots and cats and boots and cats and..."

 

My first impression would be that it has a large learning curve, or features are not in yet, or I haven't learned enough music theory to use this software.

Link to comment
Share on other sites

My first impression would be that it has a large learning curve, or features are not in yet, or I haven't learned enough music theory to use this software.

 

The problem is that ideally, you'd want to have experience with both tracker software and the TIA limitations. I guess most people here know the TIA, but many have never used a tracker before. Contrast this with the fact that most chip musicians who use trackers routinely don't know the TIA chip, and we have a problem...

 

Once the 1.0 version is finished (which will include a manual), I'll try to get some chip musicians I know to create some example tunes and instruments, which hopefully makes the learning curve less steep. :)

 

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Heya pOke! Thanks! :)

 

I have finished the code and the manual for version 1.0 now. The pitch guide creator works really well to get more usable notes if you roughly know beforehand what you need. :)

 

Now I'm waiting for my musician to finish an example song before finally releasing the program. There's of course still a lot of room for improvement (like adding undo/redo, for example), but that has to wait for a future version, if there will be interest in that.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

I'm very happy! :) Juice, a chip musician who has volunteered to create an example song to go with TIATracker, had a first test run with it and after only one hour of work, produced a very short and simple loop to familiarize himself with the program. I've attached the ROM in case you're interested. Of course it's only 7 seconds long for now, but considering he had no previous experience with the VCS and used my tracker for the first time, I'm really excited that he still came up with something nice-sounding in such a short timeframe. This supports my hope that if actual musicians are given access to the right tools, the VCS can do a lot better music than many people believe. ;)

 

Of course my program being used for real for the first time also uncovered several annoying bugs I had missed, hrmpf. I have to fix those first before finally releasing version 1.0, but I think I should be able to do this during the next two weeks.

 

Until then I've also attached the manual which is finished already, for the curious.

simple_loop.bin

TIATracker_manual.pdf

  • Like 4
Link to comment
Share on other sites

Hey, this is looking like a wonderful piece of software! I will surely keep using it. Sadly I failed at assembling a binary but I've posted my first song to Youtube just so that I can show you.


I've been working with other systems like the NES and the Genesis for years, and when I have time I also program for the former and I've always wanted to see what I could accomplish with something as limited as the 2600. Keep it up, this will make it so much easier until I can get a grasp of how the peripherals of the system work to write my own engine eventually.
  • Like 7
Link to comment
Share on other sites

Sadly I failed at assembling a binary

Yeah, sadly the work-in-progress version of TIATracker posted here is very old and still full of bugs. :-(

 

I've posted my first song to Youtube just so that I can show you.

That's wonderful! There are some nice effects in there, and it's unsually complex for a VCS song. I like it!

 

That you did this with such an early version of TIATracker is amazing! Now I'm feeling really sorry that I never posted newer versions for so long. :-( When I'm back from my business trip in a couple of days, I'll release the almost-done-version I currently have! Among lots of new features (being able to customize your own pitch guides being the most important one), it also has a lot of bugs fixed, in particular the assembly one.

Link to comment
Share on other sites

Looks cool, I'm using some similar ideas in my new version of Loopcart.

Your pioneering music driver was the only reason people have been able to produce VCS demos for the demoscene, so I'm looking forward to your new version of Loopcart to see what you come up with! And maybe TIATracker can draw some inspiration from it. ;)

Edited by Kylearan
Link to comment
Share on other sites

Thank you for the feedback I'm already quite happy with the way things are in the old version except for the fact that the tracker seems to be dropping frames quite often so things sound a bit jittery and not exactly the way I intended. I'm happy to take what I've learned over the past years and bring it to this system. In fact I would love to create music for demos or games. The challenge aspect that comes from the terrible 5-bit frequency divider is very interesting to me.

Also, I haven't looked at any assembly sources but is it possible to get the processing done sqeezed into the kernel? At least during scanlines where you know for a fact that there is no need to send any new data to the TIA, like a status bar border? I imagine that is one way to get more processing time out of the machine as well as chopping up some of your code into short sections and executing the bits on every scanline instead of writing to WSYNC immediately after all the TIA-related business is taken care of.

Link to comment
Share on other sites

I'm not hearing dropped frames in the demo, but no doubt a musician has better ears for this sort of thing than I do. But I don't think dropped frames are from 6502 code efficiency.

 

I think it's either a problem with emulation on your end, or you're hearing dropped frames from the time keeping variable not being exactly aligned to the framerate. The latter would theoretically sound worse under PAL, since it has somewhat longer lasting frames.

Link to comment
Share on other sites

[...] except for the fact that the tracker seems to be dropping frames quite often so things sound a bit jittery

Yep, that's a known problem and one of the two big things to fix before the 1.0 release. I'm on it. :)

 

The 6502/VCS version of the replayer code of course does not drop frames, but the Windows replayer routine has annoying jitter in the audio code which on weaker systems might even cause frame drops. The replayer thread does not get woken up at a constant 50/60 Hz as intended - that's a problem with the timer I currently use. It sounded a lot more accurate in the documentation than it seems to be in reality. :-/

 

Right now I'm in the process of implementing a different method which should be more reliable.

 

In fact I would love to create music for demos or games. The challenge aspect that comes from the terrible 5-bit frequency divider is very interesting to me.

:thumbsup:

 

 

Also, I haven't looked at any assembly sources but is it possible to get the processing done sqeezed into the kernel? At least during scanlines where you know for a fact that there is no need to send any new data to the TIA, like a status bar border? I imagine that is one way to get more processing time out of the machine as well as chopping up some of your code into short sections and executing the bits on every scanline instead of writing to WSYNC immediately after all the TIA-related business is taken care of.

You can call the replayer code anytime you want: VBLANK, Overscan, during display, no problem. It only needs a couple of scanlines to execute, depending on the options used in the song.

 

Slicing up the replayer code to interleave it with standard Kernel display code is theoretically possible of course, but might be challenging to do in practice. There are quite a few conditional branches in there; also, a lot of the time all 3 registers are in use at the same time, which makes interleaving standard display code hard to do.

  • Like 1
Link to comment
Share on other sites

For anyone who is interested, here is a new beta version of TIATracker. Unless those people who are already using it find critical bugs, the only thing still missing is Juice's example song (which has already been enhanced some) and I'll add that and release v1.0 next week. I have already a long list of possible improvements, but that will have to wait for a future version.

 

Some sceners surprised me by finding my repo, cloning it and already using TIATracker to make music for a small VCS demo released at the French VIP party this weekend! They have uncovered some bugs in the VCS replayer routine while doing so, which I've fixed by now. I haven't heard the song yet however, but I'm quite excited that people are already using the tracker even though it's not even finished yet. :)

  • Like 3
Link to comment
Share on other sites

Greetings palfriend! I hail from a music creation and competition website called http://battleofthebits.org/and I'm sure your new tool will make many of our members happy and result in quite a lot of new 2600 music!

 

I personally have been aching for a 2600 tracker for YEARS, and am very happy that this is now a reality. ^_^

 

Some questions and bug reports:

 

*Naming instruments crashes the program on my machine (Win7)

*Song playback does not work if patterns are not equal for each channel. Is this intended?

*Furthermore, the "goto" function does not work properly unless it is mirrored at the same place in the sequence on each channel. I would assume this is not intended if you have the ability to have them separate on each channel in the first place.

*Do you intend to add a .bin export for 2600 emulators?

 

That is all I have for now, but I'll be sure to get back to you if I find anything else. Anyways, great work!

 

 

*Edit// And here is a showcase of some 2600 tunes made for BotB:

http://battleofthebits.org/arena/Entry/Fire+of+Shibuya/12108/

http://battleofthebits.org/arena/Entry/The+Year+2014-A/11996/

http://battleofthebits.org/arena/Entry/Zombified+Zombie+Bones/1818/

http://battleofthebits.org/arena/Entry/Oil/12071/

http://battleofthebits.org/arena/Entry/Octahedric+Speedrave/16589/

Edited by chipchampion
  • Like 5
Link to comment
Share on other sites

I personally have been aching for a 2600 tracker for YEARS, and am very happy that this is now a reality. ^_^

Thanks! Considering I wasn't sure if anyone at all would use the tracker, I'm quite excited to see so many people expressing enthusiasm for it. :)

 

* Song playback does not work if patterns are not equal for each channel. Is this intended?

* Furthermore, the "goto" function does not work properly unless it is mirrored at the same place in the sequence on each channel.

What exactly is not working? Both seem to work fine here on my end (and for a musician friend as well).

 

I'll release a v1.0 version this week; maybe you could test again and if it still doesn't work, send me an example .ttt?

 

Do you intend to add a .bin export for 2600 emulators?

You can use the "Export complete player to dasm..." menu item and use dasm on "<songname>_player_framework.asm" to produce a .bin.

 

I had thought about a "Compile and start in Stella..." menu item, but in the end didn't really see the need for that, considering you'd rarely use this and it's so easy to do manually. If you have a good use case for it, I could add that of course!

 

And here is a showcase of some 2600 tunes made for BotB:

Some good stuff! You can hear Paul Slocum's player in most of the tunes. :)

Link to comment
Share on other sites

I've discovered that the pattern thing was more user error. So song playback will halt once the end of a pattern is reached if there is no goto. Myself (and probably most tracker users) would assume things would just loop automatically and that goto is more a function of not returning to the first pattern.

 

I also managed to figure out how to make .bins with the help of b00daw (the legend).

Link to comment
Share on other sites

So song playback will halt once the end of a pattern is reached if there is no goto. Myself (and probably most tracker users) would assume things would just loop automatically and that goto is more a function of not returning to the first pattern.

You're right, that would be the sensible behavior. :) The reason I did it differently is that you can save 2 bytes in the replayer routine by not using goto and that the default configuration of the tracker is for minimal ROM usage. I realize that it's probably a rare case where you don't want to use goto, but still...

Link to comment
Share on other sites

Version 1.0 is finished! I have edited the first post accordingly, including a link to the sources.

 

Besides lots of bug fixes, it now includes an example song, the ability to enter meta data (author, song name and a comment) and more precise timing during song replay in the tracker (not yet optimal, though).

  • Like 1
Link to comment
Share on other sites

Battle of the Bits just had our first 1 hour compo with version 1.0, hopefully the first of many!

 

The only problems I had was one crash (which I am unable to replicate). And also, the keyboard stopped updating to the correct notes relative to the waveform for each instrument on the Track field, I had to toggle to the Instrument field. (I haven't been able to replicate this either when reopening the file)

  • Like 1
Link to comment
Share on other sites

Battle of the Bits just had our first 1 hour compo with version 1.0, hopefully the first of many!

Can you add the TIATracker to your website?

 

E.g. http://battleofthebits.org/lyceum/View/tia+(format)/

 

EDIT: Done :thumbsup:

 

BTW: This one is cool!

Edited by Thomas Jentzsch
  • Like 1
Link to comment
Share on other sites

Two major issues so far...

 

A couple times if I opened a project file first then hit new, made a track and pressed save it would save a file onto my hard drive as the previously opened project file data with the name of my choice. That sucked.

 

Sometimes on export the groove settings sound different from play within tracker and export as binary to Stella emulator. Since they both use the same sound emulation core, I'm wondering if the export functions are the same as the engine play functions.

 

Otherwise I'm just a little pissed off that it happened but I'm looking forward to using it more often. :) Just have to jump around bugs and hack around at the moment.

Link to comment
Share on other sites

A couple times if I opened a project file first then hit new, made a track and pressed save it would save a file onto my hard drive as the previously opened project file data with the name of my choice.

Ouch, that's indeed a bug, and one that can have terrible consequences as you've experienced - sorry about that! :( Will fix that tomorrow!

 

Sometimes on export the groove settings sound different from play within tracker and export as binary to Stella emulator.

What exactly do you mean with "groove settings"? Overall tempo? How instruments sound? Something else?

 

If the problem is easy to reproduce, could you maybe send me an example .ttt file with a short explanation where exactly the problem is?

 

Since they both use the same sound emulation core, I'm wondering if the export functions are the same as the engine play functions.

There's one known issue at the moment. VCS/Stella playback happens at exactly 50/60 Hz per instrument update, but on slower PCs the replay routine in the tracker has some slight jitter, i.e. sometimes an update happens 1 or 2 ms later than intended.

 

I'm planning to improve that for the next release; it's a bit hard to debug because my PC is quite fast.

 

This might be the cause of the problem you hear.

Edited by Kylearan
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...