Multiple pitches from Rocktave?

Started by Taylor, February 08, 2009, 11:18:32 PM

Previous topic - Next topic

David

Quote from: puretube on February 10, 2009, 06:58:50 PM
Quote from: David on February 10, 2009, 01:59:13 PM
Quote from: Lurco on February 10, 2009, 01:50:53 PM
discrete TOG!?!

I'm picturing a box about the size of a Marshall half-stack...   :o

well, ehh, ...

Yeah, but Ton, he said discrete.  Doesn't that mean "transistors, resistors and capacitors, oh my!"

R.G.

OK, so I thought, how hard was it to just do the logic and make the dividers from the 50240 out of CMOS.

So I took the dividers and factored the ratios to see if simply dividers would work.

It turns out that to do this, you have to have divide-by circuits of all the prime factors of the divisor ratios. In this case that is:
2, 3, 7, 11, 13, 23, 29, 41, 43, 67, 71, 179, 239, and 379.

No simple concatenation of divide by 2, 3, 5, etc here. The big primes are especially fun. So it looks like the way to do the logic is to make a nine bit counter for each output and force it to being a modulo-n counter, perhaps with tricks to make the output be 50% duty cycle if that's important to you. There are not even enough simple divisors or multiple-use divisors to get much help out of shared counting chains.

The 74HC4059 is  programmable counter chip that divides any ratio between 3 and 15999, so it can do any of them. It's about $2.50 each. Cheaper to do a PIC for fewer notes and get 3-4 per PIC or one PIC and three 83C54s.

Programmable logic seems to be not a way out of this. There aren't may flipflops in the commonest CPLDs or GALs. You could make up an FPGA into the requisite counters by using the gates inside to make flipflops, but that seems as inelegant as using a silk scarf to wrap up engine parts for a quick trip to the auto parts store.

I'm guessing this is why those replacements from Organ Supply seem to have three chips in them.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

Mark Hammer

Therer was an article in POLYPHONY way back about a just-intonation generator, that involved a fistful of CMOS dividers.  I'll have to dig it up and scan it.

R.G.

Just intonation is much simpler. Just intonation forces the notes to be simple whole-number ratios, a slam-dunk for logic dividers.

I would like to see the article.

It's likely that the 74HC4059 array could be set up to do any intonation... oh...  :icon_biggrin:

I'll have to read the datasheets to get closer to how to make the output be a square wave at one of the large-prime frequencies, because the output pulse is only one clock wide, maybe.

Probably the three-83C54s could be made to do any intonation, too. Pretty sure the PIC/Atmel version could.

Oh, never mind. They all can except the hard-logic versions. :icon_rolleyes:
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

Taylor

Quote from: Taylor on February 10, 2009, 08:24:03 PM
Quote from: R.G. on February 09, 2009, 09:56:01 AM
The harmony generator generates one note at a time, largely because its divider cannot simultaneously generate all those divisor ratios in the proper proportions.

So I am looking over the harmony generator schematic, and to me, it looks like IC8 puts out a unison note, as well as the same note in 6 other octaves. In the schem, there is a switch to select which octave you want, but why couldn't there be a little mixer so we could have any of those octaves we want, with controllable volume?

It seems I could get quite a few pitches simultaneously using only 3 harmony generators, (unison x 7 octaves, third x 7 octaves, fifth x 7 = 21 glitchy frequencies...!). Am I wrong here?

I'm bumping this question - can't I replace the octave switch with a mixer and get 7 octaves simultaneously out of one harmony generator?

R.G.

#45
Le me go look at the schemo again. Back soon.
========
OK. Got it.

You can't just mix the output of the seven output divider because the output is not used as an analog signal. It's used as a logic signal to turn that switch on/off on the envelope of the input signal and impress the selected signal on it. You have to use full logic swing.

However, there may be some way to do this. It is possible to replicate IC9D and R6 another six times and hook those in parallel with the existing one and get all seven octaves at the same time. The magnitude of the given octave depends on the value of it's "R6", with bigger values reducing level. However, you will need to watch the value of the "R6"s. Too small and they'll load down the envelope too much. You may need to buffer the envelope at the top of C5/R5 to prevent this. If you did that, you could introduce 50K pots for each octave after the buffer, and then connect the switch/R6 for each octave to the output of its pot and achieve a real mixer effect on the output, leaving all the "R6" values at 220K.

Was that more what you had in mind?
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

gez

Quote from: Mark Hammer on February 11, 2009, 09:00:25 AM
a fistful of CMOS dividers. 

Now there's a Clint Eastwood film I'd like to see.
"They always say there's nothing new under the sun.  I think that that's a big copout..."  Wayne Shorter

gez

Apologies in advance, but the temptation is too great.

Make my delay punk...
"They always say there's nothing new under the sun.  I think that that's a big copout..."  Wayne Shorter

Mark Hammer

Did he divide by 5, or did he divide by 6?  Do you feel lucky? :icon_rolleyes:

Taylor

Quote from: R.G. on February 11, 2009, 11:22:03 AM
Le me go look at the schemo again. Back soon.
========
OK. Got it.

You can't just mix the output of the seven output divider because the output is not used as an analog signal. It's used as a logic signal to turn that switch on/off on the envelope of the input signal and impress the selected signal on it. You have to use full logic swing.

However, there may be some way to do this. It is possible to replicate IC9D and R6 another six times and hook those in parallel with the existing one and get all seven octaves at the same time. The magnitude of the given octave depends on the value of it's "R6", with bigger values reducing level. However, you will need to watch the value of the "R6"s. Too small and they'll load down the envelope too much. You may need to buffer the envelope at the top of C5/R5 to prevent this. If you did that, you could introduce 50K pots for each octave after the buffer, and then connect the switch/R6 for each octave to the output of its pot and achieve a real mixer effect on the output, leaving all the "R6" values at 220K.

Was that more what you had in mind?

Great, thanks. It isn't that I'm uninterested in the approaches you're considering, it's just that building up a circuit from scratch is beyond my ability right now (as I'm sure you can tell based on the questions I ask). This approach looks like it might get me some interesting results without having to duplicate entire circuits per note.

Lurco

Quote from: R.G. on February 10, 2009, 11:09:11 PM
OK, so I thought, how hard was it to just do the logic and make the dividers from the 50240 out of CMOS.

So I took the dividers and factored the ratios to see if simply dividers would work.

It turns out that to do this, you have to have divide-by circuits of all the prime factors of the divisor ratios. In this case that is:
2, 3, 7, 11, 13, 23, 29, 41, 43, 67, 71, 179, 239, and 379.

No simple concatenation of divide by 2, 3, 5, etc here. The big primes are especially fun. So it looks like the way to do the logic is to make a nine bit counter for each output and force it to being a modulo-n counter, perhaps with tricks to make the output be 50% duty cycle if that's important to you. There are not even enough simple divisors or multiple-use divisors to get much help out of shared counting chains.

The 74HC4059 is  programmable counter chip that divides any ratio between 3 and 15999, so it can do any of them. It's about $2.50 each. Cheaper to do a PIC for fewer notes and get 3-4 per PIC or one PIC and three 83C54s.

Programmable logic seems to be not a way out of this. There aren't may flipflops in the commonest CPLDs or GALs. You could make up an FPGA into the requisite counters by using the gates inside to make flipflops, but that seems as inelegant as using a silk scarf to wrap up engine parts for a quick trip to the auto parts store.

I'm guessing this is why those replacements from Organ Supply seem to have three chips in them.


fullwave rectify and then flipflopize it ?

scratch

re .41

I've actually done this using 4510's ( 3 of them plus 3-input NAND) presettable BCD up-down counters. based on the dividers for the M083 TOS chip ... so I use a pile of diodes (24) to set up the different divide-by-n presets (379,284,426,319 and 253)

It does indeed put out a very narrow pulse at the output ... If you start out with a freq. say twice as high as you need, then feed a flip-flop then you can get a 50% duty cycle at the required freq. The circuit I've stuck this prototype into, feeds a 4017 set to divide by 8, so not quite symmetrical output.

Right now I'm getting 82.46Hz for my E2, should be 82.41Hz, my D2 is 110.05 , G3 is 195.95,

I've got some wiring errors on the breadboard D3 only giving me 140.16Hz instead of 146.8Hz and B3 giving me 0.0

Denis,
Nothing witty yet ...

R.G.

So what's the total chip count for the whole 12 tones?
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

R.G.

#53
Oh. Duh. Vertical adders. Generate all 12/13 tones simultaneously, maybe.

Still maybe. Imagine I have an eight bit number. I represent it as not the eight bits of a byte, laterally, but as the LSB of eight bytes, vertically. I can do operations on this number the same way I (the human who memorized addition and multiplication tables) one bit position at a time. The arithmetic is just as valid, but takes me longer as I have to do the LSB, then the 1'sbit, the 2's bit, the 4's bit... until I do all 8. Sounds slow and messy compared to the built-in ALU, right?

It is, unless you consider that I can use one eight bit byte to represent the nth bit position of eight numbers. So now if you can encapsulate the logic to update the numbers in parallel, you do eight operations and update all eight numbers simultaneously and in parallel. If you make the logic operations end in an output word based on the results, you can output all eight results simultaneously, without doing logical tests on each one. In most cases, for a large number of parallel outputs, the process scales semi-logarithmically, not linearly, and may offer the ability to do one TOG in a single or two PICs. Maybe. Still thinking.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

scratch

re.51

just the four chips, I select the required preset using a 6 position rotary switch, so only one tone at a time ...

would have to be 12 x 4 to have them simultaneous, that 74HC4059 is looking more interesting.
Denis,
Nothing witty yet ...

gez

Maybe it's the musician in me, but why would you want to have access to all 12 tones within an octave?  I appreciate that you could harmonise a note with a chord involving 9ths etc, but most complicated voicings work over a range of at least 2 octaves.  Semitonal clashes with the original note aren't going to sound too musical - most chords involving semitones have another interval floating above them to smooth things out.  Even if you opt for simple triads or double stops these won't necessarily be diatonic, so running up and down scales might sound 'out of key' for some note selections.

Probably the most usefull intervals you could opt for would be 3rd, 4th, 5th, 6th and 8va below.  Out of those, I'd probably end up only using the 4th and 8va.  Each to their own, of course, but do you really need 12 outputs?  Or have you been listening to Schoenberg recently?!  You could perhaps make life easier for yourself by limiting the options (would certainly make the circuit simpler).

Just my 2p...(not worth the font it's typed with).
"They always say there's nothing new under the sun.  I think that that's a big copout..."  Wayne Shorter

R.G.

Quote from: scratch on February 13, 2009, 12:01:18 AM
just the four chips, I select the required preset using a 6 position rotary switch, so only one tone at a time ...
If it's only one tone at a time, it's likely that some careful PIC programming could do the work for you at a cost of about $1.50 - $2.00. Producing more than one, especially 12 at a time, is a lot more complicated.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

Taylor

Quote from: gez on February 13, 2009, 04:36:59 AM
Maybe it's the musician in me, but why would you want to have access to all 12 tones within an octave?  I appreciate that you could harmonise a note with a chord involving 9ths etc, but most complicated voicings work over a range of at least 2 octaves.  Semitonal clashes with the original note aren't going to sound too musical - most chords involving semitones have another interval floating above them to smooth things out.  Even if you opt for simple triads or double stops these won't necessarily be diatonic, so running up and down scales might sound 'out of key' for some note selections.

Probably the most usefull intervals you could opt for would be 3rd, 4th, 5th, 6th and 8va below.  Out of those, I'd probably end up only using the 4th and 8va.  Each to their own, of course, but do you really need 12 outputs?  Or have you been listening to Schoenberg recently?!  You could perhaps make life easier for yourself by limiting the options (would certainly make the circuit simpler).

Just my 2p...(not worth the font it's typed with).

I don't know about everyone else's needs, but I don't need all 12 tones, although I am a big Schoenberg fan.  :icon_smile: I would love to have every note in every octave available, so I would never be limited, but I am more interested in having tons of simultaneous notes so I can have a drawbar organ setup with all notes having a volume slider. As stated earlier, I want kind of a horrible, glitchy 8-bit EHX HOG.

Cliff Schecht

There is a really cool project online where a guy uses an FPGA (I know I'm sorry!) to do additive synthesis. Each oscillator gets its own ADSR which makes it possible to get a draw-bar organ sound like you're talking about. Check out the "Additive Sines.mp3" clip at the bottom of this page:
http://www.strellis.com/fpga.shtml

Taylor

Quote from: gez on February 13, 2009, 04:36:59 AM
Maybe it's the musician in me, but why would you want to have access to all 12 tones within an octave? Even if you opt for simple triads or double stops these won't necessarily be diatonic, so running up and down scales might sound 'out of key' for some note selections.

Thinking about this further, it's interesting to note that the fifth harmonic of the overtone series, and subsequently the fifth drawbar of the Hammond organ, is 2 octaves and a major third above the fundamental. As you note, it would be expected that this would create some dissonance when playing, for example, a B in the key of A minor. However, reality tells us that organs using this stop don't automatically sound dissonant, nor do instruments with prominent fifth harmonics, like triangle wave synths or woodwinds, sound nasty in the same situation. It seems that having notes separated by octaves makes them progressively less dissonant - for example the minor ninth is dissonant, but less so in my opinion than the minor second. These considerations can be accounted for when you're using a pitch shifter.

Quote from: Cliff Schecht on February 13, 2009, 03:36:00 PM
There is a really cool project online where a guy uses an FPGA (I know I'm sorry!) to do additive synthesis. Each oscillator gets its own ADSR which makes it possible to get a draw-bar organ sound like you're talking about. Check out the "Additive Sines.mp3" clip at the bottom of this page:
http://www.strellis.com/fpga.shtml

Wow, that's really impressive - I would love something similar but that is way out of my reach at this point.