MicroSwinSID not playing at correct speed.

  • Hi all,


    I'm trying to use Micro SwinSID to replace a genuine SID chip in the BeebSID board, which basically interfaces a standard SID to the 1MHz bus of a BBC microcomputer.


    I have the board built and it appears to work, however, if I play a SID file it plays perhaps 10% too slow, where it would play at the normal speed on a normal SID.


    Firstly can anyone comfirm the fuse settings I need for the AVR, currently I have : SPI enebled, external clock (32MHz module). Note CLKDIV8 is disabled so it should be running at full 32MHz.


    I've attached the schematic of the circuit I am using, if anyone can spot anything wrong with it.


    Cheers.


    Phill.

  • You fuse settings are correct. First check if you clock source really generates 32MHz with scope. The sound pitch is proportional to clocking frequency. Pitch may be also lowered if AVR is overloaded with high number of CS signals to handle. Make sure that CS is triggered once every SID register access and check if your address decoder is free of race hazard.

  • Hello just to note the original SID Chip is clocked around 0,98 MHz at a PAL C64 System, and it generates its Sound (pitch) from that Clock.


    SwinSID is tuned to Sound like this clocked SID Chip.


    So if you clock the original SID Chip to 1 MHz it's pitch is higher compared to the 0,98 MHz clocked one and also higher than the SwinSID.


    SwinSID ignores the external Clock Pin! So the SwinSID in an 1 MHz enviroment should sound like an original one in a C64 System :)


    So just for your Information if you use SwinSID in other Systems than C64.


    Good luck.

  • You fuse settings are correct. First check if you clock source really generates 32MHz with scope. The sound pitch is proportional to clocking frequency. Pitch may be also lowered if AVR is overloaded with high number of CS signals to handle. Make sure that CS is triggered once every SID register access and check if your address decoder is free of race hazard.

    Oddly, I got exactly the same results with a 24MHz crystal, sounded the same, which seems odd to me, as you say the frequency output should be proportional to the clock. So I will double check the fuse settings, and replace my oscilator module with a known good one.


    CS is being toggled at 40ms intervals which translates to about 25/second, that doesn't seem too bad to me, address decoder should be ok as it has been used successfully to drive a real SID.


    Cheers.


    Phill.

  • It's a bit reincarnating an old topic but I faced the same issues. The solution is : Change the address decoder so that Sid CS takes PHI2 clock into account. With the original sid it doesn't matter because it already gets this clock signal. With swinsid it does matter. For Sid CS to be low PHI2 should be high too.

  • Actually it's a bit worse because the real SID samples the bus at the falling edge of the PHI2, but the microcontroller on the SwinSID has to go into an IRQ and then reads the address and data buses which takes time .... And the signal to the IRQ ( PHI2 high, CS low, R/W low ) could happen 270-420 ns before the data gets valid by the datasheet.


    But my new rev will takes them into account (well, not the delay, but all the signals)

  • Because it will use new hardware elements, there is no use for others. After some proto build and fixing some bugs I will release the fw -- which will still only compatible to the that new board.. sorry.


    You know, you can't make proper test in firmware only, because the uC is too slow for that. But adding more components aren't easy, especially to nano swinsid. (and of course i don't want a buch of clones to show up before my devices sold a bit)


    On the other hand I should definitely speed up the design and production.....

  • no idea why you post in THIS ancient thread but we just tested old vs new firmware.


    result: both just suck like hell - as soon as filters are used.


    sorry


    but as long as I get working original SIDs (both 6581/8580) for about 10-20 €, SwinSID stays a rather extravagant & expensive toy and far from a replacement worth mentioning.


    I have serious doubts that it is possible - at all - to compensate for all the shortcomings via firmare updates. Hardware just seems to be incapable of replacing SID.


    Yeah: a C64 with SwinSID is better than with no SID at all. But this only means tossing is better than no sex at all.

  • My two cents to this:


    The actual hw-design or however design is nice, but for some or other reasons, an emulated SID will *never* sound like the original. It even doesnt make sense, which firmware is used.


    Make a pseudo-stereo output and add some of those 6581R4AR features to it and it will be more interesting. But for now, it is a nice collectors-item. ;)


    But nevertheless, I *very* appreciate the work, that is put into it!! :thumbup:

  • By the way, what I wrote was not completely correct. Actually without PHI2 it's just a blip blop.. With PHI2 and additional address decoder logic song play speed is reduced.
    Swinsid88 on my simple design runs fine though with reduced speed. (This circuit uses discrete logic for address decoder)



    But the test design (which I'm trying to use Swinsid SE) gets berzerk after playing a few seconds. (Which I use GAL16v8d for address decoding logic) CS is kept low for 500ns. I guess the problem is GAL being too fast and decodes the sid cs line too quickly with regards to 1mhz clock I'm using. There is almost no propagation delay after rising 1mhz clock edge.


    edit: Well added 100ns propagation delay, still no good. My problem might be something else.

  • Make a pseudo-stereo output and add some of those 6581R4AR features to it and it will be more interesting.


    It's a myth that the R4AR has more possibilities or features, I think. Some of them -even not all- sound a bit more harsh, rough or hard* than pre R4 SIDs, but that's all in difference.


    *Which I personally don't like at all. ;) Some of the softer sounding R4AR are ok for me, but the rest of them are not so optimal for delicate listening :).

  • Quote

    Here you can by in germany new SID 8580


    I can only use an old SID 6581, and I think they are rather more expensive that this...


    Quote

    SwinSID stays a rather extravagant & expensive toy and far from a replacement worth mentioning.


    I think it's rather rude to condemn the hard work made for the swinsid like that:
    1/ I think it sounds rather good, even with filters (especially with a recent firmware, from end of 2014).
    2/ it's quite funny to talk about "extravangance" and "expensive toy" on a forum dedicated to retrocomputing and C64. For the same price as a C64 (not talking about "wasted time") people can get a smarphone or computer hundred time "faster".
    3/ The swinsid and general SID emulation can be also used to create something different from the original SID (new synth, like midibox http://www.ucapps.de/)
    4/ In 20, 30 or 40 years maybe all current SID chips will cease to work at all. Then emulator or hardware recreation will help people to know how it sounds.


    Now, about the original thread topic, I own a microSwinSID, and it's playing at a very accurate speed: when I record it, in comparison to a real SID the songs are at exactly the same length (not a 1/100 sec delta), contrary to an emulation with sidplayfp (for the later, it's not very much : 1 second on a 3'20" song, but it's there. Probably because of my C64 speed).


    On the contrary, while sidplayfp is exactly at the same pitch as the real SID, the swinSID is slightly higher: when playing them together, we get a kind of "flanger" effect.


    If you want to hear the comparison between the two chips (and emulators) on the same SID file, here is a test: (I can't post the link to my homepage/website on free.fr so here is a shorter link: https://tinyurl.com/pyhra3r)

  • 4/ In 20, 30 or 40 years maybe all current SID chips will cease to work at all. Then emulator or hardware recreation will help people to know how it sounds.


    But will you be able to get a working Atmel(-compatible) chip in 40 years to run the binary-only SwinSID code? ;)