ornaments+crimes extended / polymorphic 4x16bit CV generator

From circuitbending to homebrew stompboxes & synths, keep the DIY spirit alive!
Post Reply
User avatar
mxmxmx
Super Deluxe Wiggler
Posts: 2243
Joined: Thu May 31, 2012 1:54 am
Location: berlin

ornaments+crimes extended / polymorphic 4x16bit CV generator

Post by mxmxmx »

update:


find all info here now: http://ornament-and-cri.me/



original post:
mxmxmx wrote:
.... ok, here we go.


though my contribution was fairly slim, i was chosen to have the pleasure to announce (or, well, fully leak) the

ornaments+crimes extended firmware


it can now be found here: https://github.com/mxmxmx/O_C . and it runs on the (almost) eponymous module:


Image



huge props go to pld and bennelong.bicyclist who've basically rewritten the firmware from scratch and mutated the thing beyond recognition, both in terms of functionality and performance.

everything is, of course, open source and we've even made a little schematic for you (NB: post-hoc). speaking of: special thanks must also go to the ever-generous olivier gillet, on whose code some of this new functionality builds. (and the hardware, too, gradually gravitated towards being fairly MI-esque). not so much the user interface, which does everything the one-knob-per-function doctrine interdicts: displays, menus, encoders ... the payoff is that you get a polymorphic module that can serve several functions somewhat more transparently:


there is still a improved and enhanced quantising ASR (analogue shift register) function in ornaments & crimes, now named CopierMaschine, but several other "apps" have been added. these "apps" are selectable on-the-fly, without having to reboot the module or power-cycle.

The apps currently available in ornaments & crimes are:

* CopierMaschine: is an enhanced version of the original quantising digital emulation of a four stage analogue shift register (ASR).

* Harrington 1200: provides basic neo-Riemannian Tonnetz transformations of triadic chords, triggered by the digital (gate/trigger) inputs.

* Automatonnetz: combines Tonnetz transforms with a "vector" sequencer - it can be both a chord sequencer and a melody sequencer, but not of the usual kind.

* Quantermain: is a quad pitch quantiser for external voltages, with editable preset scales, even fully editable user-scales incl. microtonal tunings, etc; it can do clocked (trigger-driven) quantising, or continuous quantising, with a latency of under 100 microseconds; it also features quad Turing Machines and/or May-Verhulst logistic maps as optional, semi-random, internally generated CV sources.

* Quadraturia: is a wavetable quadrature LFO, based on the "Easter egg" in the Mutable Instruments Frames module.

* Low-rents: is a dual Lorenz and Rössler (strange attractor) modulation generator, partially based on the "Easter egg" in the Mutable Instruments Streams module.

* Piqued: is a quad voltage-controlled envelope generator, based on envelope generator code from the Mutable Instruments Peaks module, but extending it with voltage control, additional envelope types, including re-triggering (looping) envelopes, additional segment shapes, adjustable trigger delays, and a unique Euclidean "trigger filter" which turns the app into a Euclidean rhythm generator which can output envelopes, not just gate or trigger pulses.

* Dialectic Ping Pong: is a quad bouncing ball envelope generator, based on a hidden mode of the Mutable Instruments Peaks module.

* Viznutcracker, sweet!: is a quad "byte beat" equation generator, which can be used as an audio source to generate curious but often interesting 8-bit noises and tunes, or which can be clocked by an external source to produce "byte beat" control voltage sequences.

* References: is a simple utility app that outputs specific reference voltages on each channel to help tune or calibrate VCOs and other modules.


you can read the rundown in full here: https://github.com/mxmxmx/O_C/wiki/Orna ... d-firmware




the hardware is still the same, of course, if pretty much maxed out now (the main limitation being the lack of multiple SPI ports on the MK20 dev board.) in brief:


- teensy 3.1 / 3.2 dev board (Freescale MK20DX256 / 32-bit ARM Cortex M4).
- 4x precision CV outputs, 16-bit (TI DAC8565), output range: -3v / +6v, "in-the-loop" compensated, for best DC accuracy, with 9 calibration points at -3v to +6V per channel settable in firmware to ensure excellent linearity (+/- 1mV accuracy across a 9 octave pitch CV range is achievable).
- 4x CV inputs, -3.5v / +6.5v, 12bit, 100k input impedance.
- 4x trigger/gate inputs, threshold ~ 2.5v, 100k input impedance.
- two rotary encoders, with built-in push switches.
- two push buttons.
- 128 x 64 pixel 1.3" OLED display (with an SPI interface and SH1106 driver chip - see the build instructions).
- trigger-to-quantised-output latency < 100 microseconds
- apps use a 16.7kHz internal timer (CPU overclocked to 120MHz), therefore the DAC update (sample) rate is 16.7kHz on each of the 4 channels.
- ADCs are also read at 16.7kHz but in many of the "apps" running on O+C, 16 values are averaged to remove noise, meaning that the effective sample rate for CV inputs is about 1 kHz. Digital (gate/trigger) inputs are read at 16.7 KHz - this ensures very low latency.
- +/-12V power only, ca. 85mA power draw on +12V bus, much less on -12V bus).

edit. fixed typo, update schematic, update info
Last edited by mxmxmx on Tue Feb 07, 2017 9:09 am, edited 4 times in total.
User avatar
edwinm
Common Wiggler
Posts: 249
Joined: Mon Aug 05, 2013 4:31 pm
Location: London

Post by edwinm »

Yeh!
User avatar
jensu
Common Wiggler
Posts: 218
Joined: Mon Mar 25, 2013 7:45 am
Location: Copenhagen

Post by jensu »

Is it possible to order boards through you mxmxmx?
User avatar
gbiz
Super Deluxe Wiggler
Posts: 1096
Joined: Tue May 07, 2013 11:20 am
Location: Sussex, UK

Post by gbiz »

Nice :yay:
User avatar
bezier
Wiggling with Experience
Posts: 317
Joined: Tue Jan 29, 2013 5:48 pm
Location: berlin

Post by bezier »

madness :hail:
sanderr2
Learning to Wiggle
Posts: 29
Joined: Sun Feb 14, 2016 7:19 am
Location: Teddington, UK

Post by sanderr2 »

Sounds great. I'm very keen to have a go at building one (or two, or three or four...)
Learning to wiggle
User avatar
mush
Veteran Wiggler
Posts: 618
Joined: Tue Sep 28, 2010 1:38 pm
Location: Copenhagen, Denmark

Post by mush »

I love mine - got to update now though, as I can see a few small changes since the dev-version I installed this weekend...
User avatar
loopt
Veteran Wiggler
Posts: 599
Joined: Sun Jan 24, 2010 3:16 am

Post by loopt »

Image
Desert island high density DIY suitcase synth. :hihi:
User avatar
mush
Veteran Wiggler
Posts: 618
Joined: Tue Sep 28, 2010 1:38 pm
Location: Copenhagen, Denmark

Post by mush »

You need to add "reset" switches on the o_C's with that case as you choose APP on powering up by holding an encoder pressed...
User avatar
loopt
Veteran Wiggler
Posts: 599
Joined: Sun Jan 24, 2010 3:16 am

Post by loopt »

mush wrote:You need to add "reset" switches on the o_C's with that case as you choose APP on powering up by holding an encoder pressed...
???
The manual says:
hold down the Right encoder: Enter the app selection menu
User avatar
mush
Veteran Wiggler
Posts: 618
Joined: Tue Sep 28, 2010 1:38 pm
Location: Copenhagen, Denmark

Post by mush »

loopt wrote:
mush wrote:You need to add "reset" switches on the o_C's with that case as you choose APP on powering up by holding an encoder pressed...
???
The manual says:
hold down the Right encoder: Enter the app selection menu
On power-up... Hold down the left encoder to enter calibration... But it may have changed (i'm still on the dev. version)

Sorry. It has changed now, just read the new manual. :)
User avatar
Altitude909
Super Deluxe Wiggler
Posts: 4165
Joined: Wed Aug 24, 2011 5:13 pm
Location: Meesheegan

Post by Altitude909 »

woot. Nice that I just chose to build another :)
User avatar
loopt
Veteran Wiggler
Posts: 599
Joined: Sun Jan 24, 2010 3:16 am

Post by loopt »

Yep, it has changed.
A long press on the right encoder at runtime enters the app selection menu.

That case is a fantasy anyway. I would never use that many O+Cs in a case that small.
Well, maybe three... :mrgreen:
User avatar
mxmxmx
Super Deluxe Wiggler
Posts: 2243
Joined: Thu May 31, 2012 1:54 am
Location: berlin

Post by mxmxmx »

jensu wrote:Is it possible to order boards through you mxmxmx?
i have a few more boards coming in sometime next week; i was hoping this week, but doesn't look like it. i can put down your name but i'm not making any promises: they're all spoken for already so it'll depend on how many extra boards they threw in, if any. we'll order more, soon.
loopt wrote: Desert island high density DIY suitcase synth.
oh dear, i need to work a little on my CI, i guess ...

about the start-up thing: it's different from the old firmware but shouldn't have changed much in the last couple days, ie if you were using the dev version. so yeah, basically things should resume from the last active mode. the pressing buttons stuff during start-up is mostly for calibration purposes; the app-select menu on the other hand can be entered any time.
User avatar
loopt
Veteran Wiggler
Posts: 599
Joined: Sun Jan 24, 2010 3:16 am

Post by loopt »

For the piqued app you could implement an additional 281-mode with two AD envelopes and two of the CV outputs spitting out gates (EOR of AD1 and EOD of AD2).

And for the shapes I'm sure you already had a look at the Rossum Electro Control Forge which brings the nice multi-stage envelope of the EMU Morpheus to eurorack. Lots of different shapes for the segments.
Any plans of implementing more env stages with loops? :razz:
Or some gate logic for conditional looping, as in Gate 1 AND Gate 3 are high -> loop Env2.
SoundPool
Veteran Wiggler
Posts: 584
Joined: Sun Nov 16, 2008 11:15 am
Location: Vienna

Post by SoundPool »

YOW- ok maybe its time to finally build one of these once there is a panel. really love the visual feedback and the screen savers.

do settings in the apps save between power cycles?
flts
Super Deluxe Wiggler
Posts: 3035
Joined: Tue Mar 04, 2008 7:01 am
Location: Finland

Post by flts »

Time to install the final firmware once I get the euro box out of the cupboard... Superb job, guys - I love both the idea and execution. :hail:
Never stop loving music
User avatar
mcop
Wiggling with Experience
Posts: 455
Joined: Fri Apr 27, 2012 7:39 am
Location: Bristol UK
Contact:

Post by mcop »

New firmware uploaded - that's me occupied for the evening!

Thanks to all of you for all your hard work.
User avatar
loopt
Veteran Wiggler
Posts: 599
Joined: Sun Jan 24, 2010 3:16 am

Post by loopt »

mxmxmx wrote:
loopt wrote: Desert island high density DIY suitcase synth.
oh dear, i need to work a little on my CI, i guess ...
Nah, it's classic eurorack style.
Alles so schön bunt hier! :lol:
User avatar
pld
Super Deluxe Wiggler
Posts: 1237
Joined: Thu Mar 05, 2015 5:15 am
Location: Germany
Contact:

Post by pld »

Oh, cool, thanks for the thread mxmxmx!
Without the hardware it wouldn't have happened, and the rest sort of escalated :)
SoundPool wrote:do settings in the apps save between power cycles?
Not automatically, but you can save settings (for all apps) and set the startup app by long-pressing the right encoder in the app selection menu.
User avatar
bennelong.bicyclist
Super Deluxe Wiggler
Posts: 1025
Joined: Sat Jun 29, 2013 2:54 am
Location: Sydney, Australia

Post by bennelong.bicyclist »

SoundPool wrote: do settings in the apps save between power cycles?
You need to deliberately save your settings: long-press on the right encoder to invoke the app-switching menu, then long-press on the right encoder again to save current settings for all apps and make the current app the default on start-up.
User avatar
bennelong.bicyclist
Super Deluxe Wiggler
Posts: 1025
Joined: Sat Jun 29, 2013 2:54 am
Location: Sydney, Australia

Post by bennelong.bicyclist »

pld wrote:Oh, cool, thanks for the thread mxmxmx!
Without the hardware it wouldn't have happened, and the rest sort of escalated :)
Like Topsy, it just grow'd.
User avatar
bennelong.bicyclist
Super Deluxe Wiggler
Posts: 1025
Joined: Sat Jun 29, 2013 2:54 am
Location: Sydney, Australia

Post by bennelong.bicyclist »

loopt wrote:For the piqued app you could implement an additional 281-mode with two AD envelopes and two of the CV outputs spitting out gates (EOR of AD1 and EOD of AD2).
What's the use-case for such EOR and EOD gates? I only ask because I'm wondering how best those types of things might be implemented. Anyway, I've captured the idea in the documentation.
loopt wrote:And for the shapes I'm sure you already had a look at the Rossum Electro Control Forge which brings the nice multi-stage envelope of the EMU Morpheus to eurorack. Lots of different shapes for the segments.
What sort of shapes does the Control Forge implement for its envelope segments. We can easily add more, just what type of shapes are most useful? A perfectly square gate shape will be added, BTW.
loopt wrote:Any plans of implementing more env stages with loops? :razz:
Or some gate logic for conditional looping, as in Gate 1 AND Gate 3 are high -> loop Env2.
Which types of envelope would be useful to loop? Piqued already has Euclidean trigger filters. It might be feasible to add some logic-based trigger or gate filters, which would achieve what you describe, I think. Shall ponder it.
User avatar
mxmxmx
Super Deluxe Wiggler
Posts: 2243
Joined: Thu May 31, 2012 1:54 am
Location: berlin

Post by mxmxmx »

bennelong.bicyclist wrote:
loopt wrote:And for the shapes I'm sure you already had a look at the Rossum Electro Control Forge which brings the nice multi-stage envelope of the EMU Morpheus to eurorack. Lots of different shapes for the segments.
What sort of shapes does the Control Forge implement for its envelope segments. We can easily add more, just what type of shapes are most useful? A perfectly square gate shape will be added, BTW.
yeah, i played around with a bit at superbooth the other week. there were quite a few of them: linear1, linear2, linear3, … exponential1, 2, 3, …cubic1, 2, 3 … chaotic1, 2, 3 … random1, 2, 3, … DC1, 2, 3 …

don't know which ones might be useful. i suppose the main tricky question is how to come up with a decent/somewhat usable sequencing workflow; ie given the limited UI
User avatar
bennelong.bicyclist
Super Deluxe Wiggler
Posts: 1025
Joined: Sat Jun 29, 2013 2:54 am
Location: Sydney, Australia

Post by bennelong.bicyclist »

mxmxmx wrote:
bennelong.bicyclist wrote:
loopt wrote:And for the shapes I'm sure you already had a look at the Rossum Electro Control Forge which brings the nice multi-stage envelope of the EMU Morpheus to eurorack. Lots of different shapes for the segments.
What sort of shapes does the Control Forge implement for its envelope segments. We can easily add more, just what type of shapes are most useful? A perfectly square gate shape will be added, BTW.
yeah, i played around with a bit at superbooth the other week. there were quite a few of them: linear1, linear2, linear3, … exponential1, 2, 3, …cubic1, 2, 3 … chaotic1, 2, 3 … random1, 2, 3, … DC1, 2, 3 …

don't know which ones might be useful. i suppose the main tricky question is how to come up with a decent/somewhat usable sequencing workflow; ie given the limited UI
Voltage-controlled envelope segment shape, perhaps? A bit clumsy, but might be interesting, and quite feasible, I think. No change to UI needed, just a few more choices on the CV input mapping menu items.
Post Reply

Return to “Music Tech DIY”