Module ideas

Good luck, every time I’ve tried to get clever with it I end up having to edit autosave to remove it. Let us know how you get on?

1 Like

I thought about these while trying to build an entry for the latest vcp challenge (a fixed size rack). They are definitely hacky to do but anyways…

Border control
a thin blank module you can place at the “end” of your rack that doesn’t let other modules push it out the way when dragging with ctrl/cmd.

Cable optmizer
when activated it tries to come up with an arrangement for all present modules that takes the least amount of cables (in terms of cable length) with the current patching, and moves everything accordingly.

2 Likes

Cable optimizer is an n-p complete CS problem, I think. i.e. it will take a long time to get an answer, or will be very difficult to write.

yes, I understand. it is why I’ve put it here instead of just attempting it. It’s above me to do this properly, although it might not need to find the best possible configuration, to be interesting. even just bruteforcing random shuffles, while keeping some lock on “good enough” groups could yield something, not sure. Maybe machine learning for the rescue?

Heuristics are pretty straightforward though. You can define an energy function and find a possible global minimum using any high-dimensional simulated annealing solver. That sounds like a Rack feature (in “Edit > Optimize module positions”) though rather than a module.

2 Likes

If you don’t mind getting stuck in a local minimum sometimes :wink: My “hammer” is branch and bound. Maybe 20 years ago I remember they had gotten up to 160 points in the traveling salesman problem using branch and bound.

I didn’t dare to suggest it as such since it seems kinda silly, especially if a few changed cables could give very different answers, which I’m guessing could be the case. Also there are some edge cases that ruin the generality in a way, for example noone would want their audio interface in the middle even if it helps the cable length and so on.

Annealing is very interesting though, might be a good start for some weird quantizer module as well.

1 Like

I have finished this module @Vortico, if you or anyone else wants to try it, it’s in my master branch and will be in the next version of Impromptu, which should be submitted to the library very soon. Any suggestions are welcome, in case I forgot something obvious.

Here it is splitting a Cmaj7 chord, for illustrative purposes :wink:

4 Likes

I suggest the additional split CV outputs because:

Or am I missing the point that this is for polyhonic or gate-only use excusively?

Awesome! That looks like it works great, and I like the switchable note name vs. voltages.

2 Likes

Yeah, I think that what you are describing is another use case, and I’m not sure I want to go there with this design, since it would require some S&H, and it looks to be another function entirely. In the mono case, I would say that the proposed version just behaves like a simple gate comparator/filter of sorts.

1 Like

What about switching between what to output, the gates or the cv, that way you could use two in case you needed this.

The cv mode is almost the same loop as the gate mode but instead of the 2 ouputs setting lines there’s this

if(inGate > 1.0f){
  outputs[isHigh ? HIGH_OUTPUT : LOW_OUTPUT].setVoltage(inputs[CV_INPUT].getVoltage(c), c);
}

seems to work, but I get it if you don’t want to clutter the module, although there is space around the volts/notes switch :stuck_out_tongue:

Hardware CV Multiplex

I just got silent way and I was wondering if it would be possible to transmit multiple channels of CV through one channel of an audio interface using some type of multiplexing. Sort of hardware vcv polyphony.

There are some Expert Sleepers modules for Rack which do this, but you need also the hardware modules like the ESX-8CV.

There is the “Range” from RJ and I’m using that to limit a note point in the keyboard.

Basically the V/Oct from a CV Gate goes to a Range module with -1.2 and -4.1 as IN values. That makes it so a gate activates only past a low C# note.

I’m basically trying to set keyoboard ranges to my project sections. I’m working on a playable realtime chariots of fire clone project and I need specific keyboard notes for specific things, one is to trigger a downwards bells arpeggio. That I solved by using the Range module and settng so I can play it past a really high C#

I’m using some Kontakt Instanecs, one for a Timpani and another for the Grand Piano. All nicely layered with poly 3 slightly drifting saw oscs for the brass.(Controlled by USB breath controller) 16 track mixer, fx buses and all the shebang I can put in one project.

I have a FM synth that recreates a high note Vangelis likes to use as closure, and I need that synth playing only and only on a specific low A# note. So far with the range I wasn’t succesful. No idea how to make it so is not only just a keyboard split, and rather a specific range, in this case a “one note range”

Any suggesitons? I checked the CV-Gate module but it seems to get gate data and send to my MIDI device which makes no sense to me for this case. Maybe I’m missing something.

Thats what I just got. But I was thinking it would be interesting to try to pass multiple channels of cv through one audio input. The expert sleepers Ac encoder module works like an am radio, where the cv multiplied with a carrier. So shouldn’t it be possible to have several carriers and several signals, all over one wire?

What’s the point of going through that when you can use @marc_boule’s upcoming Impromptu Part module? For multiple ranges, simply chain multiple Part modules to obtain three ranges. The middle range could be a single note wide for example.

Remember, this thread is for more fleshed-out module designs. For example, you haven’t specified what multiplexing protocol to use, or what Eurorack module to use to demultiplex the signal.

1 Like

Yes, this is exactly how the ESX-8CV hardware module works, it is essentially a demultiplexer for 8 CV signals. Using an ES-5 you can transport up to 24 CV „channels“ on one audio channel.

1 Like

Oh really? I will check it out! Thanks!