sirmorris wrote:I only have one
little question - How does it work?
Seriously - how does it work?
From the little AY development I've done I think the hardware envelope is pretty much useless as it's shared between the channels. Unless it's used as some kind of modulator globally I would expect that all the wave shaping is done in software - amirite?
The "effects engine" that I made for darkstar is a very simplistic virtual machine which executes commands, like 'add N to the frequency register", "set the volume modifier to -4", 'wait for 10 ticks',.. that kind of thing. Each cycle the modifier values are added to their counterpart AY registers and so a 2 second sliding tone is achieved by setting some value in the tone modifier then waiting for 100 ticks.
Is that the basis of a tracker? I imagine that all i'd need to do is extend the scheme so that each of the VM 'programs' could be started at a particular time. Perhaps a little parameterisation of the vm programs would be useful - there isn't any at the moment.
I was just looking at a new spectrum 128 game and the AY music really hits the spot.
http://www.youtube.com/watch?v=nkrGHrd12ZQ
ok the hardware envelope, can be used any number of channels at the same time, but obviously have to share the same envelope, you can have channel 1, and 2 doing pure tone, and channel 3 following the hardware envelope... you can get some nice phasing effects, and propper raspy sounds.
so if your not using the hardware envelop then your using the sample envelope the first screen when you got to the sample editor, read it left to right, each column represents the volume 0 - -15 of that sample, at each step (a step is each intterupt cycle I.E. every 1/50th second) the second screen on the sample editor is the noise frequency again read from left to right, these have values of 0 to 31, (now frequency is a bit of a bad name for noise, but thats how it works the frequency we are changing is how often the random noise bit is altered), and for cpompleteness teh final screen is the frequency shift per step read top to botom (col 1, step 0 to 15, col 2 step 16 - 31)
so when a song is playing the song speed value represents the number of steps (intterupt cycles) between sucessive pattern lines, so a lower number goes quicker, when a new line starts if it's a new note then the step counters are reset to 0 so the sample starts from the begging again...
Remeber i did not write the player code, it's still very strongly, although heavily modified to play raw tracker data, based on the player lumped with the spectrum version of the soundtracker compiler, which incidently has the bug that means the 32nd step of a sample never gets played !
But yeah you kind of have the basics of a simple tracker.
i was thinking that it could be possible to have a single channel minimal tracker and player, that could overide a single channel of the usual 3 channel player (probably have to be co-operative), and then each mini pattern (say 8 lines) could be used for each different effect, then all you'd have to do would be poke the effect number you want to play (0 for none) and the players would sort the rest out for you, each interupt.
SO erm i probably haven;t answered your question....
Andy
and then.... i was thinking to incorperate the sample repeat / repeat length into the sample editor, that woudl free up 2 spots on the first menu, to which i can move patt-len, and song-speed, which would leave the other menu holding only none alterable stuff.
what's that Smell.... smells like fresh flux and solder fumes...