News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_BSC

SID tracker / player on CPC (non plus)

Started by BSC, 13:35, 05 November 13

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

arnoldemu

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 ;)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

redbox

Quote from: BSC on 13:54, 23 January 14
Nope.. See my other response.

Haha, okay.  It's your engine  ;)

BSC

Quote from: arnoldemu on 14:07, 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.
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

TFM

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.  ;)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

BSC

Quote from: sigh on 22: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.


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

** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

BSC

Quote from: TFM on 18: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.  ;)


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.
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

TFM

Haha! You got a WELL point there.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

gerald

Quote from: TFM on 18: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.
Not sure the Z80 can handle NMI every 72 yocto second 72*10^(-24)  :P

TFM

Well, it works for every 64, so why not for 72.  ;D
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

BSC

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 ;)

** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

sigh

I need to give this a go at some point.

TFM

Great to see how this project evolves in big steps.  :)

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

BSC

#87
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. 
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

Devilmarkus

Sounds very cool... Now who adds some drums? ;)

Keep on going with your project! Good work!
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

ralferoo

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! :)

BSC

Quote from: ralferoo on 19: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! :)


Sorry, I forgot to mention the re-mapped keys and the ones for the sequence editor.
I have just updated my latest post.
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

BSC

everybody seems to be composing away ..
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

Gryzor

Wow, that sounds great, noise notwithstanding!

BSC

Quote from: Gryzor on 12:17, 03 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 :(
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

TFM

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.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

BSC

Quote from: TFM on 23:08, 05 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..
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

TFM

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
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

sigh

Quote from: BSC on 22:12, 05 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.




BSC

Quote from: sigh on 23:42, 05 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?
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

BSC

Quote from: TFM on 23:16, 05 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.
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

Powered by SMFPacks Menu Editor Mod