SoundTracker for ZX81 ?

Any discussions related to the creation of new hardware or software for the ZX80 or ZX81
Post Reply
Moggy
Posts: 3493
Joined: Wed Jun 18, 2008 2:00 pm

Re: SoundTracker for ZX81 ?

Post by Moggy »

Hell fire Andy, with a project like this; one slight bug, which I can't seem to replicate, is the least of Your worries :D
Look forward to any additions though and that compiler is an absolute joy :D :D

Regards.
Moggy.
???????????????????????????PIINKEY$?????RND????????????????????????????????????????????????????????PI????????
sirmorris
Posts: 2812
Joined: Thu May 08, 2008 5:45 pm

Re: SoundTracker for ZX81 ?

Post by sirmorris »

I only have one little question - How does it work?

:lol:

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
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: SoundTracker for ZX81 ?

Post by Andy Rea »

sirmorris wrote:I only have one little question - How does it work?

:lol:

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...
sirmorris
Posts: 2812
Joined: Thu May 08, 2008 5:45 pm

Re: SoundTracker for ZX81 ?

Post by sirmorris »

Thanks for taking the time to do that Andy - it's useful :)

And yes - being able to poke in a 'sample' to override a channel would be perfect for an sfx player...
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: SoundTracker for ZX81 ?

Post by Andy Rea »

Here we go, newer bigger and better :D

ZX81 Soundtracker.

main changes are :-

sample editor now has reapeat bar shown on it, 'R' sets the repeat point at the current cursor position, 'SHIFT O' increases the repeat lenght, 'SHIFT U' decreases the repeat length, 'SHIFT R' turns off repeat, you should be aware that whereever the repeat is set it will always play from the begining to the end and then jump back to the repeat point and then repeat however many steps you have set for the length..... you can also preview your samples as you create them (you must have a note in channel A on the current edit line before going to the sample editor, for example to create/test a sample first set teh edit line of channel A to C-4 xFx0, the sample number in the channel doesn't matter it will always use whatever sample your editing, but the other parameters are used, so you can tweak you sample to work with an ornament or effect... ) WHAT... you want to know how ??? hold down key '0' [zero] in the sample editor, also changed the sample editor, newline only exits on the final screen other-wise it advances to the next screen you can still go back with 'P'

menu's altered, 'LENGTH' changed to 'S-LEN' and is the song length, 'REPEAT' and 'REPLEN' removed and replaced with 'SPEED' player speed, smaller is faster, and 'P-LEN' the length of the patterns in lines.

erm load and save routines altered, might be a bit easier to convert to MEFIDOS now... :-)

and a warning.... it will delete a file before saving if you specify a file name that already exsists as before you only need specify the filename without extension.


ZX81 Soundtracker Compiler.

a couple of minor bug fixes.


ZX81 player.
fixed bug that prevented 32nd step of samples been played.

Regards Andy
ZXBETA2.ZIP
Edit, forgot to add that the pokes for soundcards not at zon-x addresses have moved

ZX_AY_REG_SEL_PORT $4539...... POKE 17721,xx
ZX_AY_DATA_PORT $453d......POKE 17725,xx
what's that Smell.... smells like fresh flux and solder fumes...
Moggy
Posts: 3493
Joined: Wed Jun 18, 2008 2:00 pm

Re: SoundTracker for ZX81 ?

Post by Moggy »

Thanks for this Andy will give it some stick tonight :D :D

Regards.
Moggy.
???????????????????????????PIINKEY$?????RND????????????????????????????????????????????????????????PI????????
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: SoundTracker for ZX81 ?

Post by Andy Rea »

oh forgot, while in the pattern editor you can turn channels off with SHIFT A or B or C, and in the sample editor you can do a SHIFT M to toggle all mask bits.

i'm still tinkering with the code, so this is not final yet. any suggestions will be gratefully recieved, but i can't promise i'll implement them.

Regards Andy
what's that Smell.... smells like fresh flux and solder fumes...
Moggy
Posts: 3493
Joined: Wed Jun 18, 2008 2:00 pm

Re: SoundTracker for ZX81 ?

Post by Moggy »

Hi Andy
In the sample editor the N/P next/previous keys seem out of whack newline takes You to next screen and only exits when all screens cycled n key does nothing p key works ok though.
Just seems confusing how its listed N/P NEXT/ PREVIOUS rather than NEWLINE/P NEXT SCREEN

Regards.
Moggy.
???????????????????????????PIINKEY$?????RND????????????????????????????????????????????????????????PI????????
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: SoundTracker for ZX81 ?

Post by Andy Rea »

Andy Rea wrote:newline only exits on the final screen other-wise it advances to the next screen you can still go back with 'P'
Oh yeah forgot to change the text. :D cheers Moggy.

how are you liking the editor now :?: i think it makes it a little easier to 'hear' what your creating ;)

Regards Andy
what's that Smell.... smells like fresh flux and solder fumes...
Moggy
Posts: 3493
Joined: Wed Jun 18, 2008 2:00 pm

Re: SoundTracker for ZX81 ?

Post by Moggy »

Well I never thought I'd say this ,"Sir morris You are wrong" :lol:

I will never tire of using this on a zeddy rather than a pc based tracker.
This is a damn sight easier than Vortex the screen layout is nice and easy and very intuitive.

The sample editor is an absolute delight and I managed to create a primitive single channel 8 bar bass riff in just over two minutes and I'm a very old school wood and strings musician so the clever lads out there should find this a doddle :D

You asked for suggestions Andy how about a note volume like on the Vortex tracker so each note can have a separate velocity rather than each note as loud as the next, so You can create soft and loud passages in Your compositions for more creativity.

Just a thought .

Regards.
Moggy.

PS Being able to hear what's in the editor has really boosted this and made things a lot easier 11/10
???????????????????????????PIINKEY$?????RND????????????????????????????????????????????????????????PI????????
Post Reply