c64 ring modulation

Modular Synth design and releases (Reaktor, SynthEdit, Tassman, etc.)
RELATED
PRODUCTS

Post

tlr; "Nope, A is always triangle and B is always square (i.e no PWM)."

how do you know this? can you produce a recording of a 6581 demonstrating this?, that when you adjust the pulsewidth of the master oscillator, the slave is still modulated by a 50% duty-cycle pulse and not the pulse output from the master?

the triangle thing almost makes sense since the circuit would be potentially simplified by this, but if i were the designer or had a chance to talk to him i'd definitely be against the idea of this type of implementation - it shouldnt save anything in the resulting circuit, yet it is a siginificant limitation. dispite that, yes i think you're right, you are limited to only the triangle as slave for the ringmod.

the pulse limited to 50% duty-cycle makes no sense though, since this would complicate the circuit rather than provide for simplification. limited to pulse does make sense since it allows xor to be used rather than a mul, but this is possible with any duty-cycle. since the pulse is generated from the ramp, you'd need two seperate stages to accomplish the production of a 50% cuty-cycle pulse at the same time as an arbitrary duty-cycle pulse.

Post

aciddose wrote:tlr; "Nope, A is always triangle and B is always square (i.e no PWM)."

how do you know this? can you produce a recording of a 6581 demonstrating this?, that when you adjust the pulsewidth of the master oscillator, the slave is still modulated by a 50% duty-cycle pulse and not the pulse output from the master?

the triangle thing almost makes sense since the circuit would be potentially simplified by this, but if i were the designer or had a chance to talk to him i'd definitely be against the idea of this type of implementation - it shouldnt save anything in the resulting circuit, yet it is a siginificant limitation. dispite that, yes i think you're right, you are limited to only the triangle as slave for the ringmod.

the pulse limited to 50% duty-cycle makes no sense though, since this would complicate the circuit rather than provide for simplification. limited to pulse does make sense since it allows xor to be used rather than a mul, but this is possible with any duty-cycle. since the pulse is generated from the ramp, you'd need two seperate stages to accomplish the production of a 50% cuty-cycle pulse at the same time as an arbitrary duty-cycle pulse.
:hihi: thats sort of what i thought, but with more words...

Post

This might help you and I must admit that the modulating source does not have to be triangle but it does not have to be pulse either.

http://www.datasheetarchive.com/search. ... tDS=Starts

See page 4 of the datasheet for the description of ringmod.

you might also try the following page for some background information:



http://stud1.tuwien.ac.at/~e9426444/yannes.html
Have a better one - Saul Cross :-)

Post

aciddose wrote:tlr; "Nope, A is always triangle and B is always square (i.e no PWM)."
how do you know this? can you produce a recording of a 6581 demonstrating this?, that when you adjust the pulsewidth of the master oscillator, the slave is still modulated by a 50% duty-cycle pulse and not the pulse output from the master?
This is my recollection on how it works.
Bob says so in the interview I quoted earlier in the thread aswell. Also the patent seems to indicate this (in the same post).
However the patent talks about oscillators 41 and 45, but then says "No other parameters of voice 3 have any effect on ring modulation.", which is not very precise.
I don't have the C64 connected up at the moment, but I'll have check in the ReSID code which should be replicating this correctly AFAIK.
aciddose wrote:the triangle thing almost makes sense since the circuit would be potentially simplified by this, but if i were the designer or had a chance to talk to him i'd definitely be against the idea of this type of implementation - it shouldnt save anything in the resulting circuit, yet it is a siginificant limitation.
I think it saved something. It's all handmade NMOS logic, so I believe he really knew what he was doing in detail.
aciddose wrote:the pulse limited to 50% duty-cycle makes no sense though, since this would complicate the circuit rather than provide for simplification. limited to pulse does make sense since it allows xor to be used rather than a mul, but this is possible with any duty-cycle. since the pulse is generated from the ramp, you'd need two seperate stages to accomplish the production of a 50% cuty-cycle pulse at the same time as an arbitrary duty-cycle pulse.
The way it is done you can still get normal PWM from the modulating oscillator to the output while simultaneously having a sqr-tri ringmod on the other.

I don't know which I would find more useful though.
Last edited by tlr on Tue Feb 20, 2007 9:19 pm, edited 3 times in total.

Post

tlr wrote:However the patent talks about oscillators 41 and 45, but then says "No other parameters of voice 3 have any effect on ring modulation.", which is not very precise.
Checking the 6581 Datasheet reveals why the patent says voice 3, cut & paste! ;)
6581 DS wrote: Ring Mod (Bit 2)
The RING MOD bit when set to one replaces the Triangle waveform output of Oscillator 1 with a "Ring Modulated" combination of Oscillators 1 and 3. Varying the frequency of Oscillator 1 with respect to Oscillator 3 produces a wide range of non-harmonic overtone structures for creating bell or gong sounds and for special effects. In order for ring modulation to be audible the Triange waveform of Oscillator 1 must be selected and Oscillator 3 must be set to some frequency other than zero. No other parameters of Voice 3 have any effect on ring modulation.
...which seems to confirm what I said. The MOS datasheets are known to be wrong in places though.

Excerpt from: resid-0.16-ccr/wave.h (which is GPL)

Code: Select all

// Triangle:
// The upper 12 bits of the accumulator are used.
// The MSB is used to create the falling edge of the triangle by inverting
// the lower 11 bits. The MSB is thrown away and the lower 11 bits are
// left-shifted (half the resolution, full amplitude).
// Ring modulation substitutes the MSB with MSB EOR sync_source MSB.
//
RESID_INLINE
reg12 WaveformGenerator::output___T()
{
  reg24 msb = (ring_mod ? accumulator ^ sync_source->accumulator : accumulator)
    & 0x800000;
  return ((msb ? ~accumulator : accumulator) >> 11) & 0xfff;
}
Which is exactly what I stated earlier.
The Resid implementation is AFAIK the most accurate SID emulation to date.
The code has a lot of comments with analysis and measurements which can be useful, and it's GPL. :)

I'll check this on my c64 when I rig it up the next time.

Post

could someone post a short answer, im confusseled.

Post

>>could someone post a short answer, im confusseled.

No.

Post

mistertoast wrote:>>could someone post a short answer, im confusseled.

No.
well im not going to read it then!!! :hihi:

Post

>>could someone post a short answer, im confusseled.
Me to
Make Your Voice Heard!!
EUROPEAN VAPERS PROTEST 29th 2.00PM.It saved my life.

Post

laputa_sync wrote:could someone post a short answer, im confusseled.
The really short answer was already provided in the first reply in this thread.
mistertoast wrote:On the C64 SID chip, ring modulation multiplies a triangle wave with a square wave.
Tell what are you confused about and I'll try to explain.

Post

tlr wrote:
laputa_sync wrote:could someone post a short answer, im confusseled.
The really short answer was already provided in the first reply in this thread.
mistertoast wrote:On the C64 SID chip, ring modulation multiplies a triangle wave with a square wave.
Tell what are you confused about and I'll try to explain.
:hihi: - understand now, confusselment due to lots of words + hoegaarden.

thanks. :oops: :hihi:

Post Reply

Return to “Modular Synthesis”