Juno-104 : A Juno-106 inspired patch for the Organelle

Hey Everyone,

I got my Organelle last week and I’m really enjoying it. Just before receiving it, I decided to get into Pure Data. My intention was to use the Organelle as a sound processing unit. I was going to try to make a tremolo effect as a first patch. Exploring Pure Data Vanilla, I realized soon enough that there wasn’t any square wave or triangle wave generator. I come from a Max MSP background and I took those objects for granted…

So while I was figuring out how to generate a square wave from a [phasor~] (saw wave) object in pure data, I realized that by changing just one value I could adjust the pulse width of my square wave. Pulse width is the basis of synthesis used on one of my favorite synth, the Juno-106. So began the (small) journey to try to emulate the Juno-106.

I ended up making almost all the features. The filters doesn’t sound the same though. The chorus is far from it too. But still fun to play. 4 voices is the most I could go (75% of CPU load).

Anyway, I thought I’d share if some are interested:
104_voice.pd (15.7 KB)
main.pd (54.3 KB)
(put those two files in a folder named “Juno-104”, then put this folder in the “patches” folder on the Organelle’s USB stick)

The hardest part to make was the multiple parameter pages, as the Organelle seems to be sending the knob position regularly and changing pages would make the parameters jump even if you didn’t touch the knobs. The work around is that now you have to “awake” them, meaning after you change page, you’ll have to change a knob’s position a bit before it react.

Here’s some notes that might be useful for using this patch:
There are 7 parameter pages. To change page, press the aux button. The LED color is different for each page.

Page 1 (red LED) General:
-Knob 1: Transpose (from -2 to +2 octave shift)
-Knob 2: Portamento (from 0 ms (deactivated) to up to one second slides)
-Knob 3: Chorus On or Off. (This is a switch, either on or off, and the change is made when knob is halfway through)
-Knob 4: Volume (volume of the patch (digital scaling) before the volume of the Organelle)

Page 2 (yellow) LFO:
-1: LFO Rate (LFO speed from 0 to 30 Hz)
-2: LFO Delay (the time it takes for the LFO to get to full scale (a bit like attack) from 0 to 5 seconds)
-3: LFO Pitch (The amount that the LFO will influence pitch (from 0 to 100)
-4: LFO VCF (The amount that the LFO will influence the Frequency of the VCF (lowpass filter). The LFO will have the actual Filter frequency value as its center. If the LFO VCF amount is high and the VCF frequency value is very low, the LFO could cut the sound everytime its wave is negative (this is not dangerous)

Page 3 (green) Oscillator page 1:
-1: Square wave oscillator On or Off (enable or disable the square wave oscillator)
-2: Pulse width (This parameter adjust the pulse width of the square wave oscillator and sub oscillator. A value of 0 means the square wave is symetric (the wave is up half the cycle and then down the other half of the cycle). A value of 80 means that the up stage is much longer than the down stage.)
-3: PWM (Pulse width modulation. From 0 to 100. Set to zero, the LFO doesn’t modulate the pulse width)
-4: (No parameter)

Page 4 (light blue) Oscillator page 2:
-1: Saw wave oscillator On or Off (enable or disable the saw wave oscillator)
-2: Sub oscillator mix (this will crossfade the sub oscillator with the oscillators)
-3: Noise vol (volume of noise)
-4: (No parameter)

Page 5 (dark blue) Filter page 1:
-1: VCF Freq (frequency (cutoff) of the lowpass filter)
-2: VCF Res (Resonance of the lowpass filter)
-3: VCF Envelope mode (Normal of Inverted. The ADSR Envelope will work as you expect in normal mode, but in reverse, it will work negatively)
-4: VCF Envelope Depth (how much the ADSR Envelope will modulate the frequency of the lowpass filter. )

Page 6 (pink) Filter page 2:
-1: VCF Kybd Trk (this will make the Filter frequency track the keyboard. A value of 100 should track perfectly)
-2: HPF Freq (Frequency of the highpass filter. A value of zero means the filter is completely open. Beware, the value will jump a bit when you move that knob; that is due to the highpass filter object being used in the patch)
-3: (No parameter)
-4: VCA Env Mode (Either ADSR or Gate. This switch only affects the VCA (amplifier) and not the filter. In gate mode, the envelope will be on immediatly when you press a note and off when you release it. Fun tip: set this parameter to gate mode. Set a slow attack on the envelope page and put the VCF frequency filter to very low and the VCF Envelope Depth to high. Press and hold one note of the keyboard, and you’ll hear the effect…)

Page 7 (white) Envelope:
-1: Attack (Duration of the attack stage of the envelope. From 1.5 ms to 3 sec)
-2: Decay (Duration of the decay stage of the envelope. From 1.5 ms to 12 sec)
-3: Sustain (Sustain level of the envelope. From 0 to 100)
-4: Release (Duration of the release stage of the envelope (after you release the key). From 1.5 ms to 12 sec)

Let me know if you find any bugs. I hope you enjoy!

13 Likes

wow, that reads very impressively! thanks for sharing.
will only be back at my organelle at the end of the week and am looking forward to test this asap.
thanks again!

Hey glad it can be of use to others. I still need to do my tremolo though; I really lost focus on that!

this sounds amazing! can’t wait to load it up tonight. thank you!

Awesome. Nice work!! I just got a new synth :slight_smile:

I uploaded the latest version on patchstorage for those interested:
http://patchstorage.com/juno-104/

3 Likes

Very cool! Going to try this out at rehearsal tonight.

Thanks for this patch. Its pretty damn nice. I really need to learn PD so I can start manipulating patches and creating new ones. Wheres the best place to get started with PD?

Hey Feend, glad you like the patch!
If you want to start with Pure Data, you should read this:
http://aspress.co.uk/ds/pdf/pd_intro.pdf

Read it while you have Pure Data opened and do the examples. There are some more advanced topic at the end which might be a little too much by the time you get there, but still interesting to read to understand the possibilities.

1 Like

…Hey! @rawticks Extreme cool Sounding patch!

…but when i try to open it via the mother-desktop patch i’ll get an error about "incoming signal to outlet’ignored… or something like that…

what is this and how should i change it? :slight_smile:

thx buddy

@JohnnyEgo, I don’t get this error here (I’m on mac, don’t know if it has any relevance though). The only errors I get are these:
“screenLine1: no such object
screenLine2: no such object
screenLine3: no such object
screenLine4: no such object
screenLine5: no such object
throw~ outL: no matching catch
throw~ outR: no matching catch”

All of which have to do with the communication with Organelle’s hardware, so it’s normal.

Also, make sure you have the latest version of the patch, which you can download here:
http://patchstorage.com/juno-104/

1 Like

Latest patch update (v0.92) is up on patchstorage ;
http://patchstorage.com/juno-104/

You can now save and load up to 32 presets. See details at the end of the description on patchstorage.

Again, let me know if you find a bug!

2 Likes

Thank you so much for this! This is the first patch I download to my new Organelle. Just arrived today! Great job on this, sounds amazing. I’ll update later if I find any bugs or to share any ideas or thoughts or questions.

1 Like

1 cool idea for preset creation (I know nothing about Pd but I’m sure it’s possible): Before you get to the Presets page, there could be a page that helps you create presets by changing the whole synths’ values randomly. You could choose the margin of randomization so you don’t go too far or crazy with a sound (or you could if you wanted to). Then you go to the Presets section and save it.

Yeah this would be easily doable I think.

Something like banging on this :

[random 100]
|
[* 0.01]
|
(to parameter slider which is calibrated to ouput a value from 0. to 1.)

By making the random value adjustable to a value between 1 and 100 and by making the calculation bipolar (put [expr $f1 - ($f2/2)] between [random 100] and [*0.01], where $f2 is the random range and $f1 is the random value) and adding that to the current slider value, you could achieve what you want of controlling the degree of randomness of the patch randomizer.

2 Likes

Awesome! Thank you for this :slight_smile:

1 Like

Hi,

the patch does not come with saved presets right?
Because if I load one of the presets the sound does not change…

When I use a MIDI keyboard (Akai LPK25) the sound is only duophonic. Is this a bug?

Great work!

No preset are included, you need to make your own!

As for duophonic, that’s weird, the 4 voices works normally with my external keyboard (yamaha cp).

I’ll take a look into it this week to see if I introduced a bug with the last update.

1 Like

great work on this patch! pages/preset slots all laid out intuitively, and sounds fine on my PC 4-voices no prob. . . . . thanks!

Thanks mbrady29!

I can confirm there’s a weird polyphony bug, as reported by Trunks. When using the patch alone on desktop with my external keyboard, I get 4 voices. When using the organelle’s keys I get 4 voices. When using my external keyboard plugged in the organelle I get only 2 voices out of the external keyboard, yet 4 from the organelle’s keys. On desktop, when I load the mother patch, I get only 2 voices from the external keyboard. It seems that the patch doesn’t behave like it should when the mother patch is running. I tried it with my other patch, GlassFM, and polyphony seems to work fine on this one. I don’t know what’s going on with the juno patch which is quite similar in the polyphony management… I’ll investigate this week and hopefully will have an update soon.