Factor oracles FTW!


Pucktronix Oracle

Non-release(s), august 2015, november 2015

Oohhh that’s great!

I was planning to do something like that. One difference was that I wanted a continuous control (knob + CV) between outputting the input sequence exactly as is, and outputting variations - so the module can be used to do a variable amount of improvisation on a sequence without caring about the learn/play mode.

I’m also wondering what the AUTO clocking does - does it tag each note in the sequence with its duration (so it’s learning a model on (cv value, duration) pairs), or does it learn an independent model for durations. Both are interesting behaviours…


It does look intriguing.



I must read his paper on it in detail. Judging by the specs and his past use of earlier Teensy boards, it looks like the module uses a Teensy 3.1/3.2, which means that it is feasible to implement the algorithm on it (despite lack of hardware FP support). Hmmm (strokes freshly oiled beard).


OK, the paper referenced in the manual for the module describes PyOracle, which is, as the name suggests, a music factor oracle implemented in Python. It’s open-source and thus can be tried out and inspected. PyOracle extracts features from an audio stream (pitch/chroma, timbral features etc) - not clear that rhythmic features are extracted, but they seem like an obviously important feature. From the six features extracted from the audio signal, six separate factor oracles are constructed, either for a whole piece or for a sliding window. Then the information rate in each feature is used to select which of the six oracles is used to improvise new material at any particular time. Not clear why only one oracle is used at a time - maybe I misunderstood.

The module has a much easier task, since it only has to extract features from a CV signal and a, maybe, a trigger input. Maybe, because it isn’t clear whether rhythm features are being extracted from the trigger input, and whether note length and pitch are combined to build one oracle, or used separately to build two, as @pichenettes notes. I’ll ask Greg Sturges. Definitely an interesting module, and all sorts of potentially useful variations on the theme suggest themselves.


Wow I never realized he was in my town. I have never met him. I guess he was set to perform the same synth festival as me a couple weeks back but had to cancel. Too bad…i wonder if he would have had his new module.


Thanks for sharing - I’m totally intrigued as I’ve been playing around with similar ideas.


There is some additional information and two new videos from the designer available on the relevant MW thread, BTW.


@pichenettes I would love to see your take on this. Especially with the continuous output, for some reason this version leaves me wanting.


Hey - Greg, designer of The Oracle here! Just wanted to point of that v.3 of the firmware does allow for continuous switching between learning / generation. Cool to see this mentioned here!