I’ve been using mine with my heavily modulated Elements. Randomisation heaven.
“Clairvoyance” is needed in many places in the module.
For example, to generate random segments ramping at the right rate, you need to know in advance when the next clock tick is going to happen.
This is done by representing pretty much everything related to time as a ramp going from 0.0 at a clock tick and ramping to 1.0 right before the next clock tick.
When the module is internally clocked, generating this ramp is easy - it’s just a sawtooth oscillator. When the module is externally clocked, we do the same kind of trickery as with Peaks’ tap tempo: several types of predictors are pit against each other to predict when the next clock tick will arrive (for example, if the pulse width of the clock appears to be a constant 50%, then the falling edge of the clock signal tells us exactly when the next rising edge will occur).
Clock division and multiplication on ramps is trivial - multiply by N (mod 1.0) for multiplication, divide by N and unwrap for division. Also (but not needed in Marbles): addition (mod 1.0) is phase-shifting.
Implementing jitter that preserves the mean of the interval between ticks is also a transformation on the ramp signal.
Then there’s the matter of Bernoulli trials. Imagine that your master clock is represented by a ramp. To do a “Bernoulli division” of it, you keep a slave ramp going: when the bernoulli trial is “no”, the slave ramp goes from its current value to half of what remains (adjust “half” if the coin toss is not fair); and if the trial is “yes”, the slave ramp goes from its current value to 1.0 (so yes, there’s effectively a delay of 1 clock tick in this process).
From there, generating gate outputs is just a matter of thresholding the ramp. Generating random segments or curves is easy to do because we have access to a counter smoothly going from 0 to 1 between each random decision that can be “waveshaped” into the kind of transition curve we want (something familiar to whoever has studied my typical envelope code).
Of course, the devil is in the details: what to do when a clock tick happens before we had predicted, or is coming later than expected? In those cases the waveform might “stall” or quickly evolve. And of course the Bernoulli procedure I have described is not perfect because it doesn’t generate straight ramps (so the gate times might be incorrect, and the interpolated segments are monotonic functions but not straight lines).
Grids clock choice
OK, so this is Marbles, controlling a heavily modulated (Kinks, Malekko AD/LFO, Doepfer 149-1) Elements, then feeding Clouds, which is also being controlled by the Marbles and the modulation sources (a bit).
That’s very fun.
I thought I’d share my first quick test of Marbles, seen here “sequencing” two Erica Synths Pico Drums, Mutable’s Plaits & Rings, as well as an Intellijel Plonks. I’m really loving Marbles a lot!
You weren’t kidding when you wrote this: “a long road ahead to write the (rather ambitious!) firmware for this thing.”
Thanks for this amazing module!
OK, many thanks for the detailed reply! Shall ponder generalisations to the multinomial case. It was easy until I saw the crystal ball gates output by Marbles, now we must have those too!
Just got Marbles today. Picked it up at the post office, had it plugged in at 18:00. Then it was suddenly 21:00 and I had forgotten all about the dinner I was supposed to make after just checking that it worked. That’s a good grade! Amazing module.
I think one of the best companion modules for Marbles when using it for sequencing is, weirdly, a sequencer. Dividing the clock and then sequencing slow, stepped changes of Bias or Spread is very fun and musical. It’s also easy to forget that when you’re using X for melody (+2 mode), any unused output is great for self-modulation without attenuation due to the +2 range. Especially neat when you have some output diversity.
What sequencer were you modulating?
Really wish I still had my optomix as the t section seems great for making great LPG patterns. Always wished the burst output from the Wogglebug went through intervals of the incoming clock. It is so fun when it would randomly happen.
I used the CV mode on a Varigate 4+, useful since it has built in divide for the clock. Previously I used Tirana for these things.
Marbles definitely works great with LPGs (or the LPG emulation in Plaits!). I especially like the orange t mode.
hei, it’s normal that the t2 output has a red light?
No, the output should be green. The LED has been put backwards Send me back the module and I’ll fix it.
I held down the t section button down to adjust the gates and it started blinking. I moved the knobs and then pressed the button and it stayed blinking, but after I held it down for several seconds it went back to normal. Did I mess up something from the calibration process?
Wonderful. What’s the default setting on all the secondary stuff?
It’s a beautiful module. Love the musicality.
However the quantizer is giving me a headache.
According to the manual it should give me a c-major scale by selecting the slow blinking green mode.
My uscale2 is showing me sharp notes occasionally (#d) and not a major scale. Steps parameter is at 1 o’clock. Double checked the cables and the uscale. Same happens with the minor scale - no consistent minor scale on my uscale2 when selecting the slow blinking orange mode.
Setting the Steps parameter to 4 o’clock should give me a C and G in major mode. Marbles get stuck at a #d.
I’m in Green mode in the X section and using the x1 output.
Could this be a calibrating issue or did I get s.th. wrong here?
Posted this on muffs already. Not sure if it gets any attention.
I’ve never quantized, quantized voltage. Are you using a tuner to find this error?
no tuner, I was using the uscale to visualize the output voltage from marbles after hearing odd notes.
Didn’t know it did that. Why not just send the unquantized voltage to the uscale?
One of the main reasons I switched to marbles was the built in quantizers. I got limited space.
I did some further testing and it seems the bahaviour can be influenced by feeding external voltage into marbles. After switching back to the factory scales and disconnecting the external cv from spread and clock on the x section, marble outputs sharp notes in major scale mode. This time #f and #c and previous mentioned #d.
Probably feeding external cv won’t be resetted fully?
I tried shutting down the module several times, but it doesn’t help either.