Short version: a concept for a eurorack 8 x 8-channel matrix mixer with selectable effects on each input channel, controllable by grid128 and arc4. Fully functional (with caveats) Max 7 object demonstrating functionality: https://github.com/sphiralstudios/ocTOMaTRIX or just ocTOMaTRIX-master.zip (61.8 KB) although I’m still actively revising so github is better.
Have Fun, and I’d love feedback! (my first app contribution so be gentle)
Long version: ocTOMaTRIX would/could/should/might? eventually be a eurorack module with 8 audio ins, 8 CV ins, and 8 audio outs, with two USB for grid and arc.
The left half of the 128 controls an 8 x 8 mixer matrix routing any of the 8 audio inputs to any of the 8 outputs.
The right half of the 128 selects which one of 8 effects/sub-modules are applied to each audio input, with the Arc providing control over the effect parameters.
Each audio input also has one corresponding CV input to provide additional modulation based on the selected effect. For example, when the active effect on audio input 1 is the VCA/Mixer, the CV in 1 controls amplitude of audio input 1, regardless of the output(s) to which it is then routed by the mixer matrix.
Here are the current effects (So formatting columns is hard here, each line is the effect followed by the 4 arc-controlled parameters and what is modulated by CV):
VCA/Mixer: Audio Input Lvl to VCA - VCA range (CV gain) - VCA Wet/Dry - Output Lvl - CV: Amplitude (VCA)
Amp Envelope: Attack - Decay - Sustain - Release - CV: Gate/trigger
LFO Decimator: Frequency - Pulse Width - Pulse Slope - Depth - CV: Frequency
Filter: Cutoff Freq - Q - Filter Type - Filter Depth - CV: Cutoff Freq
Granulator: Grain Size - Gr. Speed / Pitch - Gr. Rate - Level - CV: Not yet implemented (still working on this effect, aiming for close to MI Clouds functionality, have some ideas about how to rework when I have some time)
Delay: Delay Time Rough - Delay Time Fine - Feedback - Wet / Dry - CV: Delay Time
LoFi: Bit Crush - Noise Filter (BP) Freq - Noise Q - Noise Lvl - CV: Noise level
Pitch Shift: Shift Amt - Time Offset - CV depth - Wet / Dry - CV: Shift amount
You could have ocTOMaTRIX set up as an 8-independent-channel VCA and mixer, or 8 independent filters, or 4 and 4; or 8 separate amplitude envelopes (trigger with MP) that don’t require a separate vca or mixer(!). Or route outputs to inputs to stack effects: split audio from a single oscillator, pitch shift it in 3 oM channels so you have 4 different pitches, then feed those four outputs back into amp envelopes triggered by WW. Or send a single oscillator output into a chained pitch shifter, filter, and decimator, that are mod’d by the 3 CV outs from ES, send that output into an amp envelope with the ES edge triggering, (which you could double for left and right - but then vary parameters between sides)…you could send the same CV signal to different CV inputs to get parallel or identical effects on multiple audio inputs…possibilities would be endless!
I’ve really enjoyed putting together and playing around with these effects (although still just in Max), and as much as I think they’d make a decent set to play live with, they were just the first 8 effects that came to mind. The beauty of the module (in true monome fashion) is that you could potentially customize and substitute your own effects but retain the mixer / swiss-army-knife functionality (or I suppose you could completely retask it to do whatever you might want with 2 usb and 24 jacks - nice and operationally vague physically - just had the thought you could reprogram the 24 jacks to have a 16 x 8 matrix controlled by the whole 128; if, god help you, such a setup would be useful to you). So really the specific effects themselves are not necessarily central to the idea of the module itself, which could pack a lot of versatile and customizable (especially if flashes / effects are care-taken somewhere) functionality into a small rack space - maybe as little as 10 hp? Something like:
(if that’s not too ambitious on the spacing)
It might work really nicely next to Teletype btw, with TT’s 8 CV / Trigger outs going to oM’s 8 CV ins. Might also be nice to be able to send commands from TT behind the panel to change effects…but I get ahead of myself.
I think it’d be a nice feature also to be able to get CV out of an output (instead of audio) when there’s no audio signal coming into a channel. Say you’re using the amp envelope with no audio in - the output would be something you could send to a different vca or other CV in if you wanted. So it’s as though there’s a steady signal of 1.0 in place of the audio when there’s no actual audio input. You’d still have to assign the channel with no audio input to an output to get the CV out that output. There’d have to be some failsafe to keep CV and audio off the same output - not sure how useful it would be for all the effects vs how problematic it would be to engineer.
Now, I’m still learning a lot of the ‘under the faceplate’ nuts and bolts, so I recognize my own lack of knowledge about what exactly would be required hardware-wise to make this module happen (I’m not completely ignorant), but one friend/colleague suggested it might require more than one 32-bit MCU to handle all the AD/DA i/o and dsp at a decent quality, which made sense when I looked through the Atmel product site. The avr32 C series looked like the ticket, 64 would be more than enough pins (especially having only 4 dac and 8 adc channels, thus needing the 2?), and once I have code written I’ll know how much flash size I’ll need? Although might be nice to have extra flash anticipating other, more complicated effects - may not be appreciating if there’s a trade-off (other than price) for having a larger flash size. I’m all about learning more on this subject, and would welcome any advice and/or worthwhile resource recommendations.
Really though (for now) I just want to get the discussion going about whether this sounds like a decent concept. The few people with whom I’ve shared the idea have responded positively, so I’m sharing it here to see what you all think.
To that end, I’ve put together a max object that models the functionality of ocTOMaTRIX: https://github.com/sphiralstudios/ocTOMaTRIX. (same link as top) You’ll need all the files - there are a few subpatchers - so make sure you get the whole directory to try it out. Or: ocTOMaTRIX-master.zip (61.8 KB). It’s built in Max 7; I wouldn’t recommend trying to run in earlier versions of Max.
A quick note re: name/caps/pronunciation: had to do something to make boring octo-matrix sound more exciting, and I like how oct-TOM’-a-TRIX sounds. Actually thought briefly about moNOMaTRIX also, but I’m not monome so that felt presumptuous, and I like ocTOMaTRIX better for what the concept is anyway - a mono-matrix would just be a switch. I wouldn’t be against losing the caps though, if the pronunciation stuck, you know, among the initiated although it does look sexy on the faceplate pic as is.
It’s worth humbly noting this represents my first publicly-shared ‘monome app,’ although I hesitate to even call it that, it’s intended more as a ‘demo app,’ although I suppose it’s independently viable (you be the judge…). I’m aware I still have a few things to fix - mostly with the granulator effect, there might be a few other minor bugs to exterminate, I’d like for the arc to display more useful information based on the selected effect; what I’m saying is by no means is this road-ready, just to be clear. But it’s really only the granulator that needs any significant work, and as I said the effects are really secondary to the idea of the module anyway. I just wanted something to demonstrate the concept - I’m not in a situation right now where I get much feedback, so really just trying to generate some so I can decide whether or not to pursue this further (or if anyone wants to collaborate…).
So check it out, let me know what you think of the idea, offer suggestions, tell me I’m crazy, do with as you will. If you go looking under the hood, don’t judge me a lot of patching was done late at night.
I will say that using ocTOMaTRIX, I was easily able to create (what I at least thought was) some pretty interesting and musical sound, just using the audio files that come with Max as audio input, and that’s without patching outputs back to inputs (which Max won’t let you do, at least not without being sneakier than I had time for). Also (imho at least), sweeping a filter cutoff frequency is a lot smoother and infinitely more satisfying with an arc encoder than with a pot on a module, and using the arc for precise control of delay time, decimator frequency, and other would-be-hard-to-get-exact-on-a-pot parameters is just glorious.
One last thing: using Expert Sleepers modules for CV in and routing audio in/out directly (via audio interface or more ES), you could get ocTOMaTRIX working it’s magic for your modular setup from your computer right now (theoretically). Of course, you’re tethered to a computer, but if you have ES modules chances are you are already anyway…
Sorry for the long post, hope you have some fun checking out ocTOMaTRIX!