MisterCharlie Posted March 29, 2011 Report Share Posted March 29, 2011 Hi! I'm currently building a 4x 6581 and 4x 8580 SID Synth with an Atmel MCU, largely based on the MIDIBox SID. I've manage over the years to scavange 8 chips (4 of each), but now that the MIDI part is working, I'm having issues with the chips. First of all, the 6581 sounds alot quieter than the 8580. Is this normal of my chips are busted? Secondly, the gate on the 8580 doesnt seem to work properly... As soon as I select a waveform, the chip will start to make sound. I know I can write in the Control Register since I can mute/unmute the chip by selecting or unselecting the saw wave. But writing on the GATE bit doesnt seem to do anything... Are the registers mapped exactly the same way on both chips? Thanks for any advice! Charles Quote Link to comment Share on other sites More sharing options...
Shuriken Posted March 30, 2011 Report Share Posted March 30, 2011 (edited) I am by no means an expert on this matter. But i tested my own SIDs last week with a SammichSID i borrowed from a collegue. You can sometimes hear some minute differences in volume levels between different 8580. However i have a 6581R3 and a 6581R4 and the volume level on one of those (can't remember which one) is a lot lower. Edited March 30, 2011 by Shuriken Quote Link to comment Share on other sites More sharing options...
Param1 Posted March 31, 2011 Report Share Posted March 31, 2011 I can verify what Shuriken said. Tested a bunch of chips lately. Quote Link to comment Share on other sites More sharing options...
NorthernLightX Posted April 1, 2011 Report Share Posted April 1, 2011 Secondly, the gate on the 8580 doesnt seem to work properly... As soon as I select a waveform, the chip will start to make sound. I know I can write in the Control Register since I can mute/unmute the chip by selecting or unselecting the saw wave. But writing on the GATE bit doesnt seem to do anything... Are the registers mapped exactly the same way on both chips? I seem to recall what you trying to do was possible only on the 6581 due to a VCA bug, which made noise when turned on or off. This "feature" was later used to reproduce digitized sound. The bug was fixed in the 8580 so this functionality was lost AFAIK. Then again I could be wrong, or I could be talking about something completely different. Quote Link to comment Share on other sites More sharing options...
nILS Posted April 2, 2011 Report Share Posted April 2, 2011 Datasheet is wrong, what you see is the "correct" behaviour. Quote Link to comment Share on other sites More sharing options...
MisterCharlie Posted April 2, 2011 Author Report Share Posted April 2, 2011 Thanks for the replies guys, but I may have explained the problem wrong. So here is what I do : Note On Message -> I write 0x21 to the Control Register of Osc 1 of a 8580. This should be Saw Waveform, Gate On. I do hear the waveform, at the right frequency. Note Off Message -> I write 0x20 to the Control Register of Osc 1 of the same 8580. Sound doesn't go off. The note is held forever. I'm writing 0xF0 to the sustain/release register. The only way I can turn off the sound is to write 0x0X, by selecting no waveform at all. This kills the sound. I have 4 8580 chips in my synth, I doubt they are all broken the same way. I must be doing something wrong. The sam Did any of the register changed from the 6581 to the 8580? The 8580 datasheet I found is incomplete. By the way, here are some fresh pics of my SID Synth, I've just finished assembling the casing. Quote Link to comment Share on other sites More sharing options...
nILS Posted April 3, 2011 Report Share Posted April 3, 2011 Nice work :thumbsup: Did any of the register changed from the 6581 to the 8580? The 8580 datasheet I found is incomplete. No, the registers did not change. As for an 8580 datasheet you can also use a 6582 datasheet which is identical. Quote Link to comment Share on other sites More sharing options...
MisterCharlie Posted April 3, 2011 Author Report Share Posted April 3, 2011 I've been messing around some more with the chips. Now for some reason they get out of tune. I've tried loading several Frequency values into the oscillators and some notes are quite off. I suspect some registers to be messed up (like a bit stuck)... but it happens for the 4 8580 chips, so it's quite unlikely. The gate problem is still there, no matter what voice, what chip, as soon as I have a waveform selected sound goes out. I've also noticed the envelope might be messed up. The sustain parameter does seem to work. Depending on the values I get random sound intensities, nothing linear... Quote Link to comment Share on other sites More sharing options...
TK. Posted April 3, 2011 Report Share Posted April 3, 2011 You have to sync register accesses to the 1 MHz SID clock. It's especially important to prevent any setup or hold violation on the bus - depending on the microcontroller that you are using this can be very tricky! Due to this frequency limitation it's also better to control multiple SID chips from multiple microcontrollers. Some time ago I wrote a report about this issue: Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
MisterCharlie Posted April 3, 2011 Author Report Share Posted April 3, 2011 (edited) Well I got a PWM of the AVR to generate the 1MHz. I also always wait for the clock to be low to put new data on the bus. I've fixed the detuning problem... The LCD PCB connecting on the same databus as the SID had 2 datalines shorted, so it was messing up everything. Tuning is good now, I can play a song but I still have this gating problem. Here's the code I'm using. I won't detail now, it's only to see if I get the concept right. As you might guess, LoadSID loads the value at the defined register address (these are good, check them 3-4 times). ChipSelect is a macro to set the line decoder to the specified chip. ChipSelectF() LoadSID(ModeVol, 0x0F); LoadSID(_2FreqLo, 0x81); LoadSID(_2FreqHi, 0x19); LoadSID(_2PWHi, 0x08); LoadSID(_2PWLo, 0x80); LoadSID(_2AttDec, 0x00); LoadSID(_2SusRel, 0x00); LoadSID(_2ControlReg, 0x20); If I run this, I get a saw wave at the right frequency. Note that the gate bit is off AND the sustain is 0, but I still get full volume. The Mode/Volume register does work properly. If I run the code selecting a 6581 on the same board, it works fine, except the fact the 6581 is alot quieter than the 8580. I really do think the envelope generators are dead for some reason... Edited April 3, 2011 by MisterCharlie Quote Link to comment Share on other sites More sharing options...
MisterCharlie Posted April 6, 2011 Author Report Share Posted April 6, 2011 Ok sorry if I'm annoying, but I really need to get sorted out. Q1 : Did you ever heard of enveloppe generator being fried/stop working/never worked/etc. I've played on various parameters of the 3 ADSRs of the 8580 and none of them work (on 4 chips!!). As soon as you select a waveform (any of them), your hear the sound, at the right frequency, but without any gate control. Q2 : My 6581s are working, but for some reason the sound output is constantly changing. It looks like something is charging/decharging. When I power the synth the sound is loud for 2sec, then decrease to silence, then slowly get louder and so on... The enveloppe seems to be working, and my settings are correct. (the up and down is independent of the notes/env being played). Thanks for any help. Charles. Quote Link to comment Share on other sites More sharing options...
TK. Posted June 14, 2014 Report Share Posted June 14, 2014 For the records: Zenlogic had the same issue with an Atmel Microcontroller and solved it: Quote Link to comment Share on other sites More sharing options...
z0 Posted August 15, 2015 Report Share Posted August 15, 2015 Hi, i see this thread is very old, however it did not show any conclusion with respect to MisterCharlie's posts. I've encountered the same issue; as i use the gate off by writing the gate bit to 0 in the control registers, it does trigger the release of the vca, however it does not kill the sound thereafter. Is this expected behavior with the 8580? what s the proper way to program a note off? shoud i use the gate off, then use a timer to count to whatever milliseconds are required for the release and then write a 0b0000XXXX to the control registers? Thanks in advance for your replies. also, i'm not building a midibox, but a sid synth of my own (for my own pleasure and for my final exam for my bachelor's degree in electronics. See pictures attached :-) (the casing is under devellopment).Regards, David Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.