SIDcog - The sound of the Commodore 64 ! (Now in the OBEX)



  • Ahle2Ahle2 Posts: 976
    edited 2012-06-15 - 01:33:17
    Yes, there are a lot of headerless multispeed tunes in the archive. They were created with the first version of the "SID dumper" in 2009.
    And there are also some duplicates and other junk like for example game FX. I just searched for ".dmp" on all my devices and zipped it to this archive!
  • onewheeltomonewheeltom Posts: 40
    edited 2012-06-15 - 19:00:46
    The best inventions often get used in ways that the inventor never imagined.

    Ahle2 wrote: »
    New SID tunes uses "all the tricks in the book" and the results is soooo insanely amazing that even Bob Yannes would be surprised that it comes out of his chip from 1981.
  • potatoheadpotatohead Posts: 9,957
    edited 2012-06-16 - 19:17:14
    That SID tune is nuts good! Thanks for linking it.
  • Ahle2Ahle2 Posts: 976
    edited 2012-06-17 - 00:59:08
    Yes, that's really something special. Goose bumps at 1:31. :)

    Btw, I read a discussion on AtariAge about SID-emulation on Atari 8bit, that's very interesting. It has been done on the Vic20 and C16 before, with similar results.
    I can't help but LOLing very hard when I read reply from xxx, I didn't know that fanboyism + wishful thinking + ignorance = tone deafness. The more you learn about PSGs from the 80s, the more the SID stands out.
    Pokey is a very good chip for sound FX, maybe even the best from that era. But I'm more into music so it's not on my todo emulator list.

    Next chip is probably the 2A03/2A07... well the sound part of it. ;)
  • pik33pik33 Posts: 792
    edited 2012-06-17 - 01:18:29
    Pokey should be emulated. I was an Atari 8-bit owner with all this nostalgia... and there is a big collection of Pokey music called ASMA; several thousands of files.

    This chip cannot be compared to SID, but look at the program called Atari Softsynth. I remember a day when my friend brought a floppy disk with it and said "Listen - now Atari can play better than c64"
    It of course was not such "better" but it was a big "wow" effect in 1988..

    Pokey was used simply as 4-bit DAC @ 11 kHz in this program.

    To listen these music samples in better quality I made a Atari Softsynth compatible program on PC. It gets Atari Softsynth files as input and then plays it @44kHz/16 bit

    What Pokey can do, you can hear here:

    (and this is PC interpretation of this tune... )
  • potatoheadpotatohead Posts: 9,957
    edited 2012-06-17 - 01:22:29
    Indeed! It is thick there. Good and bad comes with that. The good is, those guys are pushing Atari 8 bit computers hard. Fun stuff going on. The bad is that same drive tends to induce heavy blinders.

    I was intrigued by the SID emulation too.

    POKEY... Yeah. I absolutely love the effects. Iconic. Agreed on music, and that's honestly one reason why I'm exploring chip tunes now. I've got some musical skill, but never explored it with the computer much, because my primary two were the Apple and Atari machines. If one wanted some precise beeps, no problem. Anything else was kind of crappy. My pitch perception is good, meaning POKEY music is generally bad. (sigh) By the time I got machines that could do music, I was off onto other things.

    Your stuff is so much fun now. Thanks for it.

    Regarding emulation, I can totally understand that and I don't blame you. Besides, the thing is complex. There are some timing cases and glitches not well understood yet. Even the best existing emulation isn't true to the device. Lots of work, little reward, IMHO.

    Deffo goosebumps. Dang! I love the retro efforts that really resonate around the strengths of the devices.
  • Ahle2Ahle2 Posts: 976
    edited 2012-06-17 - 01:59:59
    What Pokey can do, you can hear here:
    Well, it really isn't the Pokey that does the synthesis, but the 6502. The Pokey is merely used as a DAC. I'm very impressed with the "high" sample rate. The 6502 must be glowing!
    Too bad that technique is too cycle hungry to be used in games and demos while something else is going on.
    Still extremely cool and good sounding!

    Btw, It reminds me of the PSG in the PC engine, it uses wavetable synthesis as well, but in hardware. Have a listen.

    ...the thing is complex. There are some timing cases and glitches not well understood yet. Even the best existing emulation isn't true to the device. Lots of work, little reward... IMHO
    I wouldn't say it's complex, at least not compared to the SID.. But as you say the glitches and strange behaviour makes it hard to emulate.
  • Ahle2Ahle2 Posts: 976
    edited 2012-06-17 - 02:37:22
    I didn't know that it's legal to make obvious lies in American commercials! In Sweden they would have been suid!

    Both have the same amount of memory: True
    Both have typewriter styled keyboards: True
    The XE has better graphics: 80% a lie according to my definition of good graphics
    Better sound: LOL
    More colors: True (not more colors on the screen at reasonable resolution and without DL tricks though)
    And it's faster: True for number crunching and 3D graphics (not 2D graphics)
  • pik33pik33 Posts: 792
    edited 2012-06-17 - 03:02:12
    I was an Atari user, not Commodore, but now, in 2012, all these machines, Atari 8-bit, ST, C64, Amiga, Spectrum, Amstrad... even early PC DOS box, all of these are nostalgic for me. So I want to have it all. I collected all emulators and software I could find. But all of these emulators... are simply not as good as I want, and they never will be.

    For example there is no way of set 50 Hz monitor refresh frequency and all these "true color" Atari demos using timings "black magic", interlacing etc - looks awful. There are awful input and output delays. Joystick, keyboard, picture, sound, all of this is out of phase, because of PC/Windows architecture, which don't allow direct interface to hardware.

    And now there is the Propeller

    I can program it as I want it. I only have to know how to program, and I can have real inputs and real outputs in real time.

    So one of my dream, as old Atari 8-bit user is to emulate it on the Propeller.

    I am still a learner; writing these programs I am writing now, I still learn how to program a Propeller well, and what can I get from it. This is unusual chip, you have to feel it to program it well. I think I am now starting to feel a Propeller.
  • Ahle2Ahle2 Posts: 976
    edited 2012-06-17 - 03:40:44
    I know exactly what you mean when you say that emulators on Windows machines doesn't give you the same experience.
    That's the reason why I own around 15 retro systems from Atari, Commodore, Nintendo, Sega.... etc
    Sadly I don't own a PC engine yet. I have coded an unreleased PCe emulator for Windows, but ironically never used the real machine.
  • potatoheadpotatohead Posts: 9,957
    edited 2012-06-17 - 12:05:52
    Totally. I/O latency is a big one. Frankly, it's one of the reasons I don't modern game too much. That and somebody put keyboard + mouse off the table for nearly all FPS games. (I think it's because the kiddies running dual analog would get spanked regularly by the old farts running keyboard mouse) That spoils a lot of it for me. Some devices are 100ms! (Yeah, here's looking at you Android) HDTV sets can have serious latency too, and then there are triple buffered games... I would totally trade some graphics eye candy for more dynamically drawn displays with low latency and frame locked visuals. That's just not the trend though. Maybe it will come full circle some day.

    Re: The two... Well, that battle has been waged over and over. I really like the C64 higher color resolution and sound. Always have. The palette is smart too. I love seeing what great pixel artists can get done. And of course, color density is good on the C64.

    Older Ataris had 4 game I/O ports, which I used to do some basic control projects back in the day. I favored Atari, Apple and CoCo due to better system engineering. Atari has sophisticated device independent I/O, and in 8K no less, Apple has expansion and some great engineering in it's ROM too. CoCo has the 6809, though somebody did stuff one into Atari machines, which can now run Nitros9. Amazing.

    I don't really consider DL tricks as special. The machine was designed for that purpose. What I do consider tricks are display kernel type schemes with complex horizontal display changes.

    One thing I noted was 4 colors / scan line isn't quite enough. The Apple managed 6, due to how it's high res artifact color worked. One can do anything with 6 colors. This was the big advantage of sprites on a lot of machines. They could be colored differently and stand out.

    My enthusiasm stops at 8 bits though. The 16 bit machines never really caught on as I was off into manufacturing, DOS, UNIX, etc... during that time, running 8 bitters at home, then jumping right to a rather crappy PC, but one that could run CAD, which ended up launching a long and fruitful career. Still love CAD. It's just fun, and the programs today are so capable, it's insane! An exception would be APOGEE and early ID titles on DOS, but those emulate just fine, no need for old hardware. I'll leave the 16 bit era behind, always feeling like I missed out. Going back doesn't seem worth it, particularly...

    ...when there is the Propeller. Totally. It's a great little playground. Has the same kinds of limits retro machines do, which makes it a lot of fun. I envy you guys with workbench type setups. I think I might get one soon. That's why I've not done too much with VGA. I'm rarely where I can just jack into a monitor, and I really like TV anyway.

    @Pik33: Nice Pokey work! I like your visualizations, and the sampled sounds work great.

    @Ahle2: Yeah, that is the complex axis I was referring to. We agree.
  • pik33pik33 Posts: 792
    edited 2012-06-17 - 21:47:50
    @Pik33: Nice Pokey work! I like your visualizations, and the sampled sounds work great.

    I only found these visualisation on Youtube, this is not my production.
    It is not my music, too, and I didn't wrote Atari Softsynth, too.

    The program, Atari Softsynth, was written by German programmer. In Basic... (with some machine code to output sampled sound @ 11 kHz)
    The music was written by Polish chiptune composer Jakub Husak. He wrote some beautiful pieces of music with Atari Softsynth

    What I did, is PC softsynth program, which can get Atari Softsynth music files as input, and play them @44kHz/16 bit instead of 11kHz/4bit. I did it because I wanted to listen to these Atari Softsynth tunes without noise and aliasing. The program is available os SourceForge (GPL license, working alpha stage) You can edit these files or make your music from scratch with this program, too, This mp3 I linked to is an output from this PC program (to compare with 8-bit Atari version). And now I want to have it on Propeller. This needs some (a lot of...) work...
  • potatoheadpotatohead Posts: 9,957
    edited 2012-06-17 - 21:52:28
    Oh, got it. Well, thanks for linking it. Sorry I got it confused. Nice productions. Good luck moving your program to Propeller.
  • Ahle2Ahle2 Posts: 976
    edited 2012-06-25 - 13:06:25
    Have you seen this C64 emulator?
    It takes C64 emulation two steps closer to the real deal!
    It is much closer to the real experience than anything else I have tried. It actually emulates the whole "signal path".... Luminance + Color difference signals -> Chrominance + Luminance + Sync -> CVBS -> RF -> and the whole procedure back again -> RGB
  • pik33pik33 Posts: 792
    edited 2012-06-26 - 03:17:19
    A lot of work to emulate real crt/pal thing.. but - can it deal with this awful 60 Hz problem? (when watching any demo with scroll, it jumps every 6 frames, and these interlaced multicolor pictures looks awful)

    (downloaded it - will try later...)

    I spent some hours to make my Windows XP output @ 50 Hz... and it seems to be impossible with Windows 7 without heavy hacking.
  • ToeToastToeToast Posts: 3
    edited 2012-07-26 - 17:33:52
    Wow, this work is amazing. After a 6 year break from the microcontroller world I've started to catch up with developments on the Propeller. This SID chip emulation stood out for me as an astounding piece of engineering. Having been in my teens when playing C64 games the memories came flooding back when I downloaded the 42,000+ SID songs onto the PC and started to listen to my favourites !

    In particular I love Commando, Rambo II, Parallax and the Ocean Loader. Such great pieces of chip music.

    I've started some proof of concept work around physical implementations of SIDcog and I'll you all in on these are they reach maturity. Just about to order a Prop BOE so I can use the SD card to play the dump files. I'm really excited to hear the Propeller cranking out those tunes !

    A couple of questions please:-

    1) since PropBadic is my preferred language, how easy is it to launch/control SIDcog from there ? Especially since reading the SD card via the usual SPIN Object for SD card access.

    2) how difficult is it to emulate the 6502 on the Propeller so that the SID files can be played instead of the DUMP files ? Those DUMP files are large but the SID files can easily fit on the EEPROM and therefore reduces component count in the real world.

  • pik33pik33 Posts: 792
    edited 2012-07-27 - 00:19:55
    We still haven't 6502. It should not be very difficult, but someone has to write it.

    Sidcog is easy to launch and use. A few lines of spin can do it.

    There is at least 3, (maybe more) ready players. I wrote one of them, - it needs a demoboard and vga and plays .wav files, too; another player: and if you want tv instead of vga, get a tv player here:
  • pik33pik33 Posts: 792
    edited 2012-07-27 - 02:33:10
    Bug detected in SidCog (when compile with BST).

    I tried to use my nco oversampling driver to output sound from sidcog using SidSample variable and.. there was always zero in it.... I had to change this:
                  mov      tempValue, par
                  add      tempValue, #28
                  wrlong   r1, tempValue  

    to this:
                  mov      tempValue, par
                  sub      tempValue, #8
                  wrlong   r1, tempValue  

    to get it working

    The reason was BST relocating variables: long firsts, then bytes. I don't know if PropTool do this relocation too; when compiled with BST, SidCog's variables starts with sidsample, then cog, then sid registers. Par points to first sid register, SidSample variable is at 8 bytes lower address.

    Edit: Done. Propplay v.0.16 uses 10x oversampling nco instead of duty dac to sid sound output.
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2013-04-05 - 07:37:42
    I'd like to play with SIGcog and am mostly interested in making sound effects like 'battle sounds'. I'm experienced with the Pokey and a little with the AY. Is there a good/standard old book on using the SID that might have good examples and insights?
  • Ahle2Ahle2 Posts: 976
    edited 2013-04-05 - 09:57:15
    Pick one of the "sound books" from the link below.

    You may be surprised by how competent the SID chip is compared to both the Pokey and the AY38910.
    It really was way ahead of anything found in any other computer in 1982.

    Here's some inspiration from 2013

  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2013-04-05 - 10:43:27
    Thanks - those books were just what I was looking for (I just already ordered the compute! book on amazon - oh well. This should be enough to get me context. I'm mostly doing sound effects which pokey was good for. I know the SID has that cool envelope stuff and different types of waves. Very advanced for the time.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,090
    edited 2014-10-26 - 21:15:46

    Question: In your "ExamplePlayRoutine", you've got a nice number to frequency converter for converting bytes to notes.
    Do these notes (numbers) correspond to a standard note scale? I'm using this little chunk of code in a project using SIDcog and would like to convert some other music to it.

  • potatoheadpotatohead Posts: 9,957
    edited 2014-10-26 - 21:43:10
  • Ahle2Ahle2 Posts: 976
    edited 2014-10-27 - 15:57:15
    I can not remember... I will have to take a look at it again after all these years!

    Yes, a real SID player for the Propeller is just a little glue away... (and 64k of external memory, because many SID tunes uses absolute addressing and are not relocatable... or implement a "MMU" to handle it)
  • 65816581 Posts: 132
    edited 2014-10-27 - 16:54:41
    @Ahle2: I am actually working a bit on some system based on the P1V + 6502 Soft Core on FPGA, so maybe this could be used.
    By the way: How is it going with the Retronitus?
  • Ahle2Ahle2 Posts: 976
    edited 2014-10-28 - 02:15:09
    That is great.. keep up the good work then!

    Retronitus has awaken from its sleep, I am working on a LameStation game that will use it. Retronitus may actually end up as part of the standard library for this cool console.
    And I am about to finish the tools for Retronitus as we speak, then it will be possible to easily make music and sfx for it.

  • BaggersBaggers Posts: 2,965
    edited 2014-10-28 - 03:11:51
    That's great news Johannes :D
  • pik33pik33 Posts: 792
    edited 2014-10-28 - 04:24:22
    We have mul instruction and some additional MHz in p1v - the sidcog may be rewritten to get 64 kHz instead of 32... I have now a working retromachine for p1v - it is now ready to add sidcog to it. Or Retronitus. Or something which makes sound.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,090
    edited 2014-10-28 - 07:51:13
    That is good news! I'm pleased that work continues on Retronitus, If SIDcog is any indication, it'll be awesome. :)
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,090
    edited 2014-11-02 - 16:49:53
    @ Ahle2

    I was able to determine that your note2freq routine appears to be using a midi note scale. (Or at least it sounds that way here) 60 sounds about like middle C (C4)

    Do you recall what you used to create the music byte DATA itself? I'm getting ready to start working on a midi-2-note perl converter, but would rather not recreate the wheel.
Sign In or Register to comment.