Module ideas

Post your module ideas here. Add as much detail as possible with examples, a summary of inputs, outputs, and parameters, “prior art” (previous similar modules for VCV Rack or hardware), and possible implementations. Make the name of each idea bold so others can easily reference your idea.

Saying “make <insert Eurorack module> for VCV Rack” isn’t an idea. Instead, post an original idea with lots of detail.

Feel free to reply to others’ ideas here, but if the discussion gets involved, a moderator will gladly move the posts to a new thread.

I’ll start a few of my own ideas.

  • Buffer queue module: A sampler that can play back while recording. After playing, the consumed audio is thrown away, just like a delay effect. Includes resampling for pitch/speed control. Has two GATE and two 1V/oct pitch inputs for both playback and recording, and a display with the current number of seconds in the buffer. A use case is to record your voice only when you’re speaking, while playing it back at a slower speed with all the speech gaps removed. Or, mess up a drum loop by using a random gate to start/stop both playback/recording.

  • Pitch-scaling module: A real-time pitch-scaling module using a high quality library or method, such as SoundTouch, Rubber Band, ZTX, or Elastique. Would have an audio input that accepts mono or poly signals, and a poly audio output. Then a poly 1V/oct pitch input to pitch-shift each audio channel relative to 0V.

  • Frequency dispersion processor: A module that delays audio based on its frequency. E.g. frequency f would be delayed by f*0.01s, so you’d hear lower frequencies before the higher ones come in. This is very common in physics like plasmas, lasers, and even acoustics, because all materials have a nonlinear dispersion relation, even sound traveling through air (although the effect is small). Could be implemented with FFTs and possibly wavelet analysis.

23 Likes

CV Controlled Routing Matrix

Something I would love to see would be a summing matrix, along the lines of the modules from Bogaudio or Strum, but with the ability to use a gate to close the matrix patch points.

General specs

  • 8 ins
  • 8 outs
  • Ability to patch any in to any out through a crosspoint select
  • CV gate control for each crosspoint to toggle state (if the crosspoint is closed, a gate opens it, if open, a gate closes it)
  • Input attenuators, CV controlled *Output attenuators, CV controlled

What I would like to be able to do is set up something of a matrix of modulation and/or audio sources and be able to use gates, sequences, or random generators to mix, munge, and combine these.

2 Likes

Reminder to choose a unique name for your idea and bold it so we can easily refer to it.

Oops, apologies. Edit made.

Polyphonic, Quantizing, Shift Register: A poly input with range and offset controls, a poly trigger input, key and scale controls, and a handful, perhaps 8, of poly outputs. Context menu to select number of poly channels. Triggers in each poly channel will force a shift of the associated channel in the poly register. Notes are quantized as they enter the top of each register.

3 Likes

Song oriented Speech Synth: A speech synth that allows the input of multiple lines of lyrics and the ability to edit how they are read (lengthening some words and shortening others). The actual quality of the speech synthesis matters less than the interface for the words but multiple types of synthesis would be ideal.

6 Likes

ANS: Scan an image and turn it into sound.

https://warmplace.ru/soft/ans/

http://arss.sourceforge.net/index.shtml

L-System: Turn Lindemayer rule sets into audio. Many 3D examples and only a few for music, mostly academic ones.

Sorry, short, have to run,

5 Likes

re ANS: Bidoo Garcon is an implementation of this idea.

3 Likes

Poly RanQan

a 4 voice polyphonic randomized and quantized sequence generator with just 1 input for the base clock.

clock divider and multiplier for each sequence, a possibility to to set the outs to chords. the range of each sequence and the octave of it should be controllable by an attenuverter/knob.

4 outs for 1V/oct and 4 corresponding trigger/gate outs

5 Likes

Hodgkin-Huxley Envelope Generator

An envelope generator that simulates action potential propagation in a squid axon using the Hodgkin-Huxley model. A gate or trigger input would be current (I) in the model. The envelope output would be voltage (V) in the model.

Inputs: Gate or trigger inputs (with an attenuverter).

Outputs: Envelope out(s).

Parameters: Capacitance, conductance, resting potential (with cv controls for each)

I think that this animated GIF explains why this idea would be cool:

What we see is the voltage (envelope) output with varying amplitudes of voltage (trigger or gate) input. Adjusting the capacitance, conductance, and resting potential parameters would adjust the properties and propagation of the waveform.

10 Likes

I second this one :slight_smile:

Spherical Harmonics synthesizer. The amplitude is determined either by the arg or modulus of the value of a user-specified combination of spherical harmonics, and you scan across the unit sphere in a user-specified fashion.

4 Likes

A signal booster module. audio in audio out, and a knob to adjust amount of signal boost. no coloration. no amp modeling. just bring the audio level up to where its usable in relation to other audio signals, often as gain staging before entering a mixer. currently the only way to do this is to clone a signal and mix the cloned signals together with something like Unity. i have been looking for one for a couple years now. i have asked my friends both users and devs and they havent seen one. its one of the most common questions that i get from new users. how does this module not exist?

7 Likes

A PureData bridge-type module, capable of opening and playing PD patches via the embeddable libpd library.

I was experimenting at something sort of it when VCV Rack was still at its 0.6 incarnation. Basically I heavily based my experiments on a indirect porting the ofxPd addon for openFrameworks by Dan Wilcox in the context of Rack, that is, consuming the libpd_wrapper API through an extension of the PdBase class in the context of the Rack module instance. I managed to have the audio stream buffer to work, and also to launch the native Tcl/Tk Gui to edit or manually banging/configuring the PD patch on the fly.

But that’s all, my code was simply a rudimentary step-on, and ultimately I’m really not as good at C++ to be able to finalize this kind of project, again the super-fast evolution of VCVRack to version 1++ :slight_smile: - and soon 2.0, I see :smiley: - together with some family problems and lack of spare time made me quit the fun coding.

That said, IMHO a few major issues in this project seem to be:

  • the cross-platform requisite (compilation and testing)
  • static linking of libpd in the delivered plugin
  • the necessity to access the native GUI
  • synchronization issues
  • real multi-instance support

With regards to the last point, it has to be said that it’s been in active development in the last year, it has not so long been already implemented in the libpd core code, and AFAIK is actively worked on with regards to related thread-safe issues, extended multi-hook support, and a definitive C++ wrapper implementation (there is lot of github activity in recent days).

3 Likes

Signal booster module. This is definitely needed. An example implementation would be a 4hp module with two columns of jacks, in and out. the out is just 10x the input. that way you can easily get 10x, 100x, 1000x gain. It’s weird that the easiest module to get a high amount of transparent gain is bogaudio LMTR.

3 Likes

Would Bark Clamp be any use to you? Does exactly this but does not go over 0dB. +48dB is its max but that could easily be changed with an update.

  • 8 step wavesequence oscillator : A 8 step wavesequence oscillator with 8 slots/step for import wavetables in wt or wave format.

    • Global inputs: Clock, Reset, V/Oct.

    • Slot inputs: CV = wavetable modulation/scan.

    • Slot knobs: Pitch= Octave -3/+3; semitones -12/+12. Env.= Attack; Decay, Release.

    • Global outputs: stereo out.

    • Global knob: Sequencer step range.

    • Global switch: Sequence Direction; usual directions include Random.

2 Likes

Had a quick look at it but it seems to be the opposite of what I mean. It generates an image based on an input signal. I may be very wrong though.

Regarding ANS, In its ‘simplest’ form it generates a sine wave osc. for each pixel with frequency depending of the y position and a amplitude based on density of the pixel (converted to linear gamma 16 bit gray-scale). Move the vertical scan-line in horizontal direction with a speed of n pixels per beat and m bpm as image width. As there are quite some ‘points’ missing for a full wave form the in between points can be interpolated linear or sinc or something more clever I don’t understand. Per step add the all the values for a single column.

To make it more interesting, vary the speed from the ‘recording’, time stretching. Don’t use a simple vertical a scanline but use a (bezier)spline drawn upon the image to sample the pixels and create a oscillator that way. Instead of sine wave oscillators use noise as ARSS optionally does (source is on the linked site).

L-systems ,in addition to the above, are a power full tool for explorations, mostly used in 3D graphics but it can be used for wave form creation, melody creation and even orchestrations. It all depends recursively replacing characters with strings and giving ‘value’ to characters once a string is made. One can crate branches, twigs, think polyphony or grow new roots, think instruments in an orchestra.

A classic tool in 3D is Lparser source is available on archive.org, the wikipedia has a good piece on L-systems.

Turtle audio should make sound but does not work for me.

http://algorithmicbotany.org/

http://algorithmicbotany.org/papers/score.icmc86.pdf

The Algorithmic Beaty of Plants-- Astirid Lindenmayer, Przemyslaw Prusinkiewicz

Lindenmayer Systems Impacts on Theoretical Computer Science, Computer Graphics, and Developmental Biology – Grzegorz Rozenberg, Arto Salomaa

EDIT: after a lot of diggin’ “Edna Dornblazer” made LMUSe and the pages and code still exist at https://www.oocities.org/hacad/lmuse/lmusetxt.html

https://www.oocities.org/athens/academy/8764/lmuse/lmuse.html

2 Likes

I think George meant Bidoo Emile, that loads a png as a spectrogram.

2 Likes