Hi everyone.
First, sorry for my english.
I want to announce the development of a "new" sound board for the Amstrad CPC based on Swinkels SwinSID project. SwinSID is an actual clone of the 8580 SID sound chip from Commodore 64 and 128.
Why SwinSID SID clone and no real SID?
- Real SID are hard to find nowadays in a full working condition (from ebay, for example).
- If you find one, is not cheap.
- There are basically 2 type of SID chips (6581 and 8580). The first one need 12v and 5v to work and the second one 9v and 5v. You need aditional power source (as Bryce's CPCSID project needs) and more components to work with.
- Some real SID needs refrigeration (overheating problems).
- SwinSID can be easily reproduced and is cheap (I've made 4 of them easily in my house).
- SwinSID is not exactly as a real SID and doesn't sound exactly as a real SID. A great notice for people that doesn't like SID (or Commodore hardware).
- SwinSID adds some features to the standart SID IC like 5 more wave types.
- ...
My sound interface will be a X4 board. The sound board includes 4 digital (samples) 8 bit stereo channels, like Amiga (WIP) fully microcontroller assisted with 512KB of sound RAM for samples and 6 stereo synthesizer channels (3 left and 3 right) with "2 SwinsID" (fully working). An stereo LINE-IN is planned too to mix stereo output from Amstrad CPC or PlayCITY.
* The "SID" part *I've addressed SID chips in a different way (more "natural" way I think). I only need 6 I/O ports to address the 2 SID chips instead of 50 ports (one port for each SID register).
- F9D0 - Data port for MONO 3 Channels mode (2 SIDs working together)
- F9D1 - Data port for SID1 (left)
- F9D2 - Data port for SID2 (right)
- FAD0 - Register select port for MONO 3 channels mode *
- FAD1 - Register select port for SID1
- FAD2 - Register select port for SID2
* FAD0 is the "real" register port. FAD1 and FAD2 are "ghost" ports derived from FAD0 added to the design for "best programming" and "best optimization" for Z80 coders (you can use OUTI, for example). FAD0, FAD1 and FAD2 selects the same register latch then and the last selected register keeps stored until you select a new one. When you send the DATA to one of the three DATA ports, the correspondent SID is selected and the DATA is send to the previosly selected register.
When the Sonique Sound Board will be completed, tested and fully working, I will upload all the design information and schemes.
By now, thanks to Syx, Augusto Ruiz and Javier García Navarro, there is a very limited SID player for my interface based on the Sam Coupé one and a Caprice32 version with the SID part of my inteface fully integrated and working for testing. This Caprice32 will be released when the "sample part" is finished.
I've added a RC Low pass filter to the board too for best sound quality.
And here you have some tracks recorded directly from my "CPC + Sonique Sound Board" playing some SID files (3 channels, MONO mode).
I hope you like it.
Cheers,
DaDMaN.
https://soundcloud.com/david-donaire-s-nchez/sets/amstrad-cpc-sonique-sound(https://i1.sndcdn.com/artworks-000136870567-spe90i-t500x500.jpg)
Congratulations! You put a lot of effort in this project.
Quote from: DaDMaN on 22:57, 22 November 15
* FAD0 is the "real" register port. FAD1 and FAD2 are "ghost" ports derived from FAD0 added to the design for "best programming" and "best optimization" for Z80 coders (you can use OUTI, for example).
Sorry, no, you can't because OUTI can't be used. Because OUTI decreases B, C is not changed. So you need ghost ports with increasing value in B (like the 8255IDE card has).
You have to use something like:
&F8D0
&F9D0
&FAD0
&FBD0
In this case you could use OUTI four times.
But why do you use the SID (clone)? Why not using modern technology when starting from scratch anyway?
More new hardware on the must have list. ;)
Quote from: TFM on 23:33, 22 November 15
Congratulations! You put a lot of effort in this project.
Sorry, no, you can't because OUTI can't be used. Because OUTI decreases B, C is not changed. So you need ghost ports with increasing value in B (like the 8255IDE card has).
You have to use something like:
&F8D0
&F9D0
&FAD0
&FBD0
In this case you could use OUTI four times.
But why do you use the SID (clone)? Why not using modern technology when starting from scratch anyway?
Ports are mapped in "pairs" to the correspondent SID:
- F9D0 | FAD0: Data and Register of virtual Mono mode SID
- F9D1 | FAD1: Data and Register of SID1
- F9D2 | FAD2: Data and Register of SID2
To write to SID2, you first select the register number writting to &FAD2 and put the value into the data register &F9D2. B is decremented in one.
Syx helped me with this I/O layout anyway.
I've used SID because I like SID sound and is still a powerful "retro" synthesizer for "retro" machines nowadays
Well, imho is was powerful 40 years ago, but let't not discuss about the prophets beard. Music is always a personal taste thing. :)
Can you give a coding example for your OUTI idea?
Quote from: TFM on 23:45, 22 November 15
Well, imho is was powerful 40 years ago, but let't not discuss about the prophets beard. Music is always a personal taste thing. :)
Can you give a coding example for your OUTI idea?
It's a Syx OUTI idea. Ask him. My first version used 50 ports instead (like Bryce's CPCSID project did). I'm not a "real" coder.
Ok, I guess his idea was that the IO addresses at &F9xx are the shadow IO addresses of &FAxx ports. So one could save 1 us (INC B) and write two bytes, 1. register, 2. data. Maybe that. Did listen to your sound examples. Well, sounds better than a c64. ;D
Quote from: TFM on 23:55, 22 November 15
Ok, I guess his idea was that the IO addresses at &F9xx are the shadow IO addresses of &FAxx ports. So one could save 1 us (INC B) and write two bytes, 1. register, 2. data. Maybe that. Did listen to your sound examples. Well, sounds better than a c64. ;D
And It will sound better with a Z80/CPC propietary player playing 6 channels music instead of playing C64 SIDs with the CPC emulating the 6510 CPU ;)
Well, in that point I totally agree!
Been listening to the tunes on your soundcloud and other SwinSID videos on YT ... It consistently lacked the somewhat organic wobbling vibes of the original SID. Which can be a real problem for SwinSID as a SID replacement, but not that much in my opinion for a new CPC expansion based on it.
Quote from: DaDMaN on 22:57, 22 November 154 digital (samples) 8 bit stereo channels, like Amiga (WIP) fully microcontroller assisted with 512KB of sound RAM for samples
Might be too early to ask, but:
• What microcontroller?
• Assisted how? Paula-DMA-like or something more sophisticated (eg. built-in music & fx player running onboard)?
• Could that microcontroller access the SID registers too?
Anyway, I quite like how it is coming already. Also I hope you're prepared to see your board sadly taking dust for several years before proper software emerge (ie. not just quick tech-demo hacks).
Quote from: CraigsBar on 23:41, 22 November 15
More new hardware on the must have list. ;)
Agreed. Only problem, my Mother-X4 is full already.
@TotO (http://www.cpcwiki.eu/forum/index.php?action=profile;u=290) : any plan for a Mother-X8? :)
Quote from: Grim on 00:44, 23 November 15
Been listening to the tunes on your soundcloud and other SwinSID videos on YT ... It consistently lacked the somewhat organic wobbling vibes of the original SID. Which can be a real problem for SwinSID as a SID replacement, but not that much in my opinion for a new CPC expansion based on it.
Might be too early to ask, but:
• What microcontroller?
• Assisted how? Paula-DMA-like or something more sophisticated (eg. built-in music & fx player running onboard)?
• Could that microcontroller access the SID registers too?
Anyway, I quite like how it is coming already. Also I hope you're prepared to see your board sadly taking dust for several years before proper software emerge (ie. not just quick tech-demo hacks).
Agreed. Only problem, my Mother-X4 is full already.
@TotO (http://www.cpcwiki.eu/forum/index.php?action=profile;u=290) : any plan for a Mother-X8? :)
I agree. As I said, it doesn't sound exactly as a real SID does. Not a problem for CPC users and simplifies a lot the design of the interface (and we don't need to use old stock canivalized SIDs from real Commodores).
I'm trying ATMEGA88PA (the same used with SwinSID) clocked at 32Mhz (the main clock of the board thanks to SwinSID design). It will be a "sample player". My idea is to load samples to interface RAM with a specific format including sample index number, loop enabled (or not), and loop start and end offset.
On the CPC side you only need to send commands to play or stop playing specified sample on the specified channel, set channel volume and channel playing frequency. That's all. The microcontroller will play the sample but the CPC controlles it on "real time".
That's all by now.
Ok, the Amiga way then. Hence your sample-chip will need a name (I vote to name it Gertrude! :).
I'd vote for INGRID as she's my favorite game character. [emoji3]
What about getting the MSx soundcard/chips instead or as well ?
;D
anyway, nice idea and project.
will it run well alongside the plAYcitY or the built-in AY ?
good that it uses the X4 design... this has becomed the de-facto new standard and it would be a shame not to use it.
Now I guess some proper MIDI card would be nice in order to turn a CPC into a freaking cool modern Chiptune station.
Ingrid, Gertrude... Guys, if you need any other very traditional german names, like Friedlinde, let us know. :-)
Cool project, btw! 8)
I'm personally not fan about playing other computers sound on CPC (SID, FM, ...). Changing its identity.
If I want SID, I can run musics on an C64... But, good luck for your project! 8)
Quote from: Grim on 00:44, 23 November 15@TotO (http://www.cpcwiki.eu/forum/index.php?action=profile;u=290) : any plan for a Mother-X8? :)
Any plan for a 6ch player? ;D
About MotherX8, I think it is first possible to link an special second board side to side to expand the existing slots.
Nice project. I hope your designing it so that the SwinSID is socketed and a real 8580 can be use too if the owner has one?
I never actually built the CPCSID, it only made it as far as a design concept on paper... And then I got bored and built something else :D
Bryce.
Quote from: villain on 07:54, 23 November 15
Ingrid, Gertrude... Guys, if you need any other very traditional german names, like Friedlinde, let us know. :-)
She's not german, she's gnome: Ingrid's Back - Wikipedia, the free encyclopedia (https://en.wikipedia.org/wiki/Ingrid%27s_Back) ;)
Quote from: Bryce on 09:43, 23 November 15
Nice project. I hope your designing it so that the SwinSID is socketed and a real 8580 can be use too if the owner has one?
I never actually built the CPCSID, it only made it as far as a design concept on paper... And then I got bored and built something else :D
Bryce.
The SwinSID are now socketed for the prototyping stage but you can't use real SID with this design. There is not 9V or 12V power source and there is not need of real SID capacitors for SID filter to work. I think there is not need of real SID on the CPC and the design is a lot cheaper and easy with SwinSID instead.
The board will not be socketed in the final version anyway. The SwinSID design will be integrated in the mother board and will use a common 32Mhz clock source.
:)
Those sample tunes sound really lovely! Nice stuff all around... :)
Quote from: TotO on 09:37, 23 November 15
I'm personally not fan about playing other computers sound on CPC (SID, FM, ...). Changing its identity.
If I want SID, I can run musics on an C64... But, good luck for your project! 8)
Any plan for a 6ch player? ;D
About MotherX8, I think it is first possible to link an special second board side to side to expand the existing slots.
But SID can sounds like an AY if you want too!!! ;D
Jejeje! ;D
Quote from: TotO on 13:11, 23 November 15
Jejeje! ;D
Or you can reprogram microcontroller firmware with another one if you want. With YMZ emulation, for example :D :D :D :D
Sure, all is possible. ;)
For the CTC-AY, I have chosen the YMZ because its size and easy to interface. But, it is an expensive IC...
With a programmed microcontroller, it was interresting to break some limitation like the AY-8930 offer.
Quote from: TotO on 09:37, 23 November 15Any plan for a 6ch player? ;D
Not anymore, it's already a solved problem. How to feed that player however, is not :(
Quote from: DaDMaN on 14:07, 23 November 15
Or you can reprogram microcontroller firmware with another one if you want. With YMZ emulation, for example :D :D :D :D
If that could be done from the CPC (I mean uploading a new firmware to Gertrude), please, do it! :)
Quote from: DaDMaN on 14:07, 23 November 15Or you can reprogram microcontroller firmware with another one if you want. With YMZ emulation, for example
SyX already asked me if I have prefered that or YMZ.
I have chosen real IC, because the final design was done and I have already bought 100x YMZ to secure at less 50 boards.
Second, because I was not sure the custom chip will exactly sound like an AY and was not bug free.
Finally, because the board main goal is to provite the missing CTC and IM2 features to the CPC.
Quote from: Grim on 02:57, 24 November 15
(I mean uploading a new firmware to Gertrude), please, do it! :)
You mean, to Ingrid, right? ;)
Quote from: dodogildo on 12:19, 24 November 15
You mean, to Ingrid, right? ;)
No, Brunhilde of course!
Well, is there a way software can tell if the card is present? Like reading a register? Sorry for asking, I assume the answer is yes, just want to be sure.
The more I read here the more I like this idea, tbh. I'm just not into c64 and sid crap, but if it can do more/different then I'm getting curious about it :-)
Biggest problem I see is that somebody is needed making software for it.
That's a funny project. Go on.
What about Sigrid ?
Better Sidrid (= rid of SID) :P
Best wishes for this project, I guess it got potential! :)
Bump?
Ahh, Ingrid's back? [emoji14]
No, here comes gertrude's back !
One would hope critiques of SwinSID were less scathing: SwinSID – C64-Wiki (https://www.c64-wiki.de/index.php/SwinSID)
Never had a C64, can't tell.
Where is my Gertrude ´s back ???
^^
Where gratuitous nudity goes :D (sorry, you all know I'm not really conservative or anything, but let's try to keep it on topic, at least)
Next time, find one with CPC written on its back ;D
Maybe someone erased the cpc letters on my pict ? ^^
Quote from: Gryzor on 17:25, 17 January 16
Where gratuitous nudity goes :D (sorry, you all know I'm not really conservative or anything, but let's try to keep it on topic, at least)
Was it really so far off topic? I think you should forward me the picture so that I can decide for myself :)
Bryce.
Oh, here's something better (http://lmgtfy.com/?q=ass) :D
I'm not going to dare click that until I get home!
Bryce.
Back to topic please! [nb]BTW: I would like to have seen the picture. Why is it deleted? And posting links to a word consisting out of an A and two times an S ist NOT funny![/nb]
Back? Sure, where were we..
Nice... did you ever finish this project or is it still wip?
Another dead CPC SwinSID project / thread... did any of these projects lead to any affordable purchasable device?
@DaDMaN (http://www.cpcwiki.eu/forum/index.php?action=profile;u=126)
It would be great if you could share your SID player code. CPC Speak&SID works a bit differently (i.e., it has one IO port per SID Register), but it should be fairly straight forward to get your code running with this one:
http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amjet-anyone-interested-in-a-low-cost-speech-synthesizer/ (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amjet-anyone-interested-in-a-low-cost-speech-synthesizer/)