CPCWiki forum

General Category => Applications => Topic started by: BSC on 14:35, 05 November 13

Title: SID tracker / player on CPC (non plus)
Post by: BSC on 14:35, 05 November 13
Hi everybody,

a while ago I started working on a SID engine - just out of curiosity originall. I wanted to know whether the CPC was able to play sync buzzers and all those effects that were native to the Atari ST for ages. And I wanted to know how it sounded. I know there were a handful of attempts (or conversions from the Atari, I suppose), like in Overflows Backtro, but I wanted my own engine and a tracker to create that kind of music, as well..

So, what I came up with about 1 year ago (and which literally came to a halt since) is a 1 channel waveplayer engine that is capable of playing arbitrary small wave forms at around 13.8 khz. I picked square, triangle, sine and square with variable duty cycle for no obvious reason ;-) The main objective was stable replay rate and good audio quality so you don't have that annoying 50hz hum that's a feature of most of the mod players etc. The player is also capable of mixing the 3 native AY voices, either replacing or modulating one AY voice at a time. This could only be achieved by interweaving sample output with AY voice control, but the results sound quite nice and are worth the effort, I think :) After all, this is just a fun project!

Here are some examples of the player output (recorded from an emulated CPC, but I ran this on my real 6128 and it sounded even better!)

CPCSid by Carl Carbunckel on SoundCloud - Hear the world’s sounds (https://soundcloud.com/carl-carbunckel/cpcsid)
CPCSid next try by Carl Carbunckel on SoundCloud - Hear the world’s sounds (https://soundcloud.com/carl-carbunckel/cpcsid-next-try)

(I also have a .sna file available that I might post here)

As you can hear, the player is basically fully functional, but the tracker itself is only halfway done. There's some basic instrument and pattern editing facility,
but most of the work to make a usable tool out of it is still to do. And I just don't find the time anymore to continue working on it. And I also don't want it to die
in the confines of my virtual 3" disk box.

tl:dr; So I am basically looking for someone (or some-many) to take over the project / help me with completing it. I have a couple of docs / drawings / ideas / concepts
as to how to solve the upcoming tasks and one big part of it is probably generative programming, i.e. the tightly timed play routine should be generated at startup-time instead of hard-coded. If anyone is interested in helping me on this project, I could post it on github and we could see how it evolves. One more thing: The current dev platform is on Mac, using vim, Make, zasm (iirc) and a custom Makefile which injects the object code into a existing snapshot file. But I think that it's fairly easy to port to another platform / dev toolchain etc. It would be great, though, if I was still able to contribute in the future..

So, what do you think?
 BSC

Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 21:40, 05 November 13
This is very interesting and I've been working on a SID player too.

So, what I came up with about 1 year ago (and which literally came to a halt since) is a 1 channel waveplayer engine that is capable of playing arbitrary small wave forms at around 13.8 khz. I picked square, triangle, sine and square with variable duty cycle for no obvious reason ;-)

This sounds in principal very much like the "Sinus-SID" effect on the Atari ST, but it was only used by Tao I think. 

What made you take this approach?  It's different to the other ways of doing it I've seen so far on the CPC - which are just altering the volume every 64us line (like a lot of Atari ST routines do, albeit at a higher frequency rate) and it's why it's easy to do with the Plus DMA.  However, on a CPC this would mean a frequency of 15.625hz where as you've got your waveforms at 13.8khz so I assume you're doing the standard AY routine/calcs first then playing your sample (much in the same way as a digidrum) rather than interleaving the routine so it runs every line...?

I have a couple of docs / drawings / ideas / concepts as to how to solve the upcoming tasks and one big part of it is probably generative programming, i.e. the tightly timed play routine should be generated at startup-time instead of hard-coded. If anyone is interested in helping me on this project, I could post it on github and we could see how it evolves.

I'd be interested in seeing the source code and working out the approach you've taken so far.

My approach was to take the standard Atari ST timers and then divide them into the nearest multiple that works on the CPC.  I know that Offset has already done this for the Plus using DMA but there's no reason it can't be done on a normal CPC (but it will take a lot of CPU time). 

And what makes this approach more interesting is the CTC-AY which has 2 x 2Mhz YM chips, a full timer AND direct (no PPI) access to the soundchips - imagine an "adapted" routine that works with this ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 11:47, 06 November 13

And what makes this approach more interesting is the CTC-AY which has 2 x 2Mhz YM chips, a full timer AND direct (no PPI) access to the soundchips - imagine an "adapted" routine that works with this ;)
Yes, or a routine for kc compact (for the 3 of us that have one ;) ). This too has timers :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 12:51, 06 November 13
This is very interesting and I've been working on a SID player too.

Do you have some previews that I could see, I am really curious to see/hear your player :)

This sounds in principal very much like the "Sinus-SID" effect on the Atari ST, but it was only used by Tao I think. 

What made you take this approach?  It's different to the other ways of doing it I've seen so far on the CPC - which are just altering the volume every 64us line (like a lot of Atari ST routines do, albeit at a higher frequency rate) and it's why it's easy to do with the Plus DMA.  However, on a CPC this would mean a frequency of 15.625hz where as you've got your waveforms at 13.8khz so I assume you're doing the standard AY routine/calcs first then playing your sample (much in the same way as a digidrum) rather than interleaving the routine so it runs every line...?

I started with a really basic loop with fixed delays (e.g. resulting in a 200hz tone) where I toggled the a volume register between 0 and 15, another approach was toggling a voice through register 7, both sounded nice, but the timing was really awkward and complicated. Two things occured to me when playing around with this for a while:

1. I need a fixed loop instead of variable delays between playing 2 samples
2. When I have a fixed loop anyway, I am not limited to just toggling a volume register because I have to play a sample on each iteration anyway

After tinkering with this for a while, I came up with a new approach where I play a sample (i.e. write one value from my waveform to a volume register) every 64us (as you suggested in your post) and instead of controlling pitch by changing the delay between 2 samples, I use a 256 bytes (page aligned) wavetable which I cycle by using the hi byte of a 16 bit offset which is increased by another 16 bit offset depending on the target frequency of the tone I want to play. That enabled me to play any 256 byte waveform at arbitrary frequencies. 64us would have resulted in a sample frequency of 15.625hz, as you pointed out, but I had to interweave code to write the other AY registers in between and the quickest that I could come up with (with pre-loaded register values in both register sets) to select register N, write its value, then select register S (for samples), then write its value took 71us, so I re-aligned everything to 72us, i.e. around 13.8khz sample frequency, which is still good enough for most of the notes. Of course, there is aliasing noise on the higher notes (also depending on the waveform, sine, for example, is comparably resistant to aliasing), but as you can hear in the examples, it is quite acceptable (and you can't do anything about it anyway)

Ah, and about the interweaving: I basically have a loop which just plays a sample every 72us that is preluded by a block of code where I write all the other AY registers depending on AY music that I want to play (just as in the legendary soundtrakker play routine :-D). So I read the current value of register 0, select and write it, select the sample register (which is configurable from the current SID instrument at play) and write the current sample value. Then register 1 and so on until register 11 currently.

There is some work to do on that part, as I mentioned, but nothing that can't be resolved in some way, I hope..

I'd be interested in seeing the source code and working out the approach you've taken so far.

My approach was to take the standard Atari ST timers and then divide them into the nearest multiple that works on the CPC.  I know that Offset has already done this for the Plus using DMA but there's no reason it can't be done on a normal CPC (but it will take a lot of CPU time). 

I guess I will put the project on github soon and link it here, so you can have a look at it. I will also upload my demo snapshot file so you can play around with
what is currently possible. It's probably much easier that way and I don't have to write tons of text to explain what's going on ;-)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 12:53, 06 November 13
Yes, or a routine for kc compact (for the 3 of us that have one ;) ). This too has timers :)

Currently I am not interested in any hardware stuff. The whole idea of this project is about playing SID effects using software routines on a standard CPC. I might change my mind in the future, but ... the future is yet to come ;-)

Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 14:52, 06 November 13
Do you have some previews that I could see, I am really curious to see/hear your player :)

Well my progress has been a lot of theory and work "in principle" - I managed to get SID voices playing via DMA using a YM dump from the Atari ST but have yet to adapt it for the normal CPC.

After tinkering with this for a while, I came up with a new approach where I play a sample (i.e. write one value from my waveform to a volume register) every 64us (as you suggested in your post) and instead of controlling pitch by changing the delay between 2 samples, I use a 256 bytes (page aligned) wavetable which I cycle by using the hi byte of a 16 bit offset which is increased by another 16 bit offset depending on the target frequency of the tone I want to play. That enabled me to play any 256 byte waveform at arbitrary frequencies.

I think I understand your approach now and essentially you are achieving is what the Atari ST can do, but in reverse. 

From my understanding, on the ST, they use the master clock (21492Hz) and divide it into multiples which then alter the volume register via interrupt.  This is done every frame and also means that you can achieve a lot of different Hz rates.  But essentially what they are doing by changing the clock multiple is creating a different waveform over several frames (sine, square, triangle etc) which "overlaps" the main YM sound.

Where as your routine takes these waveforms and instead of using the clock to determine them (because the CPC doesn't have one except at 300hz) you are storing them as "samples" which means you can keep all the timings to one frequency rate (13.8Hz), yet still achieve the desired waveforms.

Your approach is a good one when you consider you want to make a tracker because selecting the waveform (instead of worrying about clocks etc) would be a lot simpler.  Have you seen the SID voices in the  maxYMiser (http://www.preromanbritain.com/maxymiser/) tracker?  This reminds me quite a lot of your approach.

Ah, and about the interweaving: I basically have a loop which just plays a sample every 72us that is preluded by a block of code where I write all the other AY registers depending on AY music that I want to play (just as in the legendary soundtrakker play routine :-D). So I read the current value of register 0, select and write it, select the sample register (which is configurable from the current SID instrument at play) and write the current sample value. Then register 1 and so on until register 11 currently.

Well this then should be quite easily adaptable for other hardware such as the Plus and CTC-AY.  Would be nice to have a player that makes use of all the available hardware ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 23:34, 07 November 13
I have attached a disk image of the current incarnation of AYAY Kaeppttn to this message!

Please also note that the pattern editor in fact does work, so you can go there, type in some notes (and use different instruments) and have a listen to the different instruments / sounds AYAY can produce :)



And here's kind of a manual:

First there are some global keys that work in each of the modes:
 
TAB - to switch modes (see below)
 
ctrl Y - toggle AY music playback
 
If enabled, you'll hear some normal AY music on channel A that you can jam to or modulate.
This is also very basic yet. In later versions, this AY music will be generated from any of the
AY channels / patterns you can create and will either be mixed with the Sid voice or modulated by it.
(note! this does currently not work as described as I was in the progress of writing the code that plays AY music from the patterns!)

DEL - turn of all sounds (useful if you have AY music on)
 
shift + cursor up / down - decrease / increase octave (from 00 to 07). There is a small bug here
that sometimes makes you keep stuck in octave dec/inc. Try shift + cursor key again to break free.
 
shift + cursor left / right - previous / next instrument. You have only 13 hard-coded instruments
currently (00 to 0c) and there's no way to create new ones yet. When you change instrument, the 4
tables below will display the new instruments start position in each of them.
 
French keyboard will probably act funny on some of the keys :-P
 
There are 3 modes which can be changed hitting the tab-key (the cursor will jump to reflect that):
 
1. Parameter mode (top of the screen) - here you can change the instruments parameters directly
 
The only keys you can use here (apart from the global ones) are the cursor keys to move left or right
and to decrease / increase the current value.
 
The 5 parameters you see are: target AY register and offset / vibrato / waveform / volume tables offsets.
You'll see what it means when you toggle instruments. Useful AY registers are 8 to 10 (for the 3 voices),
all others will only yield funny noises or nothing.. Except for the ones needed for Sync Buzzing in later
incarnations of AYAY.
 
2. Instrument mode (middle area) - here you can edit the different instrument tables
 
Use the cursor keys to wander around the 4 tables. Each table has 2 columns, an index and the
value at that index, separated by a colon. On the waveform column, you will also have the current
waveform drawn to the right. Valid values here go from 15 to 38
 
The values might look a bit weird.. But it's just unsigned hexadecimal stuff.. Everything between 00
and 7f is positive, FF to 81 is negative (and FF means -1, FE is -2 and so on). 80 is a special value
meaning jump to the index that comes in the next row (i.e. 80 followed by 03 will cause a jump to
position 03 in that table). This might look complicated at the first sight, but it is very flexible and
(which is important to get decent audio quality) also very fast in the player.
 
Use ctrl + cursor up / down to change the current value. Press ENTER to enter 2 hexadecimal
digits as the new value (useful to enter jump (jp) commands, which are at value 80) or ESC to cancel.
Press space to use the current position (the one thats on the left side of the colon) in the current table
for the current instrument, i.e. when you are on position 5 in the vibrator table, pressing space will
set the 3rd value of the instrument params to 05.
 
3. Pattern mode (bottom area) - you will be able to edit patterns here. This one is not finished yet,
so I won't go into detail here now.. I hope to get some more functionality done .. soon .. 
 
All of the work flows are just in-progress and beta and so on. Apart from how the instruments and
the 4 tables work - it's unlikely that this will work differently. But I am sure it's possible to make editing
a lot easier than it is now.

I am curious to hear what you ppl think (or should I say you one guy that took part in the discussion so far?) about it.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 23:53, 07 November 13


Well my progress has been a lot of theory and work "in principle" - I managed to get SID voices playing via DMA using a YM dump from the Atari ST but have yet to adapt it for the normal CPC.

I think I understand your approach now and essentially you are achieving is what the Atari ST can do, but in reverse. 

From my understanding, on the ST, they use the master clock (21492Hz) and divide it into multiples which then alter the volume register via interrupt.  This is done every frame and also means that you can achieve a lot of different Hz rates.  But essentially what they are doing by changing the clock multiple is creating a different waveform over several frames (sine, square, triangle etc) which "overlaps" the main YM sound.

Where as your routine takes these waveforms and instead of using the clock to determine them (because the CPC doesn't have one except at 300hz) you are storing them as "samples" which means you can keep all the timings to one frequency rate (13.8Hz), yet still achieve the desired waveforms.

Your approach is a good one when you consider you want to make a tracker because selecting the waveform (instead of worrying about clocks etc) would be a lot simpler.  Have you seen the SID voices in the  maxYMiser (http://www.preromanbritain.com/maxymiser/) tracker?  This reminds me quite a lot of your approach.

Well this then should be quite easily adaptable for other hardware such as the Plus and CTC-AY.  Would be nice to have a player that makes use of all the available hardware ;)


It might be the reverse but I think comparing it the any of the (technical) approaches on the Atari ST does not make a lot of sense because the CPC just does not have any timers and
so you have no choice but do it in "realtime", just as you do when you make split-rasters or play sampled sounds or whatever takes as much time as it takes. And as some guys (on the
pushnpop forum for example) already said: The SID effect itself is not very hard to achieve. What's hard (or painful) is to make it live alongside a player that provides AY generated sound
on the other channels. A SID voice on it's own sounds nice but is also pretty boring. And, as I said before, I think you don't have to toggle the volume register of your target voice between
0 and the current value to achieve a SID sound effect, this is just one approach - mainly the most known one because that's how it was done on the Atari in the first place (and because the
Atari has those timers..). And if I stuck to that approach, I would not be able to also play sine, triangle, sawtooth and have full control over the pulse width. Just have a look at the snapshot
I provided and all the different instruments there. There's a couple of SID sounds that have a wavelist that sweeps over a set of square waves of different pulse width. You might argue that
it's a waste of memory to have so many different square samples, but I think it's worth because you have full control over the effect. I have heard of maxYMizer but never seen it in action
because I could not get a useful ST emulator on my Mac :(


Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 12:04, 08 November 13
It might be the reverse but I think comparing it the any of the (technical) approaches on the Atari ST does not make a lot of sense because the CPC just does not have any timers and
so you have no choice but do it in "realtime", just as you do when you make split-rasters or play sampled sounds or whatever takes as much time as it takes.

Oh yes, I totally agree, but I was just coming my viewpoint (and only experience of SID voice on the CPC) of having tried to import Atari ST music.  Your approach, as I said, makes much more sense when trying to create a tracker or original music on the CPC :)

And as some guys (on the pushnpop forum for example) already said: The SID effect itself is not very hard to achieve. What's hard (or painful) is to make it live alongside a player that provides AY generated sound
on the other channels

That's why they all cheat and use the DMA ;)

A SID voice on it's own sounds nice but is also pretty boring. And, as I said before, I think you don't have to toggle the volume register of your target voice between
0 and the current value to achieve a SID sound effect, this is just one approach - mainly the most known one because that's how it was done on the Atari in the first place (and because the
Atari has those timers..). And if I stuck to that approach, I would not be able to also play sine, triangle, sawtooth and have full control over the pulse width.

I agree with you - but this was how SID voices on the YM "evolved" - somebody worked out that the modulation could occur by altering the volume frequency and luckily the ST had timers to use.  I think the evolution of this is what maxYMiser (on the Atari ST) was trying to address and hence your tool and approach as well.

Just have a look at the snapshot I provided and all the different instruments there. There's a couple of SID sounds that have a wavelist that sweeps over a set of square waves of different pulse width. You might argue that it's a waste of memory to have so many different square samples, but I think it's worth because you have full control over the effect.

Your tracker is really cool, I managed to get some nice SID sounds out of it :)

I'd love to also have DMA/CTC-AY functionality and it should be relatively easy - are you able to share the source code for it?
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 22:42, 08 November 13
I'd love to also have DMA/CTC-AY functionality and it should be relatively easy - are you able to share the source code for it?


Currently I am not interested in any hardware stuff. The whole idea of this project is about playing SID effects using software routines on a standard CPC. I might change my mind in the future, but ... the future is yet to come ;-)
Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 23:26, 08 November 13
It was clear I wanted to add the functionality myself hence asking for the source code.

You add nothing to the conversation and are just being obtuse.

Title: Re: SID tracker / player on CPC (non plus)
Post by: SuTeKH/Epyteor on 09:46, 09 November 13
I am curious to hear what you ppl think (or should I say you one guy that took part in the discussion so far?) about it.
Please understand that just because only one person has responded so far that the rest of us are not interested. I, for one, am fascinated by this thread and applaud your work so far. It is absolutely fabulous and I can see myself spending many, many hours converting SID tunes to CPC with more than just 1 "pulse" sound.

A few people here are helping me to create another one of my "shyte musicdisks" (ie just a bunch of badly converted .mod and .sid files to STarkos tracker) and it would be amazing to have a "proper" SID tune in there, as well, running on a CPCnorm.



In short; to both BSC and redbox; please, please, please... keep up the great work you're doing and develop the best SID-voice tracker possible!


On behalf of everyone else who has read & followed this thread, thank you.
- JTMS.
Title: Re: SID tracker / player on CPC (non plus)
Post by: ralferoo on 12:55, 09 November 13
I agree. This is an interesting project, but I've been too busy to actually take a listen to what you've done. But even from the description I know I'll enjoy it when I manage to make the time! :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 11:33, 11 November 13
I too am interested in the SID voice and both approaches, but I don't currently have the time to look at both works more closely so I feel I can't comment.

I believe BSCs approach is a very good one.

So I know the problem is one that integrating a player like this into a demo or game is considered very hard... but I already have plans to find a way around that in a more automated way.

But this is another topic entirely.
Title: Re: SID tracker / player on CPC (non plus)
Post by: Gryzor on 12:32, 12 November 13
I removed the three last posts because they were not adding anything to an otherwise interesting discussion.


TFM, take this as a warning, if you can't contribute please don't spoil it with your opinions. Feel free to open another thread.
Title: Re: SID tracker / player on CPC (non plus)
Post by: Devilmarkus on 23:53, 12 November 13
I can understand Gryzor.

Someone asks for sources.

It's a thing between BSC and redbox.

I don't understand now, why you have to get involved into this. There's really no reason for it.

And if some people bug many people for sources, toilet paper or whatever...

Why do you care about that?

I also often ask for sources, and so on... Ask SyX, CNGSoft, yourself, etc... And sure some of them are bored of me ;) but hey, it's CPC we are talking about and not redbox's ballsize (sorry, redbox!) or whatever ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: Gryzor on 00:02, 13 November 13
I care, because I'm the admin here. And people have complained more than once, not about this thread only. And of course I did not mind anyone asking for source code or anything - maybe you've missed some posts.


Anyhow, this discussion is over -in this thread, at least. Let's not gett further off topic.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 14:00, 13 November 13
Thanks Gryzor to bring us back on track! I am a bit busy atm but will soon post more infos and a link to the sources on github. Everyone who is interested is invited to have a look!
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 16:20, 15 November 13
Is anyone else having problems with the downloaded .zip? It seems that it's corrupted, whatever the browser I use to download it.
Title: Re: SID tracker / player on CPC (non plus)
Post by: Gryzor on 16:28, 15 November 13
Yup, it doesn't open here either.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 00:12, 16 November 13
Is anyone else having problems with the downloaded .zip? It seems that it's corrupted, whatever the browser I use to download it.


The problem is that the file was only available for 7 days (I could not choose a longer ttl there) and the link is now reused by another file ("updated dbs.zip"), and not cpc.sna.zip..
Can't I upload it here on the forum? Or does anyone know another free file sharing site where I could upload it to?
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 00:22, 16 November 13
mediafire.com or mega.co.nz, they don't have any kind of restrictions and you get 50GB of space with a free account. Mega is probably the best of the 2. Just for the record, I still have stuff from 2007 on my mediafire account.
Title: Re: SID tracker / player on CPC (non plus)
Post by: SuTeKH/Epyteor on 09:09, 16 November 13
Can't I upload it here on the forum?
Can't you just attach it to a post? If the file is only a small .sna file (even zipped), then it shouldn't be a problem.
There's an "Attachments and other options" button under the text-edit box. Click the '+' icon and then the "Browse" button.
Title: Re: SID tracker / player on CPC (non plus)
Post by: Gryzor on 10:55, 16 November 13
Thanks, tastefulmrship! Why are we talking about mediafire and mega and whatever? :D


@BSC: Sure mate, go ahead and attach it here, filesize limit is high enough!
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:18, 18 November 13
@BSC: Sure mate, go ahead and attach it here, filesize limit is high enough!


Done! Have a look at Reply #6
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 11:33, 18 November 13

Done! Have a look at Reply #6


I've tested the DSK on CPCE and Winape and it's empty  ???
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 12:04, 18 November 13

I've tested the DSK on CPCE and Winape and it's empty  ???


Holy crap! You are right! :O I have just uploaded another version (anyway I was wondering about the incredibly small zip file - stoopid finder ..)
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 20:16, 19 November 13
Ok, download works now.  :)






Just an idea: Include keyboard description on screen, there is enough room left.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:39, 20 November 13
Can't you just attach it to a post? If the file is only a small .sna file (even zipped), then it shouldn't be a problem.
There's an "Attachments and other options" button under the text-edit box. Click the '+' icon and then the "Browse" button.


Thanks for the hint, btw.  I was looking for a way to attach a file but somehow overlooked it (too bad it's below the text box while
every other post related buttons etc. are above it..)
Title: Re: SID tracker / player on CPC (non plus)
Post by: Gryzor on 11:42, 20 November 13
Yeah, it's because it's part of the "Other options" section which is pretty big and collapsible (since it doesn't need to be in the way for most of the posts), and it's got a few things of its own going on...
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 18:56, 26 November 13
What do you guys think? I have seen some downloads, so some of you must have tried it out..?
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 19:31, 26 November 13
I tried it and it seems to work. It would be great if you can put a list of the key shortcuts on screen. At the right hand on the screen there would be enough space for that. This would make entry of data more quick. Also any kind of manual would be appreciated.  :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: Devilmarkus on 16:47, 27 November 13
It would be great if you can put a list of the key shortcuts on screen. At the right hand on the screen there would be enough space for that. This would make entry of data more quick. Also any kind of manual would be appreciated.  :)

+1 that.

Really: Actually, I don't even know how to handle it... ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 17:45, 28 November 13
I tried it and it seems to work.


Great.. Well done!


It would be great if you can put a list of the key shortcuts on screen. At the right hand on the screen there would be enough space for that. This would make entry of data more quick. Also any kind of manual would be appreciated.  :)


You need a manual for a software that you just try out? This is, I think I mentioned it before, just a demo, a proof of concept, an early alpha. I provided a list of keys etc. in another post. If you seriously want to test it, how about having that post next to you emulator window?




Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 17:54, 28 November 13
+1 that.

Really: Actually, I don't even know how to handle it... ;)


I posted a short manual with a list of keys earlier in this thread.
Title: Re: SID tracker / player on CPC (non plus)
Post by: Devilmarkus on 20:27, 28 November 13
I more meant that in general. Doesnt matter if it is a demo or a final program.

Taking a quick look @ my CPC screen is more comfortable than always checking in the forum for the most needed hotkeys.

Sure, testing could be done with an emulator. But we all know, not many emulators sound very accurate ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 23:40, 30 November 13

I more meant that in general. Doesnt matter if it is a demo or a final program.

Taking a quick look @ my CPC screen is more comfortable than always checking in the forum for the most needed hotkeys.

Sure, testing could be done with an emulator. But we all know, not many emulators sound very accurate ;)


I don't really see your problem here. You got all the commands / keys. This is a demo, no comfort or batteries included..


I for one do not know that emulator sound is not accurate. Even though I have made and listened to a lot of CPC music on the real thing,
I have not yet had the impression that any recent emulator had inaccuracies that I could hear. Your sense of hearing might be superior, though...
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 23:46, 30 November 13
Here's another disk image containing the demo (run"sid.bas") that I used to produce the first demo I provided to soundcloud.
Just run the file an press ENTER to start playback. Alternatively, you can jam using the well-known manuals starting at Y and Q.


I felt that some people were in doubt whether this was really produced on a CPC (well, an emulated one actually).. If anyone is
able to transfer that to the real machine AND make a recording (maybe without (lossy) compression), that would be great!
I listened to it on my 6128 a while ago (without recording it, though) and it sounded "warmer" than in my emulator.

Title: Re: SID tracker / player on CPC (non plus)
Post by: Devilmarkus on 11:05, 01 December 13
What do you guys think? I have seen some downloads, so some of you must have tried it out..?

I don't really see your problem here. You got all the commands / keys. This is a demo, no comfort or batteries included..

You asked, some people replied. That's all.

Listened to your demo. Sounds very nice. Can't wait until I can hear a complete track. ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 10:40, 05 December 13
You asked, some people replied. That's all.


Yeah, but I didn't ask for feature requests.. even more so when a "feature request" is mainly due to laziness :-P


Listened to your demo. Sounds very nice. Can't wait until I can hear a complete track. ;)


Thanks! I will post more when there's more..




Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:09, 11 December 13
Please understand that just because only one person has responded so far that the rest of us are not interested. I, for one, am fascinated by this thread and applaud your work so far. It is absolutely fabulous and I can see myself spending many, many hours converting SID tunes to CPC with more than just 1 "pulse" sound.

A few people here are helping me to create another one of my "shyte musicdisks" (ie just a bunch of badly converted .mod and .sid files to STarkos tracker) and it would be amazing to have a "proper" SID tune in there, as well, running on a CPCnorm.

In short; to both BSC and redbox; please, please, please... keep up the great work you're doing and develop the best SID-voice tracker possible!

On behalf of everyone else who has read & followed this thread, thank you.
- JTMS.


Hi tasteful Mr Ship,

a late reply, I know... I think any music disk making use of a new SID/AHX engine on the CPC would be a cool product. And it might also arouse interest in other musicians that might not have heard of it thus far. So, if you like, I'll keep you in the loop when a new / useful version of AYAY will be ready - which might take a while, though..


Thanks for your support![size=78%] [/size]
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:11, 11 December 13

I've tested the DSK on CPCE and Winape and it's empty  ???


Hey McKlain!


Could you download the latest disk image? Could you get some sounds out of it?
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 12:09, 11 December 13

Hey McKlain!


Could you download the latest disk image? Could you get some sounds out of it?


Yep, I've been fiddling around with the instruments and parameters, I'm just waiting till the pattern section plays the pattern  ;D


Gotta say that it sounds (pun intended) promising.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:02, 15 December 13
Yep, I've been fiddling around with the instruments and parameters, I'm just waiting till the pattern section plays the pattern  ;D

Gotta say that it sounds (pun intended) promising.



The pattern section does already work (a bit). You can even create multiple patterns
that get played in sequence. Press ctrl N to create a new pattern while in pattern mode,
ctrl (or shift?) cursor left/right to switch patterns. The same keys that you can use to jam
can be used to enter notes, del to delete a row, shift (or ctrl?) cursor up/down to jump up/down.
Space to play, ESC to stop.


Not yet a full-flegded professional DAW, but you can play around with it already :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: ultrasyd on 10:26, 06 January 14
Thanks for the update about that tracker BSC !
Gonna try it as soon as possible. The list of shortchuts should be enough to find a way to make something.
Greetings !
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 00:06, 10 January 14
Hi everyone and a lagged happy new year by the way!


I have made some progress with the track editor and recorded a small demo that I wanted to share with you.
Like a little tiny small foretaste at my personal 30-years-anniversary present to my beloved grey friend :)


Sid3 by Carl Carbunckel on SoundCloud - Hear the world’s sounds (https://soundcloud.com/carl-carbunckel/sid3)
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 00:10, 10 January 14
How cool  ;D
Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 09:14, 10 January 14
That sounds really good, excellent resolution on the sounds.

What type of waveforms are you using on each channel?
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 19:33, 10 January 14
Yes, it sounds really well. Good work BSC.  :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 14:25, 11 January 14
just listened to it, and it's great!
Title: Re: SID tracker / player on CPC (non plus)
Post by: Gryzor on 18:54, 11 January 14
Lovely, very cute. Waiting for the full tune! :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 10:21, 13 January 14
That sounds really good, excellent resolution on the sounds.

What type of waveforms are you using on each channel?


It is plain AY sounds on all channels and, additionally, on channel B a SID voice
which plays the same notes as AY channel B in unison, using a sinus waveform.
This is in effect very similar to your demo tracks, except for the Sinus waveform.

Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 11:31, 13 January 14
Is there asm code for the player itself available, and is there a way to export/compile the songs to a form that can be used.
The reason I ask is that I would like to use SID like sound in a future demo/game I have planned.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 14:03, 13 January 14
Is there asm code for the player itself available, and is there a way to export/compile the songs to a form that can be used.
The reason I ask is that I would like to use SID like sound in a future demo/game I have planned.

A way to export/compile is actually planned, but currently not there. You could, theoretically, branch the tracker and build
a quick hack that does only the playing. Or you could help with the project and take care of the compiler ;-)

Since I made the last changes, avalanches of ideas have been rumbling my head and I think if I was to implement all of
them by myself, the tracker would not be finished before 2020 (given my current pace)..

I am still planning to put the whole project on github for collaborative work. If you like, I will inform you when I am done with that.
Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 18:11, 13 January 14
It is plain AY sounds on all channels and, additionally, on channel B a SID voice
which plays the same notes as AY channel B in unison, using a sinus waveform.

I had a look on the scope and you do have some waveforms approximating a sinus form which sound very nice.  Why did you play the square AY at the same time (on a different channel) - did it sound better that way...?

Here is my sinus waveform table for the AY:

Code: [Select]
d_wavetable_sin:
db &0d,&0d,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e
db &0e,&0e,&0e,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f
db &0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f
db &0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f
db &0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f
db &0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f
db &0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0f,&0e,&0e
db &0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0e,&0d
db &0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0c,&0c,&0c,&0c
db &0c,&0c,&0c,&0c,&0c,&0b,&0b,&0b,&0b,&0b,&0b,&0b,&0a,&0a,&0a,&0a
db &0a,&0a,&0a,&09,&09,&09,&09,&08,&08,&08,&08,&08,&08,&07,&07,&06
db &05,&05,&04,&03,&03,&02,&01,&01,&01,&01,&01,&01,&01,&01,&01,&01
db &01,&01,&01,&01,&01,&01,&01,&01,&01,&01,&01,&02,&03,&03,&04,&05
db &05,&06,&07,&07,&08,&08,&08,&08,&08,&08,&09,&09,&09,&09,&0a,&0a
db &0a,&0a,&0a,&0a,&0a,&0b,&0b,&0b,&0b,&0b,&0b,&0b,&0c,&0c,&0c,&0c
db &0c,&0c,&0c,&0c,&0c,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d,&0d

Is this similar to yours?
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:07, 14 January 14
I had a look on the scope and you do have some waveforms approximating a sinus form which sound very nice.  Why did you play the square AY at the same time (on a different channel) - did it sound better that way...?

I don't know if I understand your question..
I played AY squares on all the channels to demonstrate that the track editor (which allows you to create/edit AY and wave tracks) is working
and that you can combine tracks (i.e. voices) freely. A song consists of 4 tracks per step, 3 tracks are mapped to AY voices A,B,C and one track
is mapped to to the wave table player. This demo is about AY music on all 3 channels + a wave (sinus) voice that modulates one of the AY channels.
Similar to the sinus sid effect on the Atari. The other demos I posted were basically about the wave player itself, without modulating an
existing AY voice (because that was not really possible at that time)

I don't have the layout of my sinus waveform in my head ;) I'll have a look when I can and will post the table.
The main difference that I can see is that the values in my table are between 8 and 15 (instead of 0 to 15).
This is so I can subtract a value deduced from the volume table to have basic volume envelope support.
Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 13:10, 14 January 14
This demo is about AY music on all 3 channels + a wave (sinus) voice that modulates one of the AY channels.
Similar to the sinus sid effect on the Atari. The other demos I posted were basically about the wave player itself, without modulating an
existing AY voice (because that was not really possible at that time)

This is why I asked - I'm trying to understand how you modulated a square AY tone into a sinus tone (this from my experience is not easy!).

Previously you said you were just using the wavetable alone to produce the tone and now you're modulating.  Why the change, did it sound better?
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 13:22, 14 January 14
This is why I asked - I'm trying to understand how you modulated a square AY tone into a sinus tone (this from my experience is not easy!).

Previously you said you were just using the wavetable alone to produce the tone and now you're modulating.  Why the change, did it sound better?


I just wanted to try it out.. finally.. as I said: before my latest extensions it was not really (easily) possible to create a modulation
on an AY voice using the editor. I had to hard-code everything in the source code. And generally I like to experiment with all the
different possibilities. Modulation was one such thing. And plain wave sounds (like in my first soundcloud examples) were another.
And I was indeed surprised by the sinus-sid effect.


The modulation is in effect achieved by playing the same track on AY voice B and on the wave voice which targets the voice B volume register.

Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 16:54, 14 January 14
I had a look on the scope and you do have some waveforms approximating a sinus form which sound very nice.


Can you provide some screenshots? I'd like to see how it looks like.
Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 22:52, 15 January 14
Can you provide some screenshots? I'd like to see how it looks like.

Can you provide a demo with just the AY and Waveform isolated (i.e. channel B)...?

I could the provide you with clearer screenshots from the scope.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 12:33, 17 January 14
Can you provide a demo with just the AY and Waveform isolated (i.e. channel B)...?

I could the provide you with clearer screenshots from the scope.


Sure I could, but I could also have recorded the audio (with only channel B) myself and had a look in Audacity :D


Anyway, I am currently preparing to put the source on github - that includes collecting ideas / todos and converting them into issue descriptions (for myself at least but hopefully for anyone who wants to contribute), so that there will hopefully be a bit more progress soon.


Thus, stay tuned..! :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 15:12, 17 January 14
I don't have time to contribute now. I plan that when I will use a SID sound i will contribute then.
So if the export etc is not written when i want to use it, I can write that then.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 00:40, 22 January 14
This is why I asked - I'm trying to understand how you modulated a square AY tone into a sinus tone (this from my experience is not easy!).


What part did you experience to be not easy? I thought that if you have a square wave of e.g. 400hz that you modulate with a sine wave of 400hz you should (depending on the sine waveform you are using) get a quite sinus-ish wave form in the end.
Title: Re: SID tracker / player on CPC (non plus)
Post by: ralferoo on 01:29, 22 January 14
The modulation is in effect achieved by playing the same track on AY voice B and on the wave voice which targets the voice B volume register.
Sorry, I'm a bit thick and don't really understand what you're doing here. I understand the AY registers, but I've never managed to get a pleasant sounding noise out of them myself... ;)

The "wave voice" is just the CPU changing the volume of channel B, right? And then you're playing normal notes on channel B with modulated volumes? And these modulated volumes is just a sine wave?

Whatever it is, it sounds awesome, but I'd love to understand how this works! :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:05, 22 January 14
The "wave voice" is just the CPU changing the volume of channel B, right? And then you're playing normal notes on channel B with modulated volumes? And these modulated volumes is just a sine wave?


Given your thickness you pretty much nailed it! ;-)
Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 11:08, 22 January 14
What part did you experience to be not easy? I thought that if you have a square wave of e.g. 400hz that you modulate with a sine wave of 400hz you should (depending on the sine waveform you are using) get a quite sinus-ish wave form in the end.

I have managed to create a sinus wave sound myself by just playing the wavetable (like your original demo) and it sounds nice - although the resolution was a little 'bitty'.  My attempts at sinus with modulation didn't sound too good though, which is why I was interested in your demo.

In your second demo you're playing the AY and modulating as well - so you're starting with a square wave and then modulating it.  I suspect that this method is introducing a slight alteration of the duty cycle so in effect you're creating some timbre (like with the SID chip) and that's why it sounds good.  Maybe it's because you are altering at ~13khz (mine is with DMA at ~15khz) and this is changing things - I need to look on a scope though with just channel B to see what's actually going on though.

The "wave voice" is just the CPU changing the volume of channel B, right? And then you're playing normal notes on channel B with modulated volumes? And these modulated volumes is just a sine wave?

Yes, this is what a waveform voice is, using the same method of playing a sample on the CPC.

BSC First demo - he 'bypassed' the AY and stepped through these samples at different rates to create different tones.  He also had different types (square, triangle, buzzsaw etc).

My First demo - I bypassed the AY and stepped through a sample of the square wave, in effect replicating the AY.  Then I delayed this sample and played the AY tone at the same time which lengthens or shortens the duty cycle of the soundwave, introducing timbre.  This is what the Commando demo did and the most common effect on the ST.

BSC Second demo - this time he played a AY tone and a sinus sample at the same time (but with no delay I think) and created that sound.

BSC is of course using a classic CPC and I am using the Plus DMA so we get slightly different effects :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:32, 22 January 14
I have managed to create a sinus wave sound myself by just playing the wavetable (like your original demo) and it sounds nice - although the resolution was a little 'bitty'.  My attempts at sinus with modulation didn't sound too good though, which is why I was interested in your demo.

Could this be due to the fact that you had no proper interpolation? My demos are all based on the 256 bytes wavetable which is interpolated.

In your second demo you're playing the AY and modulating as well - so you're starting with a square wave and then modulating it.  I suspect that this method is introducing a slight alteration of the duty cycle so in effect you're creating some timbre (like with the SID chip) and that's why it sounds good.  Maybe it's because you are altering at ~13khz (mine is with DMA at ~15khz) and this is changing things - I need to look on a scope though with just channel B to see what's actually going on though.

No, no.. In the second demo.. wait a minute (and scroll down)..

BSC First demo - he 'bypassed' the AY and stepped through these samples at different rates to create different tones.  He also had different types (square, triangle, buzzsaw etc).

My First demo - I bypassed the AY and stepped through a sample of the square wave, in effect replicating the AY.  Then I delayed this sample and played the AY tone at the same time which lengthens or shortens the duty cycle of the soundwave, introducing timbre.  This is what the Commando demo did and the most common effect on the ST.

BSC Second demo - this time he played a AY tone and a sinus sample at the same time (but with no delay I think) and created that sound.

BSC is of course using a classic CPC and I am using the Plus DMA so we get slightly different effects :)

Just to set the record straight concerning my 3 demos on soundcloud:

demo 1 - CPCSid by Carl Carbunckel on SoundCloud - Hear the world’s sounds (https://soundcloud.com/carl-carbunckel/cpcsid) - was just the wave engine (demonstrating many different instruments / wave forms), no AY voices, as redbox said
demo 2 - CPCSid next try by Carl Carbunckel on SoundCloud - Hear the world’s sounds (https://soundcloud.com/carl-carbunckel/cpcsid-next-try) - contains 2 AY voices (A and C) and 1 wave voice (on voice B, using different wave instruments, i.e. waveforms, arpeggio etc.) with no modulation of an AY voice!
demo 3 - Sid3 by Carl Carbunckel on SoundCloud - Hear the world’s sounds (https://soundcloud.com/carl-carbunckel/sid3) - contains 3 AY voices + 1 wave voice (using a sine wave) which modulates AY voice B. The melody which is played on voice B and the wave voice is exactly the same (it's actually the same track).

As far as the "sid3" demo goes, there was no explicit delay (i.e. difference in the resulting frequency values), but there's still different amounts of beating (which I called sweeping all the time, which was the wrong term btw) between any of 2 tones, depending on the pitch, because many of the AY period to frequency transformations result in a relatively high error, especially when compared to wave engine, which does not do integer division to deduce the frequency and seems to be a bit more precise.. These small, unintentional differences could be considered to add to the richness of the sounds ;-)
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 23:54, 22 January 14
The third demo is incredibly rich in sound!
If the 3rd demo was done in the non-sid way, it would be interesting to see what the difference in ram consumption.

Which leads to my next question...

Could this be used in any of the following:

1) Game while actually playing
2) Title screen with animation
3) CPC Demo
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 04:12, 23 January 14
Well, the way I understand it, the SID emulation is pretty time consuming. So I would rather say no. But BSC can surely give you details.  :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 11:28, 23 January 14
The third demo is incredibly rich in sound!
If the 3rd demo was done in the non-sid way, it would be interesting to see what the difference in ram consumption.

Which leads to my next question...

Could this be used in any of the following:

1) Game while actually playing
2) Title screen with animation
3) CPC Demo
No on 1 and 2.
Yes on 3.
Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 13:24, 23 January 14
Classic CPC routines take the whole frame, so no room left for anything else.

Using the Plus and DMA it could be used like normal music.
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 13:57, 23 January 14
No on 1 and 2.
Yes on 3.


So with 3 it would have to be an extremely limited demo, with maybe a static picture or some text?


Classic CPC routines take the whole frame, so no room left for anything else.

Using the Plus and DMA it could be used like normal music.



Very interesting. It shows how big the leap from the CPC to the PLUS in the sound department is.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 14:52, 23 January 14
The third demo is incredibly rich in sound!
If the 3rd demo was done in the non-sid way, it would be interesting to see what the difference in ram consumption.

The ram consumption is actually not so different with/without the wave engine. Probably a couple of kb for the 3rd demo (which does only use one wave form)

Could this be used in any of the following:

1) Game while actually playing
2) Title screen with animation
3) CPC Demo

I would say it depends. Theoretically it could be used in all kinds of programs. A title screen with animation (especially things like color cycling or fullscreen hardware scrolling) is definitely possible. A game or demo would both suffer from the limited access to the CPU. Everything would have to be integrated with the player engine, which takes approx. 30 of 72 nops per loop iteration on most iterations (which could or rather should be unrolled to support code being weaved into it). So if you had a really simple game like snake and not too much game logic, that should be possible. The same is true for a demo. I have a couple of ideas which all revolve around color cycling and fullscreen hardware scroll (i.e. no splits) that I would like to try out. One limitation which affects all scenarios is register assignment: The player pre-loads almost all CPU registers (except for those that carry live data e.g. to send to the PSG) so you either had to put most of your game data in memory, or resort to ix/iy indexed access or take away some of the registers at the price of more nops per wave player loop.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 14:54, 23 January 14
Classic CPC routines take the whole frame, so no room left for anything else.


Nope.. See my other response.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 14:58, 23 January 14

So with 3 it would have to be an extremely limited demo, with maybe a static picture or some text?

Very interesting. It shows how big the leap from the CPC to the PLUS in the sound department is.


The leap is indeed big, but not so much. See my other response. Maybe I know the engine better than anyone else.. but really.. just maybe ;-)
Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 15:07, 23 January 14
What BSC is saying is that it's not so simple as other players to use.

With normal AY players you call it once per frame, it takes x number of cycles to execute. You can then do other work during the frame. It drops in easily.

With this player, it needs work doing every line. You need to interleave your code within the limitations of this, in addition as BSC says, the player reserves some registers, so you also need to work within that constraint. It's much harder work.

It's not impossible, but it's much harder to use and probably just about ok for simple games. When I say simple, I mean a game where you can fit it into this constraint rather than a game involving simple mechanics.

In a demo you know exactly how long it takes, you can re-work your code to fit within these constraints so it's much easier.


So, having it on a static title screen: yes
Having it during loading: almost impossible.
having it during a game: Yes, but it would be really hard to work with it.
Using it in a demo: yes.

With a game you always hit problems with amount of ram, amount of cpu time and it's hard work to optimise, and that's when you choose the easy option of a normal AY player ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: redbox on 15:35, 23 January 14
Nope.. See my other response.

Haha, okay.  It's your engine  ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 17:29, 23 January 14
So, having it on a static title screen: yes
Having it during loading: almost impossible.
having it during a game: Yes, but it would be really hard to work with it.
Using it in a demo: yes.


I second all of this. And I'd like to extend: During loading is not almost but completely impossible.
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 19:13, 23 January 14
However.... there is a solution for all of this: Use TotO's CTC-AY, it can generate NMI's based on a timer. So let the CTC-AY generate an NMI every 72 ys. The NMI routine plays the SID emulation and then returns immediately. This also works in team with regular interrupts when done correctly.


There will be about 30% CPU time free.  ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:10, 23 January 14
The third demo is incredibly rich in sound!
If the 3rd demo was done in the non-sid way, it would be interesting to see what the difference in ram consumption.


by the way.. I totally forgot to mention it: when you do that tune without a sid voice you end up with a plain AY tune.
I wonder why anyone interested in [new, sid, different, other] sounds on the cpc would want that ..

Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:22, 23 January 14
However.... there is a solution for all of this: Use TotO's CTC-AY, it can generate NMI's based on a timer. So let the CTC-AY generate an NMI every 72 ys. The NMI routine plays the SID emulation and then returns immediately. This also works in team with regular interrupts when done correctly.

There will be about 30% CPU time free.  ;)


Yeah, maybe .. but - as I will patiently repeat again and again and again - this project is about a software based solution. If you needed additional hardware you'd exclude anyone without it. And I want it to run on a plain old CPC 6128. No Plus, no add-ons, no PC-based editor, no internet connection, no comprehensive online help with automatic updates and google+ interface... Seems hard to grasp, but it's the truth.
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 22:25, 23 January 14
Haha! You got a WELL point there.  :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: gerald on 22:28, 23 January 14
However.... there is a solution for all of this: Use TotO's CTC-AY, it can generate NMI's based on a timer. So let the CTC-AY generate an NMI every 72 ys. The NMI routine plays the SID emulation and then returns immediately. This also works in team with regular interrupts when done correctly.
Not sure the Z80 can handle NMI every 72 yocto second 72*10^(-24)  :P
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 23:58, 23 January 14
Well, it works for every 64, so why not for 72.  ;D
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 15:12, 24 January 14
I'll upload the latest version of the tracker later today so anyone who's interested in combining AY with wave instruments can play around with it.
The editor is still very basic, so don't expect soundtrakker quality editing possibilities ;)

Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 16:09, 24 January 14
I need to give this a go at some point.
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 19:00, 24 January 14
Great to see how this project evolves in big steps.  :)

Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 18:36, 25 January 14
Dear folks! Another preview (see attachment). This time a bit more of Final Fantasy containing different tracks using different instruments,
all AY voices and the wave engine modulating voice B (like the sid3 example).. PLUS: A working track (aka pattern) and sequence (aka songlist) editor!
very basic still, indeed, but I think you get the point, when you have a look at it. Try to re-arrange the song or create your own!
And if you do so I'd love to see more snapshots being uploaded here :D

The screen is now made up of 4 parts (switch using the tab key), instrument params (top left) with instrument tables below,
the sequences (top right) with track lists for the voices wave, AYa, AYb, AYc and finally the track editor (bottom left) where you
can enter notes (using the current instrument). Entering/displaying notes is quite different from how you might be used to it.
The length of a note is not anymore dependent on its position in the track but is now a parameter you have to enter (the 1st
hex-value after the note-octave pair). It's also kind of recorded when you enter notes, i.e. the duration of your key press is measured
and stored in the track (one of the many ideas I have is to have a quantizer function here). You can also edit the duration by pressing
enter on the duration column.

All of it is very fiddly, I know, but it's based on the concept that all music data is stored in a way that is optimized for the player,
and not necessarily for a human being. That's for speed's and thus audio quality sake. I have a couple of ideas as to how to remedy
this (like showing longer notes as bigger lines, i.e. the height of a note line is dependent on its duration) but I am really curious to
hear you ideas and suggestions (apart from add-on suggestions and other off-topic chit chat :-P).

Creating this track (apart from the instruments, which were already there) took my about 40 mins maybe.. The final editor will
be much more easy to use, so you get an idea :) 

Some hints concerning how to use it:
press space to play the song (except for when editing instrument tables), esc to stop
- instrument, pattern and octave control have been moved to the f-keys, so:
f1,f2,f3 toggle AYa, AYb and AYc
f4 and f7 decrement / increment the instrument #
f5 and f8 dec / inc the octave (the displayed number is off by one!)
f6 and f9 dec / inc the current track for editing

In the track editor, you can only move around using the cursor keys and press enter to
type a hex value representing the track #. $ff means loop (i.e. jump to the sequence start)
scrolling is not yet supported, so beware of the upper and lower row!

Please also have a look at the "manual" I posted with the first preview. Apart from the changes I just mentioned,
all the keys (should be.. fingers crossed) are still the same. 
Title: Re: SID tracker / player on CPC (non plus)
Post by: Devilmarkus on 19:31, 25 January 14
Sounds very cool... Now who adds some drums? ;)

Keep on going with your project! Good work!
Title: Re: SID tracker / player on CPC (non plus)
Post by: ralferoo on 20:24, 25 January 14
Looks good. I'm confused though... compared to the previous version the shift-left/right for instrument select doesn't seem to work and I've not figured out how the sequences editor works and moving around in there seems to scroll the screen and cause everything to move out of position.

The sounds it's making are good though but I don't really have any idea what's going on! :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 21:25, 25 January 14
Looks good. I'm confused though... compared to the previous version the shift-left/right for instrument select doesn't seem to work and I've not figured out how the sequences editor works and moving around in there seems to scroll the screen and cause everything to move out of position.

The sounds it's making are good though but I don't really have any idea what's going on! :)


Sorry, I forgot to mention the re-mapped keys and the ones for the sequence editor.
I have just updated my latest post.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 13:08, 03 February 14
everybody seems to be composing away ..
Title: Re: SID tracker / player on CPC (non plus)
Post by: Gryzor on 13:17, 03 February 14
Wow, that sounds great, noise notwithstanding!
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 23:12, 05 February 14
Wow, that sounds great, noise notwithstanding!


The noise is gone in the current version.. BUT: 24 downloads and only 1 comment? no opinions? no suggestions?
Feels like I should conclude that no one is really interested in the tool :(
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 00:08, 06 February 14
Oh there is interest. But if you bash at people who gave comments, then they will get silent. An honestly you're pretty resilient to good advice.  ;)  No bad intention, but you did ask, so I answered you.  :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 00:14, 06 February 14
Oh there is interest. But if you bash at people who gave comments, then they will get silent. An honestly you're pretty resilient to good advice.  ;)  No bad intention, but you did ask, so I answered you.  :)


But you gave a meta-answer. And I have yet to see good advice from you - at least concerning this project. I am resilient (very much indeed), yes, sometimes,
but I don't think that my resilience in this thread has done any harm to the project..
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 00:16, 06 February 14
Good so. Because it's a good project!  :)


Ok... whenever you feel like doing that... would be great to add some shortcut / key description in the program... Now I shut up, the stage is yours.  :-X
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 00:42, 06 February 14

The noise is gone in the current version.. BUT: 24 downloads and only 1 comment? no opinions? no suggestions?
Feels like I should conclude that no one is really interested in the tool :(

How do I open the sna file?

Also - I am very interested in this. A while ago I was asking questions in a thread about the possibility of creating a music game in the style of Space Channel 5/ Rhythm Tengoku. This would be good for it.



Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 01:01, 06 February 14
How do I open the sna file?

Also - I am very interested in this. A while ago I was asking questions in a thread about the possibility of creating a music game in the style of Space Channel 5/ Rhythm Tengoku. This would be good for it.

The sna (snapshot) file should work with most emulators. Typing run + enter after loading should give you the tracker.

Hey Baby! Listen to my Face! :D 


I don't know.. Even though there's not much animation in Rythm Tengoku I think that would be kind of hard to do. The player needs a lot of CPU time and you had to interweave
all your game logic,
display routines, keyboard and joystick scanning with that. Not really impossible, but it would require you to think and code quite differently from what you might be used to.
I must admit though, that I have not yet really tried anything like that - even demo effects. And on top of that, I am not an expert in game creation.


Are you planning to write such a game?
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 01:04, 06 February 14
Ok... whenever you feel like doing that... would be great to add some shortcut / key description in the program... Now I shut up, the stage is yours.  :-X


It's a safe bet that some kind of help (screen) will be there one day.
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 01:22, 06 February 14
The sna (snapshot) file should work with most emulators. Typing run + enter after loading should give you the tracker.

Hey Baby! Listen to my Face! :D 


I don't know.. Even though there's not much animation in Rythm Tengoku I think that would be kind of hard to do. The player needs a lot of CPU time and you had to interweave
all your game logic,
display routines, keyboard and joystick scanning with that. Not really impossible, but it would require you to think and code quite differently from what you might be used to.
I must admit though, that I have not yet really tried anything like that - even demo effects. And on top of that, I am not an expert in game creation.


Are you planning to write such a game?

I would definitely like to make such a game after I finish the others.

I got the sna file working - thanks!
Any chance of a little youtube tutorial? :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: Gryzor on 20:57, 06 February 14
I would really think that until the algorithms are finished, building the UI/help/whatever comes a distant second...
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 13:00, 07 February 14
I would definitely like to make such a game after I finish the others.

I got the sna file working - thanks!
Any chance of a little youtube tutorial? :)


When will that be? I think it would be a cool project to try to integrate the AYAY player with a game.


A tutorial is actually a cool idea! Have never done something like that, though. And it is quite unlikely
that this would happen in the foreseeable future.. But I'll keep it in my mind :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 15:38, 07 February 14

When will that be? I think it would be a cool project to try to integrate the AYAY player with a game.


A tutorial is actually a cool idea! Have never done something like that, though. And it is quite unlikely
that this would happen in the foreseeable future.. But I'll keep it in my mind :)


That would happen after the beat em up and the football game is done.

I did open a thread over a year ago about creating a music game for the CPC:

Music/Rhythm Games: Viable on CPC? (http://www.cpcwiki.eu/forum/programming/musicrhythm-games-viable-on-cpc/)

So with your software I guess it would be a case of producing the music first and then fitting everything else around it.


A tutorial would be very useful for us, or even just a video of one of your clips being created on the fly.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 23:59, 07 February 14
That would happen after the beat em up and the football game is done.
I did open a thread over a year ago about creating a music game for the CPC:
Music/Rhythm Games: Viable on CPC? (http://www.cpcwiki.eu/forum/programming/musicrhythm-games-viable-on-cpc/)
So with your software I guess it would be a case of producing the music first and then fitting everything else around it.


You seem to be making a lot of games :) Anywhere on the interwebs where I can see / download them?
And I hope you are not planning or hoping for sampled music like in the example videos you posted over there?
Like, with speech / singing? That would not be possible with the current version of AYAY. I was thinking about
using phonemes (a bit like in this oldskool speech rsx extension which sounded quite good) as wave forms
instead of the basic forms like triangle, sine etc. But that's a completely different story and I have currently no
clue whether that would be feasible at all - I might be dreaming away here ;)


Anyway: I think it should be possible to combine those kind of games with the AYAY engine. It could become a
quite painful developing process, though.. But we are developing on the CPC .. in 2014 .. we like pain, right? :D
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 18:10, 10 February 14
Dear folks! I asked gryzor to split the topic and move everything speech related into a new topic "make the CPC speak and sing (http://www.cpcwiki.eu/forum/applications/re-sid-tracker-player-on-cpc-(non-plus)/)" in the programming category.

So we can keep this awesome idea alive but separate from SID stuff.

And btw: I would REALLY like to know what the 26 ppl that downloaded my last preview think about and - especially - do not like about it.
There must be something like that, otherwise there should be much more comments. I am aware that the interface is really lacking still,
but what exactly made you not enjoy it would be really valuable to know!
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 19:11, 10 February 14
Looking at the manual on the 1st page and ctrl y to playback, but how do you record? (I need to rebind my f keys as all the options come up on winape..)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:23, 10 February 14
Looking at the manual on the 1st page and ctrl y to playback, but how do you record? (I need to rebind my f keys as all the options come up on winape..)


ctrl Y toggles AY playback. There's no way to actually record (live and real time), but when in track/edit mode,
each not you play is stored in the current track.


What do you mean concerning the f-keys?


There's a new version of the tracker btw, I just have to power up my Mac and upload it one day.

Title: Re: SID tracker / player on CPC (non plus)
Post by: Devilmarkus on 14:20, 27 February 14
Speaking about singing computers:
This demo was realized on an unexpanded VIC 20:

Robotic Liberation by PWP (VIC-20) (http://www.youtube.com/watch?v=2SdGkkp1aq8#)
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 14:34, 27 February 14
PWP has a few more demos like that on the Vic-20. Their stuff is more video art than demo  ;D
Title: Re: SID tracker / player on CPC (non plus)
Post by: fano on 11:54, 28 February 14
Speaking about singing computers:
This demo was realized on an unexpanded VIC 20:

Robotic Liberation by PWP (VIC-20) (http://www.youtube.com/watch?v=2SdGkkp1aq8#)


/bender rodriguez likes this


(me not, i really love this)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:00, 11 March 14
Any news from you, cherished users of the Amstrad? Any reviews on AA? A reference in the demoscene or Oscar awards?
Has anyone tried to create a tune with the tracker?


It seems that this topic is dying of an poisonous amalgam of neglect and distraction. Quite sad .. Especially when I see how
much activity is on other, mostly fight-based, threads ..





Title: Re: SID tracker / player on CPC (non plus)
Post by: Devilmarkus on 12:30, 11 March 14
It seems that this topic is dying of an poisonous amalgam of neglect and distraction. Quite sad .. Especially when I see how
much activity is on other, mostly fight-based, threads ..

I'd guess,  the people are awaiting news from you ;)
more demos, more muzak, more fun ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 12:43, 11 March 14
Any news from you, cherished users of the Amstrad? Any reviews on AA? A reference in the demoscene or Oscar awards?
Has anyone tried to create a tune with the tracker?


It seems that this topic is dying of an poisonous amalgam of neglect and distraction. Quite sad .. Especially when I see how
much activity is on other, mostly fight-based, threads ..


I will be using it as I would like some music for the menu of the beat em up, but it will be a while as I'm still sorting out the sprites. I am also still finding it difficult to use when I tried a few weeks ago. But it's probably because I've never really used a tracker before and I'm not use to the interface.


If you ever have time to post a step by step video tutorial like "Creating your first tune" that would be really cool.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:00, 12 March 14
I'd guess,  the people are awaiting news from you ;)
more demos, more muzak, more fun ;)


too bad there's no way to dislike a post ..
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 11:03, 12 March 14
I will be using it as I would like some music for the menu of the beat em up, but it will be a while as I'm still sorting out the sprites. I am also still finding it difficult to use when I tried a few weeks ago. But it's probably because I've never really used a tracker before and I'm not use to the interface.


Yes, I know it's not very self explanatory, but I was hoping that at least for people who are used to trackers (especially on other platforms)
would not find it too difficult to try it out. You have seen my other posts explaining the screen layout, different areas and the keyboard layout?
Was this of any help or was it still difficult and if yes, why exactly?


If you ever have time to post a step by step video tutorial like "Creating your first tune" that would be really cool.


That sounds like a really good idea (and someone else has already suggested so), problem is that I currently don't really find the time.
And as it would be the first time ever that I recorded a tutorial video it would also likely take me some extra time to do.. But I'll keep it
in my mind, promised!
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 11:13, 12 March 14
When I load the sna file into Winape, I see this. Is it supposed to be like that (with the "graphics garbage") or am I having problems with the machine configuration?

Also, are there any keys to insert spaces between the notes?
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 12:36, 12 March 14
When I load the sna file into Winape, I see this. Is it supposed to be like that (with the "graphics garbage") or am I having problems with the machine configuration?


Well.. The garbage is kind of a left-over from a scrolling bug that's there when you move around in the track editor (the one to the right).
Which I did to create the demo track which is part of that snapshot.. The other garbage (i.e. the diagonal line) is the current waveform
being drawn into the track editor, which was added later (and I was admittetly too lazy to move it over). Sorry!


Also, are there any keys to insert spaces between the notes?


Not really.. It's supposed to work differently: Each note has a duration (the 1st column after the note-octave pair) and thus you don't need (or rather
should not have) to add spaces which act to extend the duration of the previous note, like in most other trackers. There's currently no support to
silence / release a note before the next one is played, i.e. a pause or key-off command, but I was planning to add that. So for now each note would
have to have a duration that incorporates any pause between it and it's successor. Does that make sense?
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 12:50, 12 March 14
I understand. It's different from the usual tracking method I'm used to. A mix between tracking and writing on a pentagram. Or a piano roll.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 13:35, 12 March 14
I understand. It's different from the usual tracking method I'm used to. A mix between tracking and writing on a pentagram. Or a piano roll.


Writing on a pentagram? What is that supposed to mean? Anyway, you are right, it's different but owing to how the tracks are layed out in memory.
I was thinking of making the displayed height of a row dependent on it's duration. Another idea was to display empty rows (reflecting the duration
of the previous note) to the user even though internally there are no empty rows. Entering a note in any of the empty rows would then insert a new
note and decrease the duration of the previous note accordingly.. Any other ideas?
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 13:52, 12 March 14

Sorry, I meant staff. I was using the spanish word for it  :P


Staff - Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/Staff_)(music)

A graphical representation of the length would be cool. Like blocks on top of each other.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:28, 12 March 14
Here's another update with a couple of bugs fixed. I think I'll also provide a help page somewhere on the interwebz .. or here in the forum maybe. We'll see.



Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:31, 12 March 14
And another small demo track I made with an older version of the tracker. Just so you can have a listen.

Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 17:49, 26 March 14
Sorry, I meant staff. I was using the spanish word for it  :P

Staff - Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/Staff_)(music)

A graphical representation of the length would be cool. Like blocks on top of each other.


Oh, yes, ok :) I was thinking of making the height of the text row dependent on it length, just as a means of visual representation
and additionally to displaying the length as a number (which you have to be able to read/write anyway) ..


I am not working on it right now (again - the only constant thing about this project is that I am hopping on and off), but I will collect
a list of keys per function / area and put it online so you don't have to scrape this thread every time you want to use it (which I bet
is almost every day! :D)


Did you try any of the two new snapshots? Maybe even tried to compose a bit?
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 23:58, 26 March 14
Ok folks! No more excuses as of now! There's a manual in a new thread:

Klicken Sie here (http://www.cpcwiki.eu/forum/applications/ayay-kaeppttn-(aka-sid-tracker)-manual/)
Title: Re: SID tracker / player on CPC (non plus)
Post by: Overflow on 10:11, 28 March 14
Wow!  8) I should have read that thread before. Nice to see BSC at work on a SID tracker.
 
I can hear the songs and sounds (I can wonder how to use that on demo), but I won't comment the tracker itself: I'm not the right guy to compose song.  :P
 
Anyway: I like the news and the sound.  :D
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 12:23, 28 March 14
Wow!  8) I should have read that thread before. Nice to see BSC at work on a SID tracker. 
I can hear the songs and sounds (I can wonder how to use that on demo), but I won't comment the tracker itself: I'm not the right guy to compose song.  :P 
Anyway: I like the news and the sound.  :D
Thanks, great to know that you like it :)

About using it in a demo: It is basically a tightly timed play routine just as a sample player or your average line split: There's something to be done every 72us (not 64us as  with splits). This something is picking the next sample value and sending to the AY, which takes 23 nops per iteration (and there are 277 in total). So there are 49 nops left,

BUT: this does not apply for all the iterations, because approx. 30 to 40 of those are needed to do instrument and song playing logic and to write the other AY registers. That still leaves you with more than 200 iterations (i.e. 225 scanlines) with the aforementioned spare 49 nops where you can do anything you like,

BUT(2): many of the CPU registers are pre-loaded and can't be used. In an earlier post I essentially said that you can't use any register - which was plain crap.
Currently the d, ix and iyl registers are free and there could be more with a bit of refactoring etc. The other registers could of course also be used, but then you'd have to pay the price of saving/restoring the value (because it could be anything at that time) or setting it to a known constant (like f4 or f6 to address the PPI/AY)

Some of this should remind you of Backtro where I guess you had to deal with similar constraints and thus had to resort to color cycling and the likes.

Some ppl have already expressed interest in integrating the player with some fancy on-screen action btw :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 12:32, 28 March 14
I'm going to be away for 2 weeks, but I will check that manual when I get back.
Title: Re: SID tracker / player on CPC (non plus)
Post by: Overflow on 13:06, 28 March 14
Quote from: BSC
About using it in a demo (...)
Thanks for the explanations, all was very clear.
I also a quick look at the code (sid+monty.sna):
one "big loop" takes 19628 NOP-cycles (but 1 loop out of 12 takes 19654; as expected?).
I believe it won't be a big deal to reach 19968 / expected VBL
(first by adding 2 more double-routines (that routine of 72+72=144 NOP-cycles)?)
 
Quote from: BSC
Some ppl have already expressed interest in integrating the player with some fancy on-screen action btw :)
Nice! I believe this is the best idea: not trying to integrate your player into some possibly existing fx ideas,
but rather think about then build some fancy on-screen action to support the song/sounds the best way possible.
Some ppl  (...) : we don't want to know who, keep it secret.  :P
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 14:01, 28 March 14
Did you try any of the two new snapshots? Maybe even tried to compose a bit?

I want to try it this weekend and make some music, right now I have work to do. You know, the kind that pays the bills  :laugh: 

BTW, use the URL bbcode to make the internal links on the forum work.

AYAY Manual (http://www.cpcwiki.eu/forum/applications/ayay-kaeppttn-(aka-sid-tracker)-manual/)

http://www.lymeneteurope.org/forum/viewtopic.php?f=8&t=4237 (http://www.lymeneteurope.org/forum/viewtopic.php?f=8&t=4237)



Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 00:04, 29 March 14
Thanks for the explanations, all was very clear.
I also a quick look at the code (sid+monty.sna):
one "big loop" takes 19628 NOP-cycles (but 1 loop out of 12 takes 19654; as expected?).
I believe it won't be a big deal to reach 19968 / expected VBL
(first by adding 2 more double-routines (that routine of 72+72=144 NOP-cycles)?)

The differences in the NOP count you saw are unintentionally... consider that a bug.
As you might have seen in the code, there's a lot of NOPs to align the sample playback with the 72us grid.
Some of these parts got messed up along the way (and are really cumbersome to maintain anyway..).
I'll fix that later. And I hope this can be done programmatically somehow. Yes, adding 2 loop iterations
should bring it closer to 19968 nops.

Nice! I believe this is the best idea: not trying to integrate your player into some possibly existing fx ideas,
but rather think about then build some fancy on-screen action to support the song/sounds the best way possible.

Yes, I just have to find some ppl to take care of this :D

Some ppl  (...) : we don't want to know who, keep it secret.  :P

Ok, I was about to tell you who it was, but ok, I agree, secret is secret ;-)
I didn't want to put pressure on the guys and I don't even know iirc, but Arnoldemu and maybe Offset and also Rhino come to my mind (but don't tell anyone!)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 16:32, 31 March 14
I want to try it this weekend and make some music, right now I have work to do. You know, the kind that pays the bills  :laugh: 

BTW, use the URL bbcode to make the internal links on the forum work.


How was your weekend? :D


Thanks for the bbcode tutorial, I got it working now :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:14, 13 April 14
I have released the source code. See here (http://www.cpcwiki.eu/forum/news-events/meet-einstein-archimedes-william-shakespeare-monet-and-ravel/) for details.



Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:15, 27 April 14
Hoooray! McKlain has tested the tracker and gave some feedback on the editing facilities. Not surprisingly he stated that manually setting the duration of a note is quite unusual and slow. And I'd say it's probably error prone as well. So I decided to cure that by switching (back) to the classical piano roll display/editing (internally it will still be duration based, though) which will be part of another update I'll post here when I'm done with it.

Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 23:58, 24 May 14
[...] which will be part of another update I'll post here when I'm done with it.


.. which might take a while to take place (as I haven't even started) ..
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 04:58, 06 January 15
Any news about this great project?

Title: Re: SID tracker / player on CPC (non plus)
Post by: Ast on 21:34, 06 January 15
discontinued, i think. Bsc gaves us the code source thinking  maybe someone could make a gui, but.... As always, nothing!  :-X
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 22:41, 06 January 15
Well... making a GUI is simple, the other part it the tricky one.  ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 11:09, 07 January 15
BSC made a great achievement - a working SID "effect" player on CPC. (called this because it can do more).
He showed a work in progress functional gui and published some sounds made with it.

I do plan to use it in a future production but I am not ready yet.

Others showed some interest but then nothing. Has anyone used it yet and published a sound made from it??


Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 18:58, 07 January 15
Yes it is great work! Are you going to make the GUI for it? Or do I misunderstand your usage of it? Sorry, I'm not a sound person, but I see he did great work and it should be finished up.  :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: arnoldemu on 19:51, 07 January 15
Yes it is great work! Are you going to make the GUI for it? Or do I misunderstand your usage of it? Sorry, I'm not a sound person, but I see he did great work and it should be finished up.  :)
No my plan was to ask somebody to make a music with it.
Then to play it in a game in the title screen.
So I would try to make the "compiler" so I can play the music in a game.
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 19:53, 07 January 15
Good thing BSC released the source, so you should be able to do so. Good luck! Looking forward!  :) :) :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 13:41, 09 January 15
BSC made a great achievement - a working SID "effect" player on CPC. (called this because it can do more).
He showed a work in progress functional gui and published some sounds made with it.

Thank you very much :)

Others showed some interest but then nothing. Has anyone used it yet and published a sound made from it??

McKlain tried it but rightfully mentioned that controlling the length of a note is currently cumbersome.
Others said they wanted to try it but never got back to me with real feedback.
Don't know what went wrong :( Maybe just that everyone is very very busy.

I was looking into some C dev chains for the CPC the other day. That might be something that I'd like to
try out to build the very easy GUI and all the things still missing to make it usable.
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 15:02, 09 January 15
Did you ever get round to doing a video tutorial on this?
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 15:19, 09 January 15
I was looking into some C dev chains for the CPC the other day. That might be something that I'd like to
try out to build the very easy GUI and all the things still missing to make it usable.


That would be a quantum leap for the tracker  ;)




PS.
I'll write you an email before 2016  ;D
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 13:50, 10 January 15

That would be a quantum leap for the tracker  ;)




PS.
I'll write you an email before 2016  ;D

Did you manage to make any tunes with this?
I would like to make some music demo's for the beat em up games title/menu sequence and the football game.
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 14:06, 10 January 15
Did you manage to make any tunes with this?


Not really, I just made some test and gave some feedback to BSC. Right now you can't save or load files on the tracker, I think.
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 20:15, 10 January 15

Right now you can't save or load files on the tracker, I think.

Okay.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:50, 10 January 15
Did you ever get round to doing a video tutorial on this?

No, I have never made something like a video tutorial and would probably suck really badly..
And there's an ok-ish manual online that only few ppl bothered to have a look at. Honestly I doubt
this would be very different if a tutorial video was available.. But I might be completely wrong here ;)
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:52, 10 January 15
That would be a quantum leap for the tracker  ;)

Indeed.. indeed.. But you could still try to create anything with it ;-) You could load and save using the snapshot
functionality of your emulator btw.

PS.
I'll write you an email before 2016  ;D

I can't say that of myself :D
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 14:30, 17 January 15
Okay. There are couple of things I need to get done on the beat em up this weekend to send off, but I now need to start thinking seriously about the sound effects and music for the game. I would like to see if it's possible to have the title and menu screen using this SID tracker. I will attempt again.

I did have a look at the manual the last time I loaded the tracker, but I remember looking at the screen and not knowing what to do as it doesn't yet have a graphical interface.*

Winape has a snapshot function.



*Just to let you know that I am not complaining, I just found it tricky to use.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 19:05, 17 January 15
Okay. There are couple of things I need to get done on the beat em up this weekend to send off, but I now need to start thinking seriously about the sound effects and music for the game. I would like to see if it's possible to have the title and menu screen using this SID tracker. I will attempt again.

That's good news! :) But I think quite some work needs to be done before it can be used stand-alone / as part of another prod. Mostly because there's no compiler yet which could convert from the not yet available AYAY song file format to a raw player. A lot of things related to this are just not yet written or even defined. So you're more than welcome to throw your ideas, requirements, suggestions and we'll how we can get this to work.

I did have a look at the manual the last time I loaded the tracker, but I remember looking at the screen and not knowing what to do as it doesn't yet have a graphical interface.*

*Just to let you know that I am not complaining, I just found it tricky to use.

Yes, I know, it's indeed tricky. It took me quite some time to make the demo tunes which I uploaded here because the work flow is still incomplete. I think I have to put some more work into that before uploading a new version or generally offering it as a useful tool. But in the meantime let me hear what was specifically tricky for you so I maybe can prioritize the improvements needed.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 20:55, 17 January 15
Just another small demo (which was part of one of the snapshots I uploaded a while ago) so you all can have a listen and refresh your memory as to how awesome AYAY Kaeppttn sounds ;-)

https://soundcloud.com/carl-carbunckel/sid4 (https://soundcloud.com/carl-carbunckel/sid4)

It features a 3 channel AY tune and additionally a sinus sid effect which is achieved by modulating the main voice (channel B) with a wave track which plays the same notes. 
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 01:41, 18 January 15
WoW! Awesome!  :)  SID effects and AY!  :)  Great!  :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: Ast on 04:20, 18 January 15
@BSC (http://www.cpcwiki.eu/forum/index.php?action=profile;u=480) : As i write you "excellent as always!"
One question :
I remember earing your street fighter 2 soundtracker conversion in euromeeting 3.
Where can i download this peace of art ?




Édit:
If you have to add something in AYAY, think about Playcity format and 6 channels. I believe more people would be interested. It's just an idea, No more...
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 14:22, 18 January 15
@BSC (http://www.cpcwiki.eu/forum/index.php?PHPSESSID=6kcebj9a3n8m6ckkoi90qmgb94&?action=profile;u=480) : As i write you "excellent as always!"
One question :
I remember earing your street fighter 2 soundtracker conversion in euromeeting 3.
Where can i download this peace of art ?

Thank you :) I don't know where you can download the tune, but I have dsk files where that
tune should be a part of. I can have a look if you want to have it :) BTW: I think I made 2
SF2 tunes. Chun Li stage and the tune that was playing when you finished the game.
Which is the one you want?

If you have to add something in AYAY, think about Playcity format and 6 channels. I believe more people would be interested. It's just an idea, No more...

PlayCity or any support for hardware add-ons in general could be done in the future, but for now I think it's more important to have a complete tracker / compiler for the unmodified CPC series. So let's see what the far far away future will bring :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: Ast on 15:12, 18 January 15
Thank you :) I don't know where you can download the tune, but I have dsk files where that
tune should be a part of. I can have a look if you want to have it :) BTW: I think I made 2
SF2 tunes. Chun Li stage and the tune that was playing when you finished the game.
Which is the one you want?


If i can have the two ones, it's all rights for me  :laugh:
My email adress : ast49152 at gmail dot com

PlayCity or any support for hardware add-ons in general could be done in the future, but for now I think it's more important to have a complete tracker / compiler for the unmodified CPC series. So let's see what the far far away future will bring :)


I was just thinking about TFM 's need (remember Great Giana Sisters' 4 channels tune)
And McKlain who wants to know which  Cpc soundtracker he could use to compose this tune...
So... People may ask this feature.
But, i let you do what you have to do. Take all the time you need...
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 21:59, 18 January 15
If i can have the two ones, it's all rights for me  :laugh:
My email adress : ast49152 at gmail dot com

Mail is on the way..

I was just thinking about TFM 's need (remember Great Giana Sisters' 4 channels tune)
And McKlain who wants to know which  Cpc soundtracker he could use to compose this tune...
So... People may ask this feature.
But, i let you do what you have to do. Take all the time you need...

Yes, but I honestly struggle to comprehend the fuss about yet another hardware add-on and besides - the sources
are freely available, so anyone could make a PlayCity or whatever compatible version..
Title: Re: SID tracker / player on CPC (non plus)
Post by: Ast on 22:05, 18 January 15
That's ok for me... Mail received. ;D
Title: Re: SID tracker / player on CPC (non plus)
Post by: TFM on 00:51, 19 January 15
Right, the wheel doesn't have to be invented again  :)  Making SID effects is imho way more hard than getting AY / PlayCity support. The good thing about PlayCity is that it is even more easy to program than the AY. So any AY player can be patched for it. Only problem is . ... like usually.. where to take the time from.  :)
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 01:34, 19 January 15
That's good news! :) But I think quite some work needs to be done before it can be used stand-alone / as part of another prod. Mostly because there's no compiler yet which could convert from the not yet available AYAY song file format to a raw player. A lot of things related to this are just not yet written or even defined. So you're more than welcome to throw your ideas, requirements, suggestions and we'll how we can get this to work.

Yes, I know, it's indeed tricky. It took me quite some time to make the demo tunes which I uploaded here because the work flow is still incomplete. I think I have to put some more work into that before uploading a new version or generally offering it as a useful tool. But in the meantime let me hear what was specifically tricky for you so I maybe can prioritize the improvements needed.

I will be giving it another go sometime next week. I'll probably start something simple like a looping drum beat.
Title: Re: SID tracker / player on CPC (non plus)
Post by: McKlain on 09:43, 19 January 15
I think that you can't make drums yet on this version of the tracker. @BSC (http://www.cpcwiki.eu/forum/index.php?action=profile;u=480) , correct me if I'm wrong.
Title: Re: SID tracker / player on CPC (non plus)
Post by: sigh on 12:00, 19 January 15
I think that you can't make drums yet on this version of the tracker. @BSC (http://www.cpcwiki.eu/forum/index.php?action=profile;u=480) , correct me if I'm wrong.

I see. I'll try and copy a piece of music that's already out there instead.

Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:37, 21 January 15
I think that you can't make drums yet on this version of the tracker. @BSC (http://www.cpcwiki.eu/forum/index.php?PHPSESSID=ggp61kuc4agrearmbpas1grb73&?action=profile;u=480) , correct me if I'm wrong.

I must admit that I don't know out of my head. Noise support is only partly supported right now
so you are right insofar as drums including noise are not possible.
Title: Re: SID tracker / player on CPC (non plus)
Post by: BSC on 22:38, 21 January 15
By tha way: I am thinking about a Soundtrakker to AYAY converter, so there's a bit more to play around with for everyone :)