Arkos Tracker is a freeware Windows-based tracker to compose music for the AY3-8912, a soundchip used in the Amstrad CPC, but also on MSX, Spectrum, Atari ST and many other computers in the 80's.
Arkos Tracker is born from the native CPC tracker called STarKos, which I also programmed. It retains most of its features, extends some, and will evolve in future versions.
A review of Arkos Tracker by Ultrasyd is also available at CPCScene.com.
If you have feedback, comments, ideas, bug reports or anything to ask about Arkos Tracker:
Arkos Tracker (AT) works the way STarKos does. It is slightly different from conventional 8-bit trackers, but the way it works is also from where come its power and efficiency (yeah).
They represent the basis of your compositions. All the notes are entered there, and you've got 512 of them. Each track is identified by its number. One Track can be up to 128 notes long.
This term is known to all Tracker-users. A Pattern is a little sequence made of a height between 1 and 128 notes. In AT, a Pattern is composed of 3 Tracks. Each Track is independent from each others, and can be used in any other Pattern.
It is possible to have two, or even three same Tracks used in the same Pattern! Along with the transpositions (one per Channel), it is possible for example, to use one Track on Channel 1, and the exact same Track on Channel 2, but transposed by an octave.
If the tracks are longer than the pattern in which they are used, then they won't be played completely. It is possible to use half of a track in a Pattern, and the whole track in another pattern. On the opposite, a Pattern can be longer than the Tracks, in which case there's no problem, you'll find empty notes at the end of the Tracks.
You already know or guess what Instruments are, so I won't dwell on that. You have up to 255 instruments, from 1 to 255.
This type of track may be new to you. They allow to set digidrums and speed changes. Each Pattern has a Special Track, on top of the 3 “normal” Tracks. You have up to 256 Special Tracks available.
Once you've started Arkos Tracker, the main window should appear on your screen and it should look like the picture below.
Pretty self-explanatory. Arkos Tracker songs are saved in AKS format, but you can also load SKS songs, which are STarKos (CPC) song. Due to the differences in the way sounds are handled, the imported SKS songs may sound a little different, but most will be converted successfully. Check the “Format” folder for more information about the AKS format.
First select the Instrument to save or to be replaced by the one you want to load, and then Open/Save Instrument. Instruments are saved as AKI, and use the exact same description as in the AKS format.
Allows you to create a WAV file of your song, according to the Sample rate, Bit rate and Number of channels you want.
Exports the song as an unpacked YM6, that you can load and listen to with ST Sound By Leonard/Oxygen. An option box will ask whether you want to use Interleaved or non-interleaved format. The first is preferably used if you intend to spread your music on the net, as LHA will pack it more efficiently. The second is especially used because some converters may only treat linearly stored register streams.
In order to play the song in your program, it must be exported as binary file. You must provide the export address (in hexadecimal), which is the address in memory where the song will be loaded.
The Lenght of the song is shown and the end address is automatically calculated according to the export address you gave.
The Export SFX only option can be used to export an empty song (no tracks) and the instruments data (which will be used as sound effect in your program). More information in the Player documentation.
A new window will show up. There you can change the various settings of Arkos Tracker.
You'll find here the information related the song. Most are self-explanatory, but for those which aren't :
This one is seen on the top left part of the window. In this field, you can have a list of all the Instruments you have in your song. A first tiny Instrument is always here. The selected Instrument is the one that will be used when entering notes in the Pattern, or the one being edited and played with the keyboard. You will notice three icons just below to it :
For now, it is not possible to completely kill an Instrument, or order them once they are created. It is also not possible to reorder the Instruments.
Just right to the Instuments List is a volume equalizer. A blue bar means “no volume”. An orange bar means that an hardware sound is used in this channel. It is quite handy to know if Hardware envelope are overlapping this way. Below each channel volume equaliser is a little light turning red if noise is used in this channel.
Below, are three buttons, corresponding to the activity of the channels. Right-click to mute the channel, left-click to solo/unsolo. Just left to them is a little Icon called “Polyphony”. More on that later.
It represents the base octave used when putting a note in your music, or when playing with your sound. AT octaves go from 0 to 12, but this componant only goes to 11, as the keyboard allows you to reach the next octave.
Represents the current Speed of the song. You can modify it in real-time, but any Speed command inside the song (in the Special Tracks) will reset it, so use these instead.
Indicates how many lines to jump after a note has been added to a Track.
Represents the rate at which the songis being played. Most productions will use 50hz music (which means that the music will be played 50 times per second), but you may also use 13hz, or 25hz song as well, or up to 300hz. This information is saved in your song.
The beast is on the bottom left corner. This one is very important : it will allow you to link each Track into each Pattern. Understand the main philosophy of AT : the content of a Pattern is independant to the Pattern itself. Each channel of a Pattern is linked to three Tracks. For example, you could have the first Pattern linked to the Track 1 (the bass), 2 (the drums), 3 (the melody). For the second Pattern, you could use the same Drum Tracks, and a new Bass line and Melody. So you'd use new Tracks for them. The second Pattern will thus be linked to Track 4 (new bass), Track 2 (the drums, the same), and Track 5 (new melody).
On top of that, each Track in each Pattern has its own Transposition setting, which you can see by clicking on the “Switch View” button (the magnifier) just above the Linker. You can then transpose the whole Pattern of up to 15 semi-tones, or just the bass line if you want. So a single Track could be reused many times by just transposing it ! Musician will like this feature because it's handy, and coder because it saves a lot of memory.
Also, each Pattern has its own height, independently from the Tracks height. Like said earlier, if the tracks included are bigger than the Pattern height, then they'll be truncated inside this pattern only, which means that the 'overflowed' data aren't erased from the memory at all, they're simply not used in this Pattern. So it's possible to use half of a track in a Pattern, and the whole in another. On the opposite, a Pattern can be bigger than the Tracks inside. In this case, there's no problem, you'll find empty notes at the end of the Tracks.
Finally, the last column is reserved to Special Tracks, which can only contains Digidrum messages and Speed changes. It is possible to ignore them for a whole song if you don't need speed change !
To change a Track number, simply click on it, then enter a number between 0 and 1FF. Only hexadecimal values are accepted ! The buttons just above perform the following actions :
Each Track has a name and a color, as you will see in the Pattern Editor. Its color also sets the background of the Track of the linker, and if the Track upon which is hovering your mouse has a name, it will appear as a tooltip.
The big stuff on the right part of the screen is the Pattern Editor. You'll be able to compose with it (yes, really). You can reach it by pressing F2 (but since the software displays it from the start, pressing F2 won't do a thing).
It works like in any conventional Trackers. You can move your cursor using the arrows of your keyboard, or by clicking once where you want your cursor to move. You can also select a part of the Pattern with the mouse and perform editing operations by right-clicking on it, or with the keyboard shortcuts (see below).
By pressing the Space bar, you can switch the Edit mode to on, and thus put your notes using the keyboard (WSXDC… and AéZ”… to use the next octave). Once a note is written, and cursor moves downward according to the “Steps” value we've seen before. Also, the base octave uses the value “Octave” you can see on the left corner of the screen.
You can see four columns. The first three are the Tracks for channel 1, 2 and 3, according to the Linker. Just above is a field to name the Track, and a Color box to define how beautiful your Track is. Identifying your Track by both a name and color can be very handy, especially as both these information are reported into the Linker (visually for the color, and as a tooltip for the name).
Each Track has four columns in itself. Let's take an example : C#4 5F F +465
Besides the three Tracks is a… fourth one, the Special Track, in which you can only enter in the first column :
Plenty of shortcuts allow you to do plenty of stuff, so you have to have a look at them, it will make your life better. Check the Keyboard manual.
This is the other big stuff. Access it by pressing F3. Don't be afraid. It's simple. And friggin' powerful.
But first of all, we need a little diversion into how works the AY.
We must here have a little talk about the AY capabilities, for you to be able to create great sounds. You can of course use the “factory” presets you can find on the “Instruments” folder of the Arkos Tracker, but creating them is really more cool. If you know everything about the AY, you can skip this part, as we won't fathom all its secrets here… though the terminology might be important for later.
The AY can generate one square sound on each of its three channels, each with a volume (4 bits : from 0 to 15) and a frequency (12 bits : from 0 to 4095). So if you want to have a fading-out sound, you have to give the AY all the volume it has to change (15,14,13,12,…0). That's what I will refer to as “Software envelope”. The coder/musician has to tell the player what to change, when to.
It also has one (and one only) Noise generator (5 bits : from 0 to 31), which is used mostly for drums and sound effects. It can be mixed to any, or all, of the channels, but remember that at a given moment, the same noise value will be used by all the channels using the noise, as you only have one Noise generator.
But the AY also has a Hardware envelope generator. It is made to provide a little ease when programming the AY, however, it is VERY limited for its former use : - Its job is to modify the volume of a channel, using a period given by the musician. - The Hardware volume curve has to be chosen among 8 curves, half of which loops. - The curve always start at an extreme value (0 or 15) to reach the other extreme (15 or 0). So you can't create transitions between given volumes. - There is only ONE generator. So if two sounds use it, they WILL share the same Hardware envelope. Most of the time, no one uses the hardware generator on more that one channel.
So a musician will either choose to use the Software envelope, in which case he will enter all the volumes he wants to hear, OR use the Hardware envelope. Once you have activated the Hardware envelope on one Channel, you CAN NOT use the Software volume anymore, unless you deactivate the Hardware envelope of course. It is an important note.
For all these reasons, no musician uses the Hardware envelope in its former context. But there's a special trick that allow to hear what we know as “Hard sound”, or “Hard bass”, as they are especially efficient with low sounds.
What we do is synchronise the Software and Hardware envelope, so that the Hardware modulates the Software one… Let's say we have a note at 440hz. So our Software frequency is 440hz. To have a nice sounding “hard bass”, the Hardware frequency should be a multiple of the Software frequency. Fortunately for us, multiplying by a power of 2 the Software frequency to get the Hardware frequency is something our beloved Z80 is able to do quickly.
Another nice trick is to force the Hardware software to a very high frequency. Ben Daglish used to do that a lot.
But another point remains : what Hardware curve to use ? You will probably use a looping curve, so that you just have to trigger it once. Four curves are really used a lot : the sawtooth, the triangle, and their inverted. Not a lot of option, but enough to have nice sounds.
What is the use of the remaining Hardware curves ? These will mostly be used if you want a smooth fade-out/in of a sound, but can't have it with a Software curve… Imagine your song replay-rate is at 13hz. Using a Software sound, you will only be able to modify the volume of your sound 13 times per second, which is not as smooth as it seems to be. By using an Hardware sound, all you will have to do is trigger the fade-out curve with the right frequency, and the job is done.
Another important note is about the Register 13 of the AY. It contains the Hardware envelope curve used. Whenever you use a new curve, the R13 is resetted, and the curve is retriggered. So if your sound always use curve, the R13 will be set only once, because triggering the R13 result in a trigger of the curve itself, which can sound quite harsh, so AT prevents that from happening by testing first if the R13 doesn't already contains the value you want to use. Is it however possible to force the Retrig whenever you want. Why ? To give a better attack of a bass for instance. Also, imagine you are using one note multiple times in a row. If you are always using the same note with the same curve, you won't hear the notes being triggered, because the R13 hasn't been modified, so the Hardware envelope hasn't been triggered (except for the first note). In that case, you will put a “retrig” at the beginning of your sound.
The Instrument being edited is chosen through the list on the left corner of the screen. Select one of them and have a look at the Instrument Editor.
On the top is the Instrument name. Pretty self-explanatory. “Speed” just besides is the speed at which the CPU will proceed in your sound. 0 is the fastest speed (your sound is read each frame), 255 the slowest.
The little button besides is here to hear and have fun with your sound. If you click on it, you'll hear your sound using the note written in the button (“C-3” is the default). Now that this button has focus, play with the keyboard to hear your sound on various tonalities (/ and * of the numpad to change Octave, Esc to stop the sound).
Now if you push the little “Polyphony” button near the equalisers we talked about earlier, you activate the “Polyphony” mode, in which your sound is played on every activated channel alternatively, as you play a note ! That's really a nice feature to hear your sound on two, three channels like you would have done if you were editing your song. Except that it's faster and doesn't mess with your song.
Another way to test your sound when you are editing the sounds (with your cursor inside one of the composants below) is by pressing Shift + one note of the Keyboard, and Esc to stop the sound.
Now let's have an overview of what is below.
An Arkos Tracker Instument is composed of what I will refer to “Lines”, which represents each “frame” of a sound, each component if you will. An Instrument is composed of up to 256 Lines, each having a column below (yes, it's rather illogical to have lines being set in columns, but STarKos displayed Instruments in lines, not column).
So just below the scrollbar, we have :
What follows concerns the Software envelope :
Let's skip the “Link” and “Ratio” for now. Just below are :
And now let's look a bit higher. What follows is the most important feature of the Editor :
Important : if there is inconsistency in your sound, then the Link is colored in red. This means that the tracker will use Independant mode instead of the mode you choose. What is an inconsistency ? It means that you asked for a specific sound, but you can't have it. For example, you wanted a Software Dependent sound, but have no Hardware curve selected ! The same if true for Hardware Dependent sound. Also, whenever you set Sound to Off, you HAVE to use Independent mode.
Now let's get into the Hardware curve that you can draw. Have some fun and try to draw a dozen of “Triangle 1” curves in a row. As you can see, the first one has a black outline. Why ? Let's experiment more : in the middle of all these curves, draw a “Saw 1” curve. It appears also with a black outline, and if right to it was a “Triangle 1” (which wasn't outlined), it is now outlined ! Whhhyyyy ??
Quite simple… Once you understand. Like I said before, the AY uses the Register 13 to know what Hardware curve to use. If you always use the same curve, you must not set the R13 each frame, because setting the R13 resets the Hardware curve (it's a behaviour of the AY, specific to this register), which is not the expected result, and will sound crappy if you're using a high Hardware frequency. So AT tests each VBL : is the current R13 the same as before ? If yes, do not set R13 again. If no, set R13 with the new value. This is what happens with the black outline : it simply means that the R13 is set here. That's what we call “Natural retrig”. Whatever you want to do, this retrig will happen because it it needed. We consider the first line as a Natural Retrig, because we don't know what is the value of R13 before. However, R13 may not have actually changed if some previous sound used the same R13 value !
So that's why the “Saw 1” you added was outlined : the R13 had to be changed. And the “Triangle 1” just to the right, which was no retriggered before you put “Saw 1”, is now a Natural Retrig, once again because R13 has to change.
Ready ? There's a feature above this : the Retrig itself. You can FORCE it. Like I said earlier, a Retrig can be useful if you want to “feel” the Hardware curve being triggered. It is needed for example if you intend to play the same notes with the same Hardware curve in a row.
Also, like said earlier, this is mandatory when using a very slow Hardware envelope (for instance, a “Down” hardware curve with a period to 1000, like the sound “Hardware Volume” in the “Instruments/FXs” folder). If you want such sound to be heard more than once, you HAVE to retrig it, else the curve will continue to decrease and stay down even if you enter another note.
So how to do that ? Simply left-click on the curve whose R13 you want to force, and click on “Force Retrig”. This option will be written next to the curve drawing corresponding to the curve you clicked on. What happens ? The curve below appears outlined in red. Quite self-explanatory, isn't it ? If you want to remove the Retrig, left click on it and select the same curve.
If you're the lucky owner of a CPCBooster, you can use it to live-stream all sounds produced with Arkos Tracker directly to your CPC! Therefore hearing the real sound of the machine instead of the software emulation on the PC.
You can find the stream client for your CPC in the
Arkos TrackerTools.DSK. When started, the client should inform you that it is ready to receive data from the PC. Now go to the Setup window in Arkos Tracker, and choose the CPCBooster as sound output. Also do not forget to select the appropriate COM port! When you're done with the settings, press OK and from now on, any sound you produce will be sent and played on the CPC. Awesome isn't it? :)