Hi folks,

Here is my current "midsize rack" design. It is intended for i) EDM lead / bass tones ii) learning modular iii) fun and exploration.

This is the round 3 design, after "just ideas" in February, and an earlier build mockup in March.

ModularGrid Rack

The basic design logic:
-- Row 1 is "voicing" with 2 oscillators, 2 filters, a wavefolder, and a little bit of mult utilities in the middle
-- Row 2 middle is "brains" with Vector Sequencer and Scales (quantizer) to the left. I did choose to keep a quantizer (in addition to the sequencer) in the design as I wanted an independent chain to sequence pitch class sets. And I went with Scales over a couple other suggestions as Scales better fits my thinking and workflow.
-- Row 3 is CV (Stages through Batumi) followed by VCA, effects, and signal out
-- tucked in a few other places are attenuator / logic modules (4MS SISM, ADDAC Sum&Diff, Triplatt) to control / mix CV signals; Doepfer narrow mix and steroe mix to let me have a couple chains through the OSC, filters, Wavefolder; and Kinks
-- modules are selected by i) what's inspiring to me ii) what modules will complement others iii) what is in stock (vs. having to wait forever) iv) to keep some "easier to learn" modules involved (vs. having huge manuals for everything)

Regarding layout:
-- I wanted Voicing on top row, the Sequencer in a nicely centered position, effects and signal out in the lower right
-- other items are arranged thinking how I might normally patch them, and where the HP is a good fit

I'm curious:
-- what do you think of this build?
-- would you consider this a deep / fun rack? If yes, why, if not, what changes would improve it?
-- are there clear ways to improve the layout?

Thanks to anyone willing to have a look & kick around some ideas on this. And thanks for the many helpful comments on my earlier posts!

Nicholas


"Anyone, anyone, Bueller?"

BTW Vector, newly installed, is a beast. Takes up a lot of HP for this build BUT is very powerful and shockingly easy to use, at least it justifies the HP expenditure IMO.

This layout creates a lot of cables crossing my sequencer; how did I not catch that ahead of time? Not ideal but not terrible either, not so much a problem I want to rearrange without a much better layout idea to replace it.

This 3rd rack design seems pretty decent to me BUT I wanted to check around for a few other opinions. Thanks!


the scales seems a bit superfluous - considering the vector sequencer has quantizing built in

possibly better to swap the 2 bottom rows - but it's not going to make a lot of difference - cables get everywhere


Thanks for having a look Jim!

Scales is in there mainly because I love it. I've got a long way to go to learn Vector thoroughly... I'll keep in mind I might remove Scales later on if I get to covering all related functions with Vector.

Layout: yes indeed, cables everywhere. Swapping some of Row 2&3 -- a good idea for my next case rearrangement.

Thanks! NG


Yep, the Vector is HUGE...but then, it's clearly the "core" of the system, and even the build layout is set up to reflect this.

There's not much in the way of issues here. About the only thing I can suggest would be to lose the LINK2 and Links and use the space for a Happy Nerding 3xVCA, which would give you VCA control over the VCO mixing. Also, you could add VCA level control to the Doepfer A-138s by yanking the A-138n and replacing it with two 2hp VCAs, which would give you the requisite four VCAs as your mixer's "front end".

And I get it re: the quantizer...by having a second quantizer with definable scales, you can then feed it a clock from the sequencer AND modulation signals. By constraining the scales to match what the Vector's internal quantizers are set for, you can generate psuedorandom contrapuntal patterns from keying the extra quantizer via the Vector and feeding LFOs, envelopes, etc to the quantizer's CV input. A very sneaky and low-power method for complementing the Vector, to be sure!


@Lugia, thanks for the ideas above!

Great to hear "there's not much in the way of issues here." Your recommendations to swap in 3xVCA and/or 2hp VCAs I will keep in mind going forward.

Re: Scales + Vector -- "you can generate psuedorandom contrapuntal patterns from keying the extra quantizer." Yes, I've been thinking about interesting use cases for the Quantizer + Sequencer configuration. Auto / pseudorandom counterpoint is a very interesting possibility. What I've NOT yet got a bead on is how I might constrain motion in the counterpoint line; let's say for example, I want my counterpoint to be about 45% contrary motion, 20% oblique, 20% similar stepwise, 10% other (e.g. parallel or similar motion by leaps). I DON'T have a good idea of how to implement such a "contrapuntal motion constraint" in modular, other than i) manually programming in the sequences (boring and not fundamentally different than using keyboard / mouse) or ii) manually setting the "shapes" for the contrapuntal lines (such as ramp up for voice 1 and ramp down at .5x rate for voice 2) while letting other factors be psuedorandom. Any ideas for a control scheme in modular that "opts in" desired (contrary + oblique) motion while limiting undesired (parallel and similar by leap) motion? My early sense is it would require a chain with slope detection (rising / falling) or difference detection (greater / lesser) plus some logic to do "not" and "or" functions BUT I can't really imagine the modules needed for implementation, or how to get them to work instantaneously (e.g. without being ruined by lag) to drive a 2nd derived (and semi-constrained) line from a primary voice.

BTW we've again arrived at a "control scheme" discussion. Maybe we port the discussion over to this larger thread I made on topic: https://www.modulargrid.net/e/forum/posts/index/9906

More broadly ... I will do a little dance! February = modular newbie, April = solid working mid-size rack (above). A lot of online research, patching, and friendly advice from MG forum have helped me cover a lot of ground fast. Thanks all!!!!


Re: Scales + Vector -- "you can generate psuedorandom contrapuntal patterns from keying the extra quantizer." Yes, I've been thinking about interesting use cases for the Quantizer + Sequencer configuration. Auto / pseudorandom counterpoint is a very interesting possibility. What I've NOT yet got a bead on is how I might constrain motion in the counterpoint line; let's say for example, I want my counterpoint to be about 45% contrary motion, 20% oblique, 20% similar stepwise, 10% other (e.g. parallel or similar motion by leaps). I DON'T have a good idea of how to implement such a "contrapuntal motion constraint" in modular, other than i) manually programming in the sequences (boring and not fundamentally different than using keyboard / mouse) or ii) manually setting the "shapes" for the contrapuntal lines (such as ramp up for voice 1 and ramp down at .5x rate for voice 2) while letting other factors be psuedorandom. Any ideas for a control scheme in modular that "opts in" desired (contrary + oblique) motion while limiting undesired (parallel and similar by leap) motion? My early sense is it would require a chain with slope detection (rising / falling) or difference detection (greater / lesser) plus some logic to do "not" and "or" functions BUT I can't really imagine the modules needed for implementation, or how to get them to work instantaneously (e.g. without being ruined by lag) to drive a 2nd derived (and semi-constrained) line from a primary voice.
-- nickgreenberg

Well, the "instantaneous" part is easy enough once it's all patched up. And you're on the right track with the use of discriminators and logic to get the desired stochastic result.

Let's say for a minute that you've added a few Ladik modules here...a Min/Max discriminator (U-040), a Median discriminator (U-041), and their Derivator (J-110). Right there, you've got 12 hp that can...

1) Read incoming CVs for minimum and maximum values, then output those.
2) Read incoming CVs and then derive an average.
3) Read incoming CVs, then output a gate depending on the CV's action.

So far, so good. Now, we need some arithmetical processing. Shakmat has this little 2 hp thing, the SumDif, which does CV addition and subtraction. So, feed one "side" of that with one of your derived CVs, then the other "side" with some DC offsets sent from something like Michigan's F8R...which also has enough CV offset sliders to allow you to use some more as manual CV inputs to the other modules.

So, this results in a bunch of derived CVs with a degree of manual control. Then, you need switching...

Now, for THIS part...we have a key module that really opens all of this up to the sort of control you want, and that's Mutable's Branches...a dual A-B "switch" that changes depending on controlled stochastic parameters. With this, you can then use CV values to change routings, mute CV lanes, etc etc.

Now, the other side of the equation here is the pulse aspects...the "on/offs" needed. For starters, you want a WINDOW comparator. There's a difference in that a normal comparator will output a gate when an inputted signal rises above a given threshold. All well and good, but you want the window comparator because it's got several possible outputs from that single inputted signal. So you can set one of these up to output a gate for "under" the lowest threshold, "between" for when the CV value is between the upper and lower thresholds (the "window"), and "above" the top threshold. Input a sine wave, and you get a repeating pattern of gates. But input something that's got more randomness, and you'll get some elaborate gate patterning...potentially nonrepeating, if you prod the LFO in use toward that.

And then, this is where Logic enters the fray.

Once you've got all of these various derived CV and gate behaviors going, you can then use the modules in this that output gates to activate some Boolean gates by letting the gates "interfere" with each other via the Boolean logic. If you want long, sustained gates, then use some OR gates which will output a gate if both inputs are hot. Shorter? Try some NOR logic, which outputs when no gate signals are present, or AND, which outputs gates only when both Boolean gate inputs are hot. This can be as simple or as elaborate as you like...and believe me, it can be DAMNED elaborate! But by using those gates to activate some other switches, plus recombining those results with MORE logic, you can arrive at a result that can seem almost as if there's human input going on. It all depends on how crazy you make a control subsystem of this sort.


@Lugia

Very helpful and very welcome explanation and suggestions. This will help re-thinking not only the thread openers build but also my case setup for more logic functionality and trying out logic experiments.

Thank you a lot!!


@Lugia, thanks for that detailed and interesting breakdown re: making derived counterpoint.

I'm following a bunch of what you laid out, but there are parts I'm not able to envision, mostly around creating & controlling the contrapuntal pitch control. HERE is how I would do it based on what I know today:

Step 1: create a "model" sequence of pitch and timing information (as possible using most sequencers, including Vector). Here the nomenclature I'm using is the "model" is the primary line; the "counterpoint voice" is derived from or fit to the "model." Basically Hindemith's terminology from his spectacular books, but a bit more vernacular.

Step 2: create multiple counterpoint voices that can later be selected from or switched, with substeps as follow

2a contrary motion: the contrary motion counterpoint can be derived from the INVERSION of the model. Scaling, DC offset, and quantization are applied to move this voice to the desired range (above or below the model), constrain its movement to an acceptable pitch max / min, and quantize the results within a PC set complementing the active "model" note (and driven by Intellijel Scale's shift function)

2b oblique (held) motion: uses a sample and hold function to maintain the pitch level of the prior actual counterpoint voice. Quantized the same as 2a above

2c similar motion: is derived from the actual model pitch values (since they move in the same direction). Scaling, DC offset, and quantization can be applied in manners similar to 2a above

Step 3: psuedo-random selection of the counterpoint pitch information (2a,2b,2c above). Route the total gate information (logical "or") to be used for contrapuntal rhythms into a dual Bernouli gate like Branches. Use top gate as "contrary vs. other motion selector" and set at say 50%. Chain the "other motion" output from BernouliA to the input of BernouliB and split that to "oblique vs similar motion" and set the oblique side to 60% and the similar side to 40%. That would give a total weighting from the 3 Bernouli gate outputs as 50% contrary, 30% oblique, 20% similar.

Step 4: here's where I start getting into territory I really don't have a grasp of yet. Take the gate results from Step 3 and route them to what? IMO it needs to some type of "triggered gate" with at least 3 channels, such that if it receives a trigger on channel 1, it opens a gate and holds it open until a trigger is received on a different channel. I don't yet know of any modules that do this type of thing. Any ideas here folks?

Step 5: the pitch info from steps 2a,2b,2c and the three-channel gate on/off info from step 4 would go into a multi-channel summing VCA. I think Intellijel Quad VCA would be fine for this. The 3 pieces of pitch info (2a,2b,2c) enter the VCA and are turned on/off by the 3-channel gate info from step 4. The summing VCA sums the results and outputs A SINGLE CONTINUOUS PITCH VALUE which can be used to drive the counterpoint voice's pitch.

Voila! Those steps 1-5, if implemented adequately, would yield psuedo-random counterpoint pitch information.

Here are the issues I see with this signal chain:
1) I don't have a candidate module ID'd for step 4
2) it seems this approach might require 3 copies of Scales, which seems somewhat wasteful of $s and HP if not absolutely required
3) I'm thinking there should be a more efficient way to design this control scheme, but I haven't ID'd it yet, above is the best I can spell out so far

In fairness, this is a "someday" patch for future IRL, not a tomorrow patch. BUT with the Ladik store seemingly open again, it will be possible (and not so costly in $s or HP) for me to add some key logic modules I'm missing. AND as I'm super interested in advancing my working command of compositional control schemes in modular and their DAW-based equivalents, I want to press ahead on this and related challenges, even if the results are only "paper solutions" (not IRL) for the time being.

Comments? Questions? Thanks all!


You missed one contrapuntal aspect: canonic polyphony. This is easy, though...using a shift register (something like, say, Intellijel's Shifty) and some adept clocking mojo, you can easily offset a melodic line canonically by whatever amount of clock pulses you desire, depending on what you have on hand for clock pulse tampering. It's like the 2b example...but really is more of a "2d" since you can control the temporal shift and therefore the contrapuntal behavior.

There's a lot to play with in your post there...lemme think about the #4 issue for a bit...


Lol, you're right about "canonic." I never write in canon so I don't often think of this. But it's worth remembering... and maybe trying my hand at some canon now and again. And more broadly, sequence offset, delay, temporal divide / multiply, retrigger, invert, retrograde -- all those and more to do with "sequencing sequencers" is in my queue of items to study further.

Speaking of canon and other complex counterpoint, it reminds me of a few years back, trying reading Taneyev's "Convertible Counterpoint in the Strict Style." Barf! I will tolerate a lot of weird and thorny musical / theoretical writing, but that was pressing too far for me. Maybe I should return to that book as it might have more interest / implications now that I'm into modular and trying to push my game on compositional control schemes.

Regarding #4 above, maybe I'm making too much of having a continuous pitch signal available for the counterpoint voice. Maybe it would be fine to just use the rhythmic-value gates to drive the presentation of pitch information (e.g. substitute the rhythmic gates for step 4 above). In other words, a non-continuous pitch signal would be workable too, so long as the pitch information is available during all "note on" time spans.


Yeah, we learned counterpoint from a modern translation of the J.J. Fux classic "Gradus ad Parnassum". Old as dirt...but they did get the rules right.

Actually, that "sustained pitch" aspect is yet another form of contrapuntal structure: pedal point. This goes back to the Renaissance, really...you just put down a single pitch (bass tends to work well) and work out over the top. Which, of course, gives me a real chuckle whenever I run into someone who thinks they've discovered some hot new drone technique. John Dunstable would tend to disagree about that "new" part...or he would, if he hadn't been dead for over five centuries. But that method definitely fits as well...after all, Bach's Prelude and Fugue in c# minor wouldn't have that eerie climax without the pedal point breakdowns toward the prelude's end.

One other interesting point about how Renaissance music interfaces with electronic music: a LOT of the post-WWII European composers (and a few pre-WWII ones, such as Webern) were all over music from that period. For example, Stockhausen's early works have the same sense of linear space as you'd find in early Renaissance vocal music, despite the different sonic palette. And then there's the whole issue of the St. Mark's School composers and their influence, several hundred years on, of how spatialization figures into a composition.


@nickgreenberg Regarding your #4, I think I have a solution, at least for 2 trigger inputs. You're going to need two sequential switches.

The second one will be your gate generator. Wire the out to wherever you need it to go, leave the first input disconnected, and send a constant +5v into the second one. The trigger in will be the output of the other switch. Initially the gate is low, when the trigger arrives it goes high, the next trigger makes it low again, and so on.

The first one will do the switching logic. Put you two trigger channels into the two inputs, A and B. The output will be multed, once to trigger the other switch, and once to the trigger of this switch. Initially the switch passes input A to the output, and input B is ignored. When a trigger arrives on A the gate is turned on by the second switch, and the first switch also advances so it is now listening to trigger B. Now when a trigger arrives on B all the same stuff happens in reverse.

I'm sure there are better ways to do this, but this ought to work. (I'm not really clear what you had in mind for the third trigger but you may be able to adapt this scheme.)

OTOH if your triggers were gates instead you could probably do the job with some Boolean logic.


@the-erc, thanks for the technical ideas above. Yes, some switching + logic may work. I've also been considering if some combination of latching or latching switches plus logic would work. All told, I probably have to just mock up some draft patches IRL (when possible module-wise) or on VCVrack and test what I can get to actually work. Part of it is getting clear on the logic / signal aspects of it, which I could maybe work out with pen & paper (& beer & cats).

@Lugia, yes, the little Fux book is alongside a few prized others in the counterpoint section of my music library. I hadn't really thought about pedal point seriously for a while as it is not an obvious fit with my focus genres. But yes, not to be ignored. And I love it in the Bach and Hindemith organ works.... BTW, any other technical ideas / responses to my longer ("step 1-5") post above? I know you a day or two ago said you were mulling it over. Your ideas & draft rigs are always interesting food for thought.

Thanks folks!!!


Actually, the_erc managed to nail the #4 solution...but I'm still puzzling over what a rig like this should wind up having and how it should be configured. Not a simple task, to be sure...give me several days, and let's see what I can toss out.


I like where you’re going with this—especially with the Vector.

I think the Recombination Engine takes a really interesting approach—the waveforms on the scope are gorgeous—but in the end I think I'd got with an Instruō Cs-L to expand the palette of synthesis approaches. IMHO the Cs-L is even more versatile with its two oscillators with different cores, two different PWM circuits, two different wavefolders, and a VCA that can all be used independently, but they’re configured in just the right way to multiply their functionality many times over with hard and soft sync, ring mod, FM, etc. I expect it'd also make the FLD6 redundant.

With the 6hp I'd save I could add a Select 2 from Joranalogue if I wanted some audio rate switching like the Recombination Engine's "scissor" function. I could also add a different third oscillator like an MCO from ALM, or maybe a characterful filter like the Cinnamon from Bastl.

Also, if I had the Vector sequencer at the center of a rack this size, I’d definitely think hard about adding the Jack Expander to get the most out of it. I might also slide the Vector to the left side of the case to increase access to the big knob on the left side of the module that does so much of the work.

Lastly, for me the mixer/VCA situation seems a little disjunct with the Doepfer mixers and Quad VCA. Mixers with built-in VCAs can work double duty. Maybe look at good old Veils, the Joranalogue Mix 3, or ALT from Nano. But for a performance rack I'd start with the Xaoc Praga. It's a little larger but deceptively capable. It's actually got 8 ins (4 channels + 4 returns), 8 outs (2 main, 2 sends, and one on each channel), 4 VCAs, 4 stereo panners under CV control, switchable curves, and performable mutes.


Thanks @Roaring_Butterfly I will keep those suggestions in mind!

I see this less as a "forever" rig then as a mobile rig with a solid core to it. That is to say, I plan on keeping 80-90% of the design somewhat stable over time, and just subbing in/out a module when there's one I want to learn in depth. So yes, the OSC2 is not the permanent big OSC, and something more like C-sl may very well take its spot.

I should take a closer look at the mixer/VCA situation as you suggested. My intention with the mixers was to do some parallel voicing chains plus some panning for stereo. But maybe there's a more efficient setup to do that than the current above.

Thanks for the ideas & comments!


You're very welcome @nickgreenberg.

Conceptually, for the mixer/VCA thing I was thinking about using the 20hp Praga in place of the Quad VCA and A-138s. You'd still have 8 ins and 8 outs with 4 VCAs (with boost), but it'd be more integrated and you'd add CV stereo panning and mute buttons which would get used constantly in performance. (I personally can't live without VC stereo panning.)

Similarly, the Joranalogue Mix 3 would do much of the same mixing as the A138n but you'd be adding a VCA on each mixer channel, and the LEDs and layout on the Mix 3 make it better for performance. (Perhaps you could use a WK1 or WK2 from LPZW in place of Links to free up 2hp.)