Module ideas

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.

11 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?

8 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).

4 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.

4 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.

4 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

EMILE

Image to sound. Load a png via the menu and EMILE reads the picture as a spectrogram. Low frequencies are at the bottom of the picture.

3 Likes

If I understand this right, my DHE-Modules Func 6 module might be able to help… up to a point. If you send an input signal to its first channel, then configure each channel to multiply by 2, you get a 64x (i.e. 2^6) signal from the last channel.

That said, if all you want is a signal boost, I can envision a module that would do that with a lot less width than Func 6. An input port, an output port, a knob, and maybe a switch to select the scale of the knob (10, 100, 1000, whatever scales would be useful).

What scales did you have in mind?

you’re welcome to use gain feature in right click menu of each track on MindMeld mixer, super handy

5 Likes

Cirklon emulation: Would be fun.

3 Likes

Thanks.

I have a Word document with hundreds of VCV module ideas…here’s a few.

Transcritical Bifurcator:

  • A module that uses transcritical bifurcation to animate waveforms. You would just need an input, output, Range knob with CV in, and Rate knob with CV in, so I figure you could probably stack two identical bifurcators on top of one another in one skinny module.

Variable Fractal Shaper:

  • A module that applies fractals to incoming waveforms - meant to be used with multiple VFSs in sequence.
  • 5 knobs, each with CV inputs: Amount, Width, Offset, Skew, and Lacunarity (determines how many instances of the waveform are skipped over in the fractalizing process)
  • In/Out

Rotating Slope Comparator:

  • A slope comparator with a 360-degree rotatable angle of comparison
  • Angle (0-360) knob with CV in
  • Signal In and External Angle inputs
  • 5 outputs: Match Trig, Match Gate, Above Gate, Below Gate, Difference Envelope (built-in envelope follower that follows the difference between the angle of the input signal and the internal or external angle)

Advanced Syncing Suite:

  • A module that collects all the various types of waveform sync (most of which almost never get used) under one roof.
  • 2 halves: Active (top) and Passive (bottom).
  • Active half: 2 inputs (X and Y), Adjustment knob with CV in, selector between Variable Sync (Adj knob = soft->hard), Fixed Threshold Sync (Adj knob = Threshold), Relative Threshold Sync (Adj kob = Threshold), and Reset Inhibit Sync (Adj knob = Threshold); selector also has a CV in for automated cycling, with Slew knob (+CV in) for continuous morphing between types; Cycle Direction toggle (up/down/random), out
  • Passive half: 2 inputs (X and Y; normalled to Active inputs when left open), selector (with trig in + Slew + Cycle Direction) between Hard Sync, Reversing Sync, Overlap Sync, Phase Advance Sync, and Low Threshold Sync

Uncommon Binary Function Generator:

  • 4 sections, each with 2 inputs (X and Y) and 1 output: Amplitude Modulation (knob goes to 200%), Convolution, Cross-Correlation, and Average

Morphing Triangle Oscillator.

  • Triangle core with 3 waveshaping knobs: Skew, Step, and Diet (all with CV in)
  • Skew moves the peak left or right, creating a saw when all the way left and a reverse saw when all the way right
  • Step puts an S&H on the wave, going from a smooth slide to a staircase to a 50/50 pulse
  • Diet changes the curve of both slopes from linear (as in a normal triangle) to exponential all the way left and reverse exponential all the way right)
  • Octave and Fine tuning knobs + FM Amount knob in a row below the 3 morph knobs
  • All 6 knobs have CV inputs (and possibly CV attenuverters)
  • 1v/oct and Sync inputs
  • Output

Quadrature Trapezoid Oscillator (like the Doepfer A-110-6):

  • 4 knobs (Exponential Tune, Exponential FM, Linear Frequency Control, Linear FM)
  • 1 VCO/LFO selector
  • 4 inputs (2x 1v/oct, LFM in, XFM in)
  • 8 outputs (trapezoid sine, trapezoid cosine, triangle sine, triangle cosine, rectangle sine, rectangle cosine, saw sine, saw cosine)

Variable Filter Bank:

  • A fixed filter bank with 8 bands, but each band has adjustable values
  • Default settings for the bands are Moog 907/A values (250, 350, 700, 1k, 1.4k, 2k, 2.8k)
  • 8 Band Level knobs (typical filter bank panel)
  • 8 Band Value knobs
  • LP and HP knobs
  • “Snap” button snaps each band to the nearest 100 Hz
  • All 16 band knobs have associated CV inputs

Voltage-Controlled Synthacon Filter:

  • 3 inputs (LP, HP, BP), each with attenuation knob for incoming level
  • Frequency and Resonance knobs
  • Volume Compensation on/off switch
  • Diode/Vactrol type selector (possibly)
  • CV inputs for Freq, Res, and all 3 Level knobs

Seven-Stage Tracking Envelope:

  • EG with 7 stages: DAHDSHR (each with its own slider)
  • Rate knob that adjusts the total time scale of the envelope
  • 3 contour knobs (exponential->linear->reverse exponential) for attack, decay, and release
  • Each stage has an associated CV input and attenuverter
  • Vactrol Response knob (if possible)
  • Sustain/Hold selector (when in Hold mode the Sustain slider controls time, not level (matching the other 2 Hold stages))
  • Mode selector (one-shot, two-shot, loop, ping-pong, random pong)
  • Retrig button and input
  • CV inputs for Rate, all 3 contour knobs, Response knob
  • Gate input
  • 10 outputs: 7 End of Stage outputs, Out, Inverse Out, Burst Out (triggers on every stage)

Three Stage Envelope Matrix:

  • 3x3 matrix of ASR/AHR envelopes
  • knobs for each of the 9 envelope stages (labelled 1-9) in 3x3 grid
  • Global Contour knobs for attack and release
  • Global Sustain/Hold selector
  • CV inputs for all 9 stages
  • 16 outputs for every possible combination of straight lines in the matrix, plus a Fugitive Envelope output that picks each stage at random

Voltage Controlled Pinball Machine (could also do the same thing with Pong, Breakout, or Tetris):

  • A playable pinball machine that generates voltages during play
  • Trigger inputs (and manual buttons) for the left and right bumpers (use with computer keyboard MIDI for manual control)
  • When the ball crashes out it is relaunched either by a manual button or an incoming trigger from the associated input
  • Left Bumper Trig Out
  • Right Bumper Trig Out
  • Bumper Gate Out (activates whenever either bumper is used; On/Off/Switch selector)
  • Circle Radius knob/slider (adjusts the size of the circle in the middle of the board; has associated CV input)
  • Circle Out (gate is high whenever the ball is over the circle)
  • Ball Envelope Out (envelope follower that tracks the ball and outputs its path on a 2D plane)
  • Ball Loss Out (activates whenever the ball crashes out; Trig/Gate selector)
  • Individual board object trig outputs (activate whenever the ball hits that object on the board)
  • Global Trig and Gate Outs (activates whenever the ball hits anything on the board)
12 Likes

MQTT-Client(s): depending on messages the client receives from the off-rack world it can trigger events, emit voltages etc. Turn your weather station, your home automation system etc. into a music generator. https://mqtt.org/

Maze: a maze generator and a somewhat stupid maze solver. Track the solvers movements and turn it into voltages.

2 Likes

A bit like this ?

More like what the bot in the clip does, then track x,y position, maybe angle of x,y vector, speed and turn it into voltages. https://www.youtube.com/watch?v=YqTaLI2camI