synthmania

SammichSID set clearGate in MIOS?

9 posts in this topic

Hi,

Just finished to make a sammichSID; using 2x6581 original SID from 1982 (not sure the revision; I would assume R2?) sourced from my old C64 and the second was from internet.

Everything seems to work fine; although I noticed that there is a very prominent issue: the clearGate bit does not seem to be set when the note off is send; so while the sound is not that pronounced, you can see from the oscilloscope and hear from the speaker, that the VCO are still up and running. I have no idea what the problem is, since I am using MIOS, I didn't write the code myself.

Searching the FAQ on midibox2 manual there is a note about audio ghosting on 6581 and VCO not going silent, but there is no actual solution explained; I heard this is a common problem on sammichSID boards and it is solved by filtering the audio or changing the volume settings on the sammichSID, so the ghosting won't be perceived. Is this the only solution?

While searching online, I found this video that show the sid driven by an arduino, and to stop sound, the clearGate bit is set at the end, which silence the VCOs. Is there a way to do this in MIOS too? I noticed the only thing that get close to set the clearGate bit is to change the preset; although in a live situation is not really feasible, especially because some presets does cause an audible pop when switching preset. Attached the video below so you can see what the user here did. I know the sammichSID is not the same as this in the video; but I would assume that MIOS is talking to the SID using the standard registers, so there should be a clearGate instructions that can be sent somehow via midi, when noteOFF is send and the value of Decay parameter is honored, so you won't cut off sound ?

Share this post


Link to post
Share on other sites

Posted (edited)

The infamous ADSR bug of the SID ! ;)

Edited by Antichambre
1 person likes this

Share this post


Link to post
Share on other sites

Just set the ABW (ADSR Bug Workaround) flag on your sammichSID.

Search on this page to get more information about the consequences: 

  • ABW (ADSR Bug Workaround): an option which provides a less usual method to overcome the ADSR bug. Whenever the envelope is retriggered, the ADSR registers will be zeroed for at least 30 mS (time can be increased with the delay parameter). Thereafter the original ADSR values will be written back, and the gate will be activated. This results into a more deterministic envelope, but the latency makes it unsuitable for live playing. So, this feature can only be used in conjunction with a sequencer, which allows to compensate the delay (which allows to play the notes earlier by a given time).

Another way to avoid it: set A, D, R to 0 and let the SW based Filter ADSR control the volume - this will also work live - and is used by most sammichSID patches.

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites
8 hours ago, TK. said:

Just set the ABW (ADSR Bug Workaround) flag on your sammichSID.

Search on this page to get more information about the consequences: 

  • ABW (ADSR Bug Workaround): an option which provides a less usual method to overcome the ADSR bug. Whenever the envelope is retriggered, the ADSR registers will be zeroed for at least 30 mS (time can be increased with the delay parameter). Thereafter the original ADSR values will be written back, and the gate will be activated. This results into a more deterministic envelope, but the latency makes it unsuitable for live playing. So, this feature can only be used in conjunction with a sequencer, which allows to compensate the delay (which allows to play the notes earlier by a given time).

Another way to avoid it: set A, D, R to 0 and let the SW based Filter ADSR control the volume - this will also work live - and is used by most sammichSID patches.

Best Regards, Thorsten.

Thanks Thorsten,

Tried as you mention, but somehow that ABW parameter does nothing fundamentally. I tried to load the init patch and the "techno PWM" and the background note that continue to play is still there,although I lose the glide when it is on. I can still hear the background play on any patch I tried, even turning on ABW.

One interesting thing is that there is a GSA parameter, that is also used to solve the ADSR bug, from what the manual says, and when I enable that; the outcome is like if I had a "hold"; so the note continue to play even after I release the key, at full volume. This is quite different from what I hear (very low volume tone after releasing the note).

BTW where do I set ADR to 0 and how do I tell MIOS to use the SW based filter ADSR? Thanks!

Share this post


Link to post
Share on other sites

First of all we've to align on terminology: MIOS is an operating system, but we are speaking about the MIDIbox SID V2 application which is installed on your sammichSID hardware together with MIOS.
It's the MIDIbox SID application which controls the SID registers.

Second: there is no "clear gate" bit. In the video, you will see at 0:52 that the Gate bit (rightmost switch) is set to 0. And that's the same what MIDIbox SID is doing.
And when you listen carefully, you will notice the same background noise, sometimes also called "leakage noise"

With some SID chips (especially the older ones), this leakage noise is much louder. You are using 6581 R2 - this early chip version could be affected much more from this design flaw.

From an interview with Bob Yannes:

Quote

ANDREAS : What would you have changed in the SIDs design, if you had a bigger budget from Commodore?

BOB YANNES : The issue wasn't budget, it was development time and chip size constraints. The design/prototype/debug/production schedule of the SID chip, VIC II chip and Commodore 64 were incredibly tight (some would say impossibly tight)--we did things faster than Commodore had ever done before and were never able to repeat after! If I had had more time, I would have developed a proper MOS op-amp, which would have eliminated the signal leakage which occurred when the volume of the voice was supposed to be zero. This lead to poor signal-to-noise ratio, although it could be dealt with by stopping the oscillator.

What Bob calls "stopping the oscillator" is done during patch change by setting the TEST bit. It's also used by the Phs ("Phase Oscillator Offset") feature when a new note is played (but not when somebody stops to play a note...)

The problem with this flag: it resets the oscillators - for typical "analogish" sound really no preferred option! 

From this page:

  • DOR: Disable automatic Oscillator Reset during patch change. Could also be called DAORDPC flag ;-)
    Background: after patch change, MBSID normaly resets the oscillators to ensure, that a patch always sounds identical w/o unexpected phase cancelation effects between the oscillators. Other peoples prefer such effects, caused by freerunning oscillators. If you belong to those peoples, and know what it means, just activate this option - it will make you happy! ;-)
53 minutes ago, synthmania said:

One interesting thing is that there is a GSA parameter, that is also used to solve the ADSR bug, from what the manual says, and when I enable that; the outcome is like if I had a "hold"; so the note continue to play even after I release the key, at full volume. This is quite different from what I hear (very low volume tone after releasing the note).

GSA requires an external VCA to control the volume

Quote

BTW where do I set ADR to 0 and how do I tell MIOS to use the SW based filter ADSR? Thanks!

You can set Atk, Dec and Rel to 0 in the OSC page, and configure the filter in the FIL page.

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

Brilliant, thanks for clarifying things!

Share this post


Link to post
Share on other sites

Posted (edited)

@synthmania Hi Paolo, I have a MIDIbox V1 with 4 SIDs: 3x 8580, 1x 6581 (3684). My old 6581 SID has the same characteristics as yours. I ended up replacing it for an 8580. So now I have 4 SIDs (each with its own output) for fat stereo sounds when I spread them out in the panorama. The 8580 sounds much better in my opinion and generates absolutely no unwanted noise or bugs. So consider replacing your 6581 SIDs with the 8580. I would do it.

By the way: I KNEW you would build a MIDIbox one day! :D take care Paolo!  

@TK. Hatte Dir gestern eine PN geschickt :happy: 

Edited by Krizz

Share this post


Link to post
Share on other sites
15 hours ago, Krizz said:

@synthmania Hi Paolo, I have a MIDIbox V1 with 4 SIDs: 3x 8580, 1x 6581 (3684). My old 6581 SID has the same characteristics as yours. I ended up replacing it for an 8580. So now I have 4 SIDs (each with its own output) for fat stereo sounds when I spread them out in the panorama. The 8580 sounds much better in my opinion and generates absolutely no unwanted noise or bugs. So consider replacing your 6581 SIDs with the 8580. I would do it.

By the way: I KNEW you would build a MIDIbox one day! :D take care Paolo!  

@TK. Hatte Dir gestern eine PN geschickt :happy: 

Hi Krizz, not sure who this Paolo is, but I assume you got the wrong person :)

Indeed I am going for the 8580 too; got 2 more SID chips since I am building also another midibox on top of the sammichSID ;)

Share this post


Link to post
Share on other sites
11 hours ago, synthmania said:

Hi Krizz, not sure who this Paolo is, but I assume you got the wrong person :)

Indeed I am going for the 8580 too; got 2 more SID chips since I am building also another midibox on top of the sammichSID ;)

Oh Sorry! :grin: I thought you are Paolo from Synthmania >>  https://www.youtube.com/user/SynthManiaDotCom 
Great to hear that you're also going to change the SID. Have FUN! :) 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now