Jump to content
IGNORED

TIATracker: A new sound routine and sequencer application


Kylearan

Recommended Posts

This may not have been brought to your attention, or the problem might be unique to my system, but every time I attempt to name my instruments it crashes tracker. Usually I have enough time to hit maybe 3 keys before the collapse...

Edited by Vuurniac
Link to comment
Share on other sites

Hi Kylearan, thanks for making this tool. We are just start trying your tool:

How can I change the font size? I'm using a 4k monitor and like a lot of other software (lightwave...) it's very difficult to read.

Could you add a player for users of Batari?

 

Our actual project:

www.drakhansnight.com

Link to comment
Share on other sites

This may not have been brought to your attention, or the problem might be unique to my system, but every time I attempt to name my instruments it crashes tracker.

That's indeed something nobody else ever reported, not even close, so it might be related to your system. What system do you have?

Link to comment
Share on other sites

How can I change the font size? I'm using a 4k monitor and like a lot of other software (lightwave...) it's very difficult to read.

Unfortunately you cannot change the font size. :( I realize that's a problem for users of 4k monitors, but the development overhead to implement this is too big for such a small hobby project for me, sorry about that!

 

Could you add a player for users of Batari?

I don't know batari Basic and have no idea if it could be done, but would be happy to try. Is batari Basic still maintained?

Link to comment
Share on other sites

[...]if I opened a project file first then hit new, made a track...

Turns out it wasn't a critical bug after all. "New song" forgot to clear the meta-data (author, name, comment, pitch guide) so it carried over to the new track, but no old data was ever overwritten. I've fixed this in the repository already but will wait with the release until some other features are finished.

Link to comment
Share on other sites

visual batari basic is not updated since 2014, batari basic is old too, but RevEng seems to add new kernel and he is probably the person to contact for adapt the player.

Unfortunately, we don't know how to deal with asm...

 

Thanks for reply for the 4k font, I'll change my glasses ;)

Link to comment
Share on other sites

I don't think there's anything special here, I'm running a 64-bit Windows 7 OS, so there should be no issues there...

But anyway, here's my new song... once I figure out how to work with the overlay percussion instruments I might add a few hi-hats to Channel 2:

https://soundcloud.com/hunretrogeek/atari-2600-music-solid-gas

  • Like 3
Link to comment
Share on other sites

I don't think there's anything special here, I'm running a 64-bit Windows 7 OS, so there should be no issues there...

That's really odd. I'll try to find a Win7 64 bit machine for some more testing, as I'm unable to reproduce the problem here or see any issues in the relevant code...

 

But anyway, here's my new song... once I figure out how to work with the overlay percussion instruments I might add a few hi-hats to Channel 2:

https://soundcloud.com/hunretrogeek/atari-2600-music-solid-gas

That's really nice! I like VCS tunes with longer notes; a lot of tunes only have very short "blib" sounds in their melodies, probably so they can stuff in more drums and bass in the same channel. Yours is different, and good!

 

 

In other news, I've squashed another bug that occured when you hit "play" and had non-aligned patterns. I've also reworked the replayer thread in the tracker which should be much more precise now and produce no more jitter, i.e. the sound should be much closer to how Stella sounds on slower machines. And finally, I've added the option to export to .csv, which I need for syncing demo effects to music. It's only in the repository right now; I'll release a new binary version in a couple of days when I've finished the ability to export to k65.

Link to comment
Share on other sites

 

I don't know batari Basic and have no idea if it could be done, but would be happy to try. Is batari Basic still maintained?

 

This example from vwBASIC might help give you some ideas for the api:

 

Two Tracker variables are exposed to give fine grain control to BASIC - sequencing (MUSICINDEX) and tempo/envelope (SUSTAINFORFRAMES).

 

If BASIC does nothing, the Tracker will loop the first chiptune.

 

BASIC can point the Tracker to any subtune or pattern within a subtune, and alter the tempo and envelope of the sound.

 

The previous BASIC Tracker demos I posted using only the sequencing variable had the characteristic short blib sounds.

 

This example uses both variables to more fully illustrate the API - the button changes the tempo/envelope setting and holding the joystick in a direction repeats a single pattern and selects a target subtune when you let go:

 

BASIC_sequencing_tempo_and_envelope_example.bin

 

1 rem --- **********************************************************

2 rem --- sequencer tempo and envelope control in BASIC: *

4 rem --- **********************************************************

5 rem ---gameloop subroutine, runs every frame: ---

7 rem ---gameloop2 subroutine, runs every frame: --

8 rem ------------------------------------------------

10 if joy0right=1 then MUSICINDEX=45:rem Tracker index variable

20 if joy0left=1 then MUSICINDEX=75

30 if joy0up=1 then MUSICINDEX=160

40 if joy0down=1 then MUSICINDEX=77

60 loadplayer0(0):player0x=MUSICINDEX:player0y=MUSICINDEX*2

80 f=f+1:rem framecounter

90 if r>0 then SUSTAINFORFRAMES=SUSTAINFORFRAMES+1:r=r-1 else r=s

100 if f<10 then return:rem only accept button press every 10th frame

110 f=0

120 if joy0fire=0 then return

130 s=s+1: rem slide delay (incremental)

140 if s=>12 then s=0

160 r=s

170 i=r*8:loadplayer1(i):COLUP1=200:vwpixel(7,3,bindplayer1)

 

chiptunes

8, 24, 8, 20, 8

10,24, 10, 20, 8

6, 5, 4, 12, 5

12, 9, 12, 7, 4

8, 24, 8, 20, 8

10,24, 10, 20, 15

8, 24, 8, 20, 8

10,24, 10, 20, 8

0,0,0,0,0

 

etc...

Link to comment
Share on other sites

TIATracker version 1.1 is finished, fixing some bugs and adding new features:

  • Improved timing precision of the tracker replayer. It should match what you hear in Stella now even on slower systems.
  • Added ability to export the VCS player and song data to K65.
  • Added ability to export song data to .csv (I need this for syncing music and demo effects).
  • Fix: "New..." now properly clears meta-data (author, name, comment, used pitch guide).
  • Fix: "Play" in the tracker with channels having varying pattern lengths now starts replay at the correct position for channel 1 and no longer crashes.

I've updated the first post with the new version.

 

Also, yet another demo using TIATracker for music has surfaced. :)

Link to comment
Share on other sites

Hey, I have tried my luck with the new release and I think I'll have to go back to the beta because although the skipping is a lot more consistent now, this resuts in certain frames of the envelopes just completely not existing. Like let's say I have a basic instrument with two entries: 5 15. Ideally when I let go of the key it should make a pop at volume 15 and then stop, but the 15 entry is NEVER played. Just never. Similar things happen with percussive instruments, now the first frame of every percussion instrument just does not happen, and TIAtracker is still nowhere near to using all the CPU time of my computer. So I would love to test this more and make some more music with it but sadly I can't. :(

Link to comment
Share on other sites

Thanks for this software! It's definitely an improvement on my older methods, in terms of sound engine capabilities.

 

I thought I'd also share the song I made using tiatracker for the recent battleofthebits 'summer chip VI' compo;

 

https://www.dropbox.com/s/gl2s4x36vm5sgs9/parallel%20ifs.bin?dl=1

 

 

I'm glad to hear that playing patterns of two different length (or 1 pattern on the left only) no longer crashes the program for version 1.1! That happened to me a lot.

 

By the way, is there a copy/paste function that I'm missing somehow? I can duplicate a pattern, but not a subsection of notes within a pattern.

I also have a suggestion for the release mechanism for some of the instruments - sometimes I want an instrument to go through the release envelope as soon as it is played, rather than wait for the next row to be given a note release command (as I might want to use that space for a different note). Could there be a setting within the instrument editor that would allow that?

 

 

 

 


Link to comment
Share on other sites

The more I read at AtariAge the more I am shocked (in a positive way):

Never expected that there exist trackers for this platform! :-o

 

What about a port of fast tracker? :-D No just kidding!

 

 

@Kylearan:

Any plans to go a step further and manipulate the sound registers more often (or even each scanline) to create new effects?

Link to comment
Share on other sites

By the way, is there a copy/paste function that I'm missing somehow?

No, unfortunately not. :( I'm aware that copy/paste (and undo/redo) are very basic functions we expect all programs to have, but this project was big enough as it is already and I had to cut out some things to be able to finish this at all in a reasonable amount of time.

 

It's definitely on my list of things to add in the future, though. :)

 

I also have a suggestion for the release mechanism for some of the instruments - sometimes I want an instrument to go through the release envelope as soon as it is played, rather than wait for the next row to be given a note release command (as I might want to use that space for a different note). Could there be a setting within the instrument editor that would allow that?

Having the same instrument sometimes start in attack/decay and sometimes in release is not possible [without a major overhaul], as I don't have any bits to spare to specify this in a row - the data format is very size-optimized. ;)

 

But if you are willing to create two different instruments for that, it should be possible. I think I could add an option in the instrument editor that specifies if that instrument should start in Release mode or not. Would that work for you?

Link to comment
Share on other sites

What about a port of fast tracker?

:P

 

 

@Kylearan:

Any plans to go a step further and manipulate the sound registers more often (or even each scanline) to create new effects?

I had thought about that, something like C64 multispeed tunes (2x, 4x, 8x register updates per frame). But a musician told me that this would not be that useful on the VCS as you don't have a lot of meaningful parameterts to update, like filters on the C64 and so I've dropped the idea for now.

 

Updating each scanline is certainly possible and actually has been done already, but that's out of the scope of TIATracker and you'd need a dedicated player for that. :)

  • Like 1
Link to comment
Share on other sites

I think I could add an option in the instrument editor that specifies if that instrument should start in Release mode or not. Would that work for you?

That would be perfect :)

 

I've just realized that I don't need to add that feature after all - you can already do this in the current version via other means. (My brain works very slow when I'm on vacation. ;))

 

Simply model the envelope you want to hear once in the attack/decay phase instead of the release phase, and set the volume in the sustain and release phases to 0. That way, the envelope gets played immediately and exactly once.

 

There's actually an example instrument in the "instruments" folder called "Pizzicato bass.tti" that implements this idea. You can see how it works there.

Link to comment
Share on other sites

I'm trying to make a shorcut cfg with note pad and it does'nt work: When I try to use the new one, all the keyboard doesn't work. Does anyone have succeed this?

 

edit: got it, it's broken when I type """ because on azerty the " key is the 3 key of the german keyboard.

any idea how to fix it?

Edited by jbaudrand
Link to comment
Share on other sites

I'm trying to make a shorcut cfg with note pad and it does'nt work: When I try to use the new one, all the keyboard doesn't work.

If after editing keymap.cfg the shortcuts no longer work then that means that the structure of they .cfg file is no longer valid and TIATracker fails to parse it. (Right now TIATracker fails silently and does not alert the user to this; I've now made a ticket to change that. :) )

 

it's broken when I type """ because on azerty the " key is the 3 key of the german keyboard.

The " character is a special control character which you have to escape. Either use "\"" or "Shift+3" to make it work.

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...