Giter Club home page Giter Club logo

sha-bang-modules's Introduction

Sha#Bang! Modules

A collection of innovative, probabilistic, generative, and rhythmically complex modules for VCVRack. Created by Jeremy Muller. If you enjoy using these modules and/or have made money with these, please consider sponsoring this project or giving a donation through PayPal. Huge shoutout to Andras Szabo for being the very first sponsor of Sha#Bang! Modules! Thank you ๐Ÿ™

Add these modules to VCVRack through the Rack library.

modulesall

Contents:

Video playlists:


Collider

Collider

A physical model of various of shakers and wind chimes (maracas, sleigh bells, bamboo chimes, metallic chimes, etc).

Watch the tutorial:

Collider_video

RIGHT-CLICK MENU:
  • Polyphony.
BUTTON:
  • SHAKE shakes the particles. Hold down to continuously shake.
INPUTS:
  • SHAKE gate controls the shake.
  • V/OCT center frequency of the particles.
  • SPREAD control voltage determines the amount of spread from the center frequency.
  • VEL control voltage for the initial shake energy.
  • PARTICLES control voltage for the number of particles. More particles = faster decay in system energy, less particles = slower decay.
KNOBS:
  • C center frequency of the particles in Hz.
  • SPREAD sets the amount of spread from the center frequency.
  • RND sets the amount of random frequencydeviation on each particle collision.
  • PARTICLES sets the number of particles. More particles = faster decay in system energy, less particles = slower decay.
OUTPUTS:
  • V/OCT outputs ยฑ5 volts.
  • GATE outputs pulses.
  • VEL outputs velocity of entire system.

Cosmosis

Cosmosis

A continuous sequencer based on constellations where time can move left->right, right->left, up->down, and down->up.

Click anywhere to add/drag new stars. To remove stars click/drag them out of the dark display area.

Watch the tutorial:

Cosmosis_video

RIGHT-CLICK MENU:
  • Polyphony.
BUTTONS:
  • PLAY starts the sequencer.
  • CLR removes all stars.
  • POS randomizes positions of stars.
  • RAD randomizes the radii of stars.
INPUTS:
  • PLAY trigger starts/stops the sequencer.
  • SPEED control voltage manipulates the current speed.
  • RESET trigger resets the current sequence position.
  • Root note input will accept V/OCT to set the root note.
  • POS accepts gate that triggers randomizing positions of stars.
  • RAD accepts gate that triggers randomizing radii of stars.
KNOBS:
  • SPEED tempo of sequencer.
  • PATT sets the constellation pattern.
  • Two knobs control the root note and the scale. The Messiaen modes are based on the wonderful French composer, Olivier Messiaen and his modes of limited transposition found in his book The Technique of My Musical Language.
  • Chords like MM7, Mm7, mm7, etc. are based on seventh chords.
  • OCT controls the octaves of individual sequencers.
  • MODE sets which direction time will traverse the stars.
SWITCH:
  • PITCH left side will take pitch from the radius of particles. The right side will take pitch based on the X or Y position (width or height respectively) in the display. If the MODE is set to either Blue or Red, in which case time travels down or up, pitch is taken from the horizontal position of the stars. The left switch is good if you'd like to generate randomness in the pitches, however, if you want more control over the pitch then select the right switch.
OUTPUTS:
  • GATES output pulses.
  • V/OCT outputs ยฑ5 volts.

Neutrinode

Neutrinode

A unique visual-based sequencer where time moves from the center of the 4 independent nodes out to the connected particles. Can generate interesting rhythmic textures and can be animated so that the textures change over time.

Click on nodes to position them. Click anywhere else to add/drag new particles. To remove particles click/drag them out of the dark display area.

Watch the tutorial:

Neutrinode_video

RIGHT-CLICK MENU:
  • Continuous play or one-shot mode (useful for synchronization). These options only affect the PLAY button/input.
  • Collisions are turned on or off for the nodes.
  • Polyphony.
BUTTONS:
  • PLAY turns on/off all nodes.
  • MOVE each node will randomly move around the dispay area.
  • CLR removes all particles.
  • ON turns on/off individual nodes.
INPUTS:
  • PLAY trigger starts/stops the generator.
  • BPM control voltage manipulates the current bpm.
  • MOVE trigger turns on/off the random movement of nodes.
  • Root note input will accept V/OCT to set the root note.
KNOBS:
  • BPM tempo of all nodes.
  • SPEED is the velocity of movement of nodes when MOVE is switched on.
  • Two knobs control the root note and the scale. The Messiaen modes are based on the wonderful French composer, Olivier Messiaen and his modes of limited transposition found in his book The Technique of My Musical Language.
  • Chords like MM7, Mm7, mm7, etc. are based on seventh chords.
  • OCT controls the octaves of individual nodes.
SWITCHES:
  • PITCH left side will take pitch from the radius of particles. The right side will take pitch based on the Y position (height) in the display. The left switch is good if you'd like to generate randomness in the pitches, however, if you want more control over the pitch then select the right switch.
OUTPUTS:
  • GATES and V/OCT output only from the corresponding node color.
  • ALL outputs all nodes.

โš ๏ธ There are a maximum of 16 particles (for 16 polyphonic channels) per node. However, when using the ALL outputs, there is potential to reach that maximum (16 x 4 = 64) in which case it does voice stealing.


Orbitones

Orbitones

Physics-based animated LFO with 4 independent attractors.

Click on the attractors to move position them where you want. Click anywhere else to add particles.

Watch the tutorial:

Orbitones_video

RIGHT-CLICK MENU:
  • Polyphony.
  • Particle trails:
    • off
    • white
    • red/blue shift (based on velocity of particles)
  • Particle boundaries:
    • on (particles are bound by the display area and will bounce off edges)
    • off (particles are able to leave the display area)
BUTTONS:
  • RMV removes one particle.
  • CLR clears all particles.
  • MOVE trigger turns on/off the random movement of attractors.
KNOBS:
  • ON turns on/off individual attractors.
  • G scales the individual attractors' gravity.
  • G (big knob) main gravity control for all attractors.
  • OFFSET offsets the voltage output.
INPUTS:
  • MOVE trigger turns on/off the random movement of attractors.
  • G takes a CV using this formula: G * 2V.
OUTPUTS:
  • MONO OUTS:
    • AVG average x/y voltage of all particles.
    • MAX maximum x/y voltage of all particles.
    • MIN minimum x/y voltage of all particles.
  • POLY OUTS:
    • X Y positions of particles correspond to ยฑ5 volts.
    • -X -Y opposite positions of particles correspond to ยฑ5 volts.
    • velX velY velocities of particles correspond to ยฑ5 volts.

Photron | Photron Panel | Photron Strip

Photron

Animated visualizers that uses color flocking based on the Craig Reynolds boids flocking algorithm.

Placing modules adjacent to each other will cause them to blend colors. PhotronPanel and PhotronStrip will work together, however Photron only will blend with another Photron.

Photron

RIGHT-CLICK MENU:
  • Processing rate (for those with slower CPUs). Keep in mind, if you slow the processing rate down, it'll help your CPU but the animation will also slow down.
  • Lissajous mode on or off.
  • Pattern select from a list of 8-bit retro characters and others.
  • Lock pattern lock the pattern or let it blend.
BUTTONS:
  • Waveform mode: lines, blocks, or off.
  • Background mode: color, black & white, or black.
KNOBS:
  • Purple knobs adjust the X and Y offset of the waveform(s).
  • Blue knobs adjust the X and Y scaling of the waveform(s).
INPUTS:
  • TOP 4 inputs (zero volts is default values):
    • CV controls the separation of colors between adjacent blocks. Higher voltage = more separation.
    • CV controls the alignment of block colors which is their rate of change. Higher voltage = more alignment and thus their color velocities will become the same.
    • CV controls the cohesion of block colors which is converging on a single color. Higher voltage = more cohesion and thus their colors will quickly become the same and Photron will look like one color.
    • V/OCT controls the target color for Photron. Blocks will drift towards the target color and hover around it. See the image below for corresponding notes & colors:
KEYBOARD SHORTCUTS:
  • D+Click draw with the mouse.

notes_spectrum

  • MIDDLE 2 inputs are the X and Y waveforms.

  • BOTTOM 3 inputs are triggers:

    • Waveform mode: lines, blocks, or off.
    • Background mode: color, black & white, or black.
    • Draw the pixelated pattern.

Photron Panel & Photron Strip

PhotronPanelStrip

NEW! Photron Panel is now resizable

  • Initialize will set the colors top to bottom: Purple, Blue, Aqua, and Red.
  • Randomize will randomize all colors.
RIGHT-CLICK MENU:
  • Processing rate (for those with slower CPUs). Keep in mind, if you slow the processing rate down, it'll help your CPU but the animation will also slow down.
  • Mode color, black & white, solid color, or strip color.
  • Light (only effects solid color or strip color mode) one slider to set the pulse speed - in Hz, 0 Hz will be fully on - the second slider will set the hue 0 to 360 degrees.
  • Dark Room Blobs on or off.
KEYBOARD SHORTCUTS:
  • D+Click draw on Photron Panel.

Polyrhythm Clock

PolyrhythmClock

A clock featuring three layers of embedded rhythms. It's easy to multiply and/or divide the clock with virtually any rhythm you want using this clock.

Watch the tutorial:

PolyrhythmClock_video

RIGHT-CLICK MENU:
  • External Clock Mode:
    • CV controls bpm (beats per minute) based on the input voltage using this formula: 120 * 2V.
    • 2, 4, 8, 12, 24 PPQN controls bpm based on the number pulses per quarter note.
  • If the mode is set to any of the PPQN modes, the clock will turn on automatically when it receives a pulse. It will also turn off automatically after it times out from not receiving any more pulses.
INPUT:
  • RST resets the clock phases.
  • EXT is an external clock to control the PolyrhythmClock determined by the External Clock Mode.
  • 0v-2v map to 0-24 for the inputs under each knob.
BUTTON:
  • on or off
KNOBS:
  • large main knob at the top controls the bpm (beats per minute).
  • left-side knobs within each tuplet controls the numerator part of the fraction (or ratio).
  • right-side knobs within each tuplet controls the denominator part of the fraction (or ratio).
  • middle solid-color knobs within each tuplet controls the probability of outputting a pulse.
OUTPUTS:
  • first one outputs the current bpm.
  • TUPLET 1 outputs the ratio compared to the bpm.
  • TUPLET 2 outputs the ratio compared to TUPLET 1.
  • TUPLET 3 outputs the ratio compared to TUPLET 2.

Qubit Crusher

QubitCrusher

A bit crusher and downsampler using fractional rates with the ability to modulate bit rate & sample rate, or randomly trigger new bit rates & sample rates.

INPUTS:
  • IN input signal to be processed.
  • TRGs both inputs accept gates that trigger random bit rates and/or sample rates.
  • Inputs connected to MOD knob accept modulation sources (i.e. LFO).
KNOBS:
  • BITS sets bit rate. This is overridden by TRG input.
  • SAMP sets sample rate. This is overriden by TRG input.
  • MODs set the amount of modulation from modulation signal.
OUTPUT:
  • OUT output signal.

RandGates

RandGates

Randomly outputs one of the 4 inputs.

Watch the tutorial:

RandGates_video

INPUTS:
  • TRG randomizes the output
  • INS (purple, blue, aqua, red) are any type of input, i.e. gates or ยฑ5 volts.
KNOB:
  • Weight knob: Gives probability control of the probability to the chosen input. All the way to the right is uniform randomness.
  • Weight probability knob: controls the probability of the chosen input.
OUTPUT:
  • OUT outputs either the randomly chosen input as either a pulse or ยฑ5 volts.

RandRoute

RandRoute

Randomly routes one inputs to 4 possible outputs.

INPUTS:
  • TRG randomizes the output
  • IN any type of input, i.e. gates or ยฑ5 volts.
KNOB:
  • Weight knob: Gives probability control of the probability to the chosen output. All the way to the right is uniform randomness.
  • Weight probability knob: controls the probability of the chosen output.
OUTPUT:
  • OUTS (purple, blue, aqua, red) randomly chosen to output the input as either a pulse or ยฑ5 volts. If no cable is connected to TRG then the IN will act as the trigger and output acts like a multinoulli gate only outputting 10 volts or 0 volts.

StochSeq

StochSeq

A sequencer that uses stochastic (probabilistic) patterns. The outputs can be used as gates (triggered based on probability) or as ยฑ5 volts (probability is converted to voltage).

Click and/or drag to draw your own patterns! Also, click on the different memory banks to recall/store the slider information.

Watch the tutorial:

StochSeq_video

RIGHT-CLICK MENU:
  • Gate mode: gates or triggers.
  • V/OCT mode: Independent or Sample and Hold (only changes based on whether gate triggers).
  • Volt Offset: ยฑ5V or +10V
  • Show or hide slider percentages.
  • Enable keyboard shortcuts.
KEYBOARD SHORTCUTS:
  • Ctrl+Left shifts sliders to the left.
  • Ctrl+Right shifts sliders to the right.
  • Ctrl+Up shifts sliders up by 5%.
  • Ctrl+Down shifts sliders down by 5%.
INPUTS:
  • CLK controls timing.
  • RST resets sequence to beginning of timeline.
  • MEM CV input to switch between memory banks. A single 1V/oct can control which memory bank to select.
KNOBS:
  • LEN length of the sequence.
  • PATT selects from preset patterns.
  • SCALE percentage of the pitch based on the V/OCT output and Volt Offset.
  • Two knobs control the root note and the scale. The Messiaen modes are based on the wonderful French composer, Olivier Messiaen and his modes of limited transposition found in his book The Technique of My Musical Language.
  • Chords like MM7, Mm7, mm7, etc. are based on seventh chords.
BUTTONS:
  • RND randomizes all probabilities.
  • INV inverts all probabilities.
  • DIM cuts the current pattern in half and repeats. Keep clicking this button to continue to diminish the pattern.
OUTPUTS:
  • GATE outputs a pulse based on the probability of the current sequence position. (i.e. a slider at 50% will only trigger a pulse half of the time)
  • V/OCT outputs pitch based on the slider position and SPREAD knob, regardless of probability of the event.
  • INV outputs invert of V/OCT.
  • GATES outputs correspond to each position in the sequence.
  • NOT outputs only when GATE isn't triggered.

StochSeq4

StochSeq4

A sequencer that uses four independent stochastic (probabilistic) patterns. The outputs can be used as gates (triggered based on probability) or as ยฑ5 volts (probability is converted to voltage).

Click and/or drag to draw your own patterns!

Watch the tutorial:

StochSeq4_video

RIGHT-CLICK MENU:
  • MCLK override: if MCLK has a connected cable then it will disable all individual clocks.
  • Gate mode: gates or triggers.
  • V/OCT mode: Independent or Sample and Hold (only changes based on whether gate triggers).
  • Volt Offset: ยฑ5V or +10V
  • Show or hide slider percentages.
  • Enable keyboard shortcuts.
KEYBOARD SHORTCUTS:
  • Ctrl+C copies focused pattern and length.
  • Ctrl+V pastes the copied pattern and length to the focused one.
  • Ctrl+Enter focuses and highlights a single pattern.
  • Ctrl+Left shifts focused sliders to the left.
  • Ctrl+Right shifts focused sliders to the right.
  • Ctrl+Up shifts focused sliders up by 5%.
  • Ctrl+Down shifts focused sliders down by 5%.
INPUTS:
  • MCLK controls timing of all patterns (overrides all individual clocks).
  • CLK controls timing of individual patterns.
  • RST resets sequences to beginning of timeline.
  • RND gate input randomizes all probabilities.
  • INV gate input inverts all probabilities.
  • DIM gate input cuts the current pattern in half and repeats.
KNOBS:
  • LEN length of the individual sequence.
  • PATT selects from preset patterns.
  • SCALE percentage of the pitch based on the V/OCT output and Volt Offset.
  • Two knobs control the root note and the scale just like StochSeq.
BUTTONS:
  • Resets sequences to beginning of timeline.
  • RND randomizes all probabilities.
  • INV inverts all probabilities.
  • DIM cuts the current pattern in half and repeats. Keep clicking this button to continue to diminish the pattern.
OUTPUTS:
  • GATE outputs a pulse based on the probability of the current individual sequence position. (i.e. a slider at 50% will only trigger a pulse half of the time)
  • NOT outputs only when GATE isn't triggered.
  • V/OCT outputs pitch based on the slider position and SPREAD knob, regardless of probability of the event.
  • INV outputs invert of V/OCT.
  • OR outputs pulse when at least one of the gates is on.
  • XOR outputs pulse when ONLY one gate is on.

StochSeq4X

StochSeq4X

An expander for the StochSeq4. This module must be adjacent to the right side of StochSeq4.

KNOB:
  • The main knob at the top controls which sequence you want to expand from StochSeq4 (Purple, Blue, Aqua, or Red). Additionally, the final option is to have all four columns output the first 8 steps from all sequences. If the All option is selected then each column of the outputs go from 1-8.
BUTTONS:
  • The buttons under each column toggle whether they are gates or not gates.
OUTPUTS:
  • All 32 (or first 8) gate outputs from StochSeq4.

StochSeqGrid

StochSeqGrid

A rhythmic sequencer that uses four independent stochastic (probabilistic) patterns. Each cell contains rhythmic subdivisions that are triggered based on probability.

Inspired by JW-Modules GridSeq ๐Ÿ™‚

Watch the tutorial:

StochSeqGrid_video

RIGHT-CLICK MENU:
  • Gate mode: gates or triggers.
  • CV mode: independent or sample & hold (based on whether the cell was triggered or not).
  • Mouse drag: horizontal or vertical controls the increase/decrease of subdivisions within each cell.
  • External Clock Mode:
    • CV controls bpm (beats per minute) based on the input voltage using this formula: 120 * 2V.
    • 2, 4, 8, 12, 24 PPQN controls bpm based on the number pulses per quarter note.
  • If the mode is set to any of the PPQN modes, the clock will turn on automatically when it receives a pulse. It will also turn off automatically after it times out from not receiving any more pulses.
  • Display: blooms or circles (doesn't affect the module other than visual aesthetic).
MOUSE/KEYBOARD CONTROLS:
  • Click a cell to increase subdivisions.
  • Shift+Click a cell to double its subdivisions (up to 16).
  • Click+Drag in a cell to increase/decrease subdivisions.
  • Ctrl+Click on a subdivision to toggle.
  • Ctrl+Click off of a subdivision to toggle all of them on in current cell.
  • Ctrl+Click+Drag on multiple subdivisions to toggle.
INPUTS:
  • RST resets sequences to beginning of timeline.
  • EXT is an external clock to control the StochSeqGrid determined by the External Clock Mode.
PATHS:
  • length length of the individual sequences.
  • path toggles the type of path
    • default will traverse the grid based on the length small color indicators arrows just outside the grid display.
    • random will randomly pick a cell based on the length range.
    • random walk will ignore the length and only pick cells that are adjacent to the current cell the sequencer is in.
RATES:
  • left-side knobs control the numerator part of the fraction (or ratio) of the corresponding sequence based on the global tempo.
  • right-side knobs control the denominator part of the fraction (or ratio) of the corresponding sequence based on the global tempo.
  • buttons toggle the corresponding sequence on/off.
MAIN BUTTONS & KNOBS:
  • Run toggle the sequencer on/off.
  • RST resets sequences to beginning of timeline.
  • Tempo controls the global tempo of the StochSeqGrid.
CELL KNOBS:
  • Cell Probability controls the overall probability of whether or not the cell will happen.
  • Cell CV controls the volts for the CV outputs.
  • Rhythm Probability controls the probability of whether or not the subdivision will happen. If the cell is triggered but the subdivision isn't, the output will be a single rhythmic gate/trigger.
OUTPUTS:
  • GATES outputs a pulse based on the probability of the current individual sequence position. (i.e. a cell at 50% will only trigger a pulse half of the time)
  • CV outputs voltage based on the Cell CV position and independent/S&H mode.

Talea

Talea

An arpeggiator with polyrhythmic capabilities dependent upon note intervals.

Watch the tutorial:

Talea_video

RIGHT-CLICK MENU:
  • External Clock Mode:
    • CV controls bpm (beats per minute) based on the input voltage using this formula: 120 * 2V.
    • 2, 4, 8, 12, 24 PPQN controls bpm based on the number pulses per quarter note.
    • If the mode is set to any of the PPQN modes, the clock will turn on automatically when it receives a pulse. It will also turn off automatically after it times out from not receiving any more pulses.
  • Polyrhythm Mode:
    • Fixed means each note is fixed and centered around middle C (C4, volts = 0.0). This note will take the current tempo of the BPM knob and all other notes are a ratio based on this note/tempo.
    • Movable means that the first note played will take the current tempo of the BPM knob and all other notes are a ratio based on this first note/tempo.
INPUT:
  • EXT is an external clock to control the Talea BPM determined by the External Clock Mode.
  • V/OCT takes input voltage.
  • GATE input gates when note is held.
BUTTON:
  • on or off
  • HOLD will hold pattern. Is overriden when you release all notes and start a new note.
  • OCT will add octaves to the pattern:
    • No light = 1 octave
    • Purple light = 2 octaves
    • Blue light = 3 octaves
    • Aqua light = 4 octaves
    • Red light = 5 octaves
  • POLYRHYTHM will turn on or off the polyrhythm arpeggiator. If off, Talea acts like a conventional arpeggiator.
KNOBS:
  • large main knob at the top controls the bpm (beats per minute).
  • GATE knob control the percentage amount the gate is on.
  • the pattern mode controls the order of notes when POLYRHYTHM is turned off. These are:
    • โ†‘ ascending order
    • โ†“ descending order
    • 2x each note plays twice in ascending order
    • โšก๏ธŽ in order of which they were played
    • R random
OUTPUTS:
  • V/OCT outputs pitch.
  • GATE outputs gates determined by arpeggiator rhythms.
TUNINGS AND RHYTHMS

When POLYRHYTHM is turned on, the arpeggiator will repeat notes at a tempo based on a specific tuning. For example, the note A440 vibrates at 440 Hz and an octave higher the note vibrates at 880 Hz. This is a 2:1 ratio, meaning one vibrates twice as fast as the other. Rhythms can work like this as well, one rhythm can repeat at a tempo twice as fast as another. Once we start using other intervals that occur in a scale, we can create some more complex rhythms. However, using equal temperament tuning (which is standard tuning for the overwhelming majority of music and instruments in the Western Hemisphere) divides the octave into 12 equal steps which gives us non-integer ratios. So if you play an A and an E (perfect 5th) in equal temperament, you get a rhythmic ratio of 1 : 1.4983070768766815, or 440Hz : 659.2551138257398Hz, YUCK! So to simplify this, I use the natural harmonic series for the ratios. They make nice integer ratios and are a naturally occuring phenomenon. The table below shows the ratios that are use for each interval.

No. of steps Musical interval Ratio
0 unison 1:1
1 minor 2nd 16:15
2 major 2nd 9:8
3 minor 3rd 6:5
4 major 3rd 5:4
5 perfect 4th 4:3
6 augmented 4th/diminished 5th 7:5
7 perfect 5th 3:2
8 minor 6th 8:5
9 major 6th 5:3
10 minor 7th 9:5
11 major 7th 15:8
12 octave 2:1
13 minor 9th 32:15 (16:15 * 2)
14 major 9th 18:8 (9:8 * 2)
15 minor 10th 12:5 (6:5 * 2)
...

sha-bang-modules's People

Contributors

jeremymuller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

zen3d lovaya

sha-bang-modules's Issues

Proposal on StochSeq column colors

Dear Jeremy,

Please don't consider this ticket as a proper feature request. It's more like pondering about potential improvements.

I'm wondering if it'd be worth the hassle to implement a Ctrl-right-click option for some basic column colors?

Again I don't know how much coding is needed but I mean something like this. (Please ignore the module on the right for now.)

image

Best regards, Andras

v2: Failed to load SVG

Runtime issues in log:

[0.974 warn src/window/Svg.cpp:112 load] Failed to load SVG /opt/Rack-2.0/plugins/Sha-Bang-Modules/res/NanoBlueKnob.svg

Looks like NanoBlueKnob.svg is missing from the repository.

Photron eats CPU

Simple case, new project, add Photron, close rack open rack watch the CPU go sky-high.

afbeelding

Windows 10.

Thanks, Peter.

StochSeq4 Ctrl-arrows in Rack2

Ctrl-Enter works fine to select the focused sequence (purple, blue, aqua, or red) but the Ctrl-up/down and Ctrl-left/right seems to be disabled.

Best regards, Andras

Question on PolyRhytm accuracy

Dear Jeremy,

I know that my measurement of BPM isn't too scientific and I also acknowledge that these differences impact musicality only in extreme cases. But could you please confirm if PolyRhytm is meant to behave like this?

My expectations for the outputs was 20 BPM, 40 BPM, 120 BPM, and 360 BPM.

image

Best regards, Andras

Talea module is not defined

[0.235 warn src/plugin.cpp:158] Could not load plugin /home/cschol/src/Rack-1.0-Home/plugins-v1/Sha-Bang-Modules: Manifest contains module Talea but it is not defined in the plugin

Talea is missing from the plugin.[cpp|hpp] files. Or should be removed from the plugin.json.

These modules don't build for me without modifying the makefile

first line:
# If RACK_DIR is not defined when calling the Makefile, default to two directories above
RACK_DIR ?= ../

most ppl use ../.. with four dots. Then the makefile matches the comment. Anyway make didn't make for me until I modified the makefile to be like all the other ones.

Can't build (v2, Windows 10)

It won't build, and it seems like it has something to do with an undefined reference to 'modelQuantal'.

$ make install
g++ -o plugin.dll build/src/AbsorptionSpectrum.cpp.o build/src/BlankPanel.cpp.o build/src/Collider.cpp.o build/src/Constellations.cpp.o build/src/Cosmosis.cpp.o build/src/Neutrinode.cpp.o build/src/Orbitones.cpp.o build/src/Photron.cpp.o build/src/PhotronPanel.cpp.o build/src/plugin.cpp.o build/src/PolyrhythmClock.cpp.o build/src/Quantize.cpp.o build/src/QubitCrusher.cpp.o build/src/RandGates.cpp.o build/src/RandRoute.cpp.o build/src/StochSeq.cpp.o build/src/StochSeq4.cpp.o build/src/Talea.cpp.o build/src/Vec3.cpp.o -shared -LC:\msys64\home\myusername\Rack-SDK -lRack -static-libstdc++
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
build/src/plugin.cpp.o:plugin.cpp:(.rdata$.refptr.modelQuantal[.refptr.modelQuantal]+0x0): undefined reference to `modelQuantal'
collect2.exe: error: ld returned 1 exit status
make: *** [C:\msys64\home\myusername\Rack-SDK/compile.mk:60: plugin.dll] Error 1

Failed to load SVGs

From Rack log:

[3.881 warn src/window/Svg.cpp:112 load] Failed to load SVG /src/Rack-2.0/plugins/Sha-Bang-Modules/res/Blue_V2Switch_0.svg
[3.881 warn src/window/Svg.cpp:112 load] Failed to load SVG /src/Rack-2.0/plugins/Sha-Bang-Modules/res/Blue_V2Switch_1.svg
[3.895 warn src/window/Svg.cpp:112 load] Failed to load SVG /src/Rack-2.0/plugins/Sha-Bang-Modules/res/Purple_V2Switch_0.svg
[3.895 warn src/window/Svg.cpp:112 load] Failed to load SVG /src/Rack-2.0/plugins/Sha-Bang-Modules/res/Purple_V2Switch_1.svg

question on RandGates polyphony limitations

Dear Jeremy,

I'm experimenting with the polyphonic feature of Rand Gate. I realized that feeding polyphonic INS and polyphonic TRG I'll get a polyphonic OUT. But only in this case.

Would it be possible to get a polyphonic OUT in case of feeding a polyphonic TRG but only monophonic INS? (It'd mean mixing up the same four notes differently.)

image

It's not impossible even now (see below). But not knowing the complexity of module structure I'm wondering if it can be fixed easily with a few code lines.

image

Cheers, A.

StochGrid mousedrag bug

Mouse Drag settings are not saved. Re-starting the Rack changes it back to the default 'horizontal'. Cheers, A.

Proposal on PolyRhythm labelling tuplet 2&3

Dear Jeremy,

I'd like to propose a change for your consideration. It is related to the ratio labels of TUPLET 2 and TUPLET 3.

In my example both the left (current) and right (proposed) modules show 2:1 in the blue section. The left (current) module shows 3:1 in the aqua section meaning that the tempo of blue is triplicated. But the right (proposed) module would show 6:1 in the aqua section meaning the same thing but referring to the ratio of the master BPM.

Just to clarify, the behavior of the two modules in my example are the same otherwise: The voltage outputs and knob settings of the two modules are exactly the same. It's just that trying to explain multiple times the way the module works I feel that the proposed labelling would reduce learning time.

image

Best regards, Andras

Photron Strip's Strip mode pulse rate doesn't save

When I set a Photron Strip's mode to "solid color" or "strip", I can change the pulse rate and hue from the menu. However, if I reload a saved file, the pulse rate is reset to 0.5 Hz, even if it was set to something different when the file was saved. This issue only applies to the pulse rate, not the hue.

Cosmosis and Neutrinode request

Hey, I just downloaded your modules and am having a ton of fun with them, but was just curious why you didn't add any clock inputs for bpm or speed on your cosmosis and neutrinode modules... without those sorts of inputs I'm finding it really challenging to incorporate them into larger compositions (a reset input would also be nice for that matter). Especially since one of the modules in your pack is a complex clock of sorts, just seems odd to not have a way for those modules to interact.

Build error on Windows platform

Build error on Windows platform:

src/PolyrhythmClock.cpp.o src/PolyrhythmClock.cpp                                                                                                                                                                                                                                                                     x86_64-w64-mingw32-g++ -o plugin.dll build/src/RandGates.cpp.o build/src/RandRoute.cpp.o build/src/Photron.cpp.o build/src/Cosmosis.cpp.o build/src/QubitCrusher.cpp.o build/src/Quantize.cpp.o build/src/Collider.cpp.o build/src/BlankPanel.cpp.o build/src/StochSeq4.cpp.o build/src/StochSeq.cpp.o build/src/Photr
onPanel.cpp.o build/src/plugin.cpp.o build/src/Orbitones.cpp.o build/src/Constellations.cpp.o build/src/Vec3.cpp.o build/src/Talea.cpp.o build/src/Neutrinode.cpp.o build/src/AbsorptionSpectrum.cpp.o build/src/PolyrhythmClock.cpp.o -static-libstdc++  -shared -L/home/build/rack-plugin-toolchain/Rack-SDK -lRack 
/home/build/rack-plugin-toolchain/local/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld: build/src/plugin.cpp.o:plugin.cpp:(.rdata$.refptr.modelQuantal[.refptr.modelQuantal]+0x0): undefined reference to `modelQuantal'
collect2: error: ld returned 1 exit status    

Two questions and one request

Hello,

Cosmosis is a nice module I've just discoverd.

I have two questions:

  1. What does the size of a node represent?
  2. How does one change the size.

Also, I have two requests:

  1. Is it possible to add a continuous pitch output mode, without any predefined pitch scale?
  2. For a polyphonic use, it would be nice that the pitch doesn't reset to 0 when leaving a node but keeps the last value instead.

Thank you in advance.

StochSeq4 feedback & feature request

Dear Jeremy,

Your StochSeq4 is the best sequencer in the VCV world. It's as simple as that. There are prettier ones but its functionality, efficiency, and practicality is unmatched.

But if you ever decide to re-visit the code I'd like to ask you to consider a few changes

  • keyboard shortcut: Ctrl-Tab to focus the independent patterns one by one
  • keyboard shortcut: Ctrl-Left & Ctrl-Right to shift all steps of focused pattern to the left/right by one step
  • keyboard shortcut: Ctrl-Up & Ctrl-Down to increase/decrease all probabilities of a focused pattern by 5
  • new output: inverted V/OCT for each pattern
  • new output: NOT GATE for each pattern
  • new output: a single OR GATES output (next to the scale knobs)
  • new output: a single XOR GATES output (next to the scale knobs)
  • macro feature: store the predefined preset patterns in a separate JSON/TXT file

With or without these changes your sequencer remains absolutely brilliant. Thank you for this wonderful module!

Best regards, Andras

StochSeq crash in Linux

A student sent me a patch file containing a StochSeq module. Seems to be created in Windows.

When I try to open it in Linux, VCV crashes.

[27.824 fatal src/main.cpp:45] Fatal signal 8. Stack trace:
7: ./Rack() [0x56d2b1]
6: /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7f1e5ad50210]
5: /home/dlm/.Rack/plugins-v1/Sha-Bang-Modules/plugin.so(_ZN8StochSeq7processERKN4rack6engine6Module11ProcessArgsE+0x4d0) [0x7f1e459d2fc0]
4: ./Rack() [0x5b5da3]
3: ./Rack() [0x5b84af]
2: /lib/x86_64-linux-gnu/libstdc++.so.6(+0xd7172) [0x7f1e5b13f172]
1: /lib/x86_64-linux-gnu/libpthread.so.0(+0x9609) [0x7f1e5bb4a609]
0: /lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7f1e5ae2c293]

As another test, I edited the JSON to delete the entire StochSeq node. That version of the file opens without crashing.

This is VCV v1.1.6 btw, Sha#Bang! v1.3.6. (I'm holding off on upgrading to VCV v2 -- it's too near the end of the semester and with students' final projects due, an upgrade would only cause chaos.)

If it matters, the StochSeq contents are:

    {
      "id": 52,
      "plugin": "Sha-Bang-Modules",
      "version": "1.3.6",
      "model": "StochSeq",
      "params": [
        {
          "id": 0,
          "value": 0.0
        },
        {
          "id": 1,
          "value": 0.0
        },
        {
          "id": 2,
          "value": 0.0
        },
        {
          "id": 3,
          "value": 0.0
        },
        {
          "id": 4,
          "value": 0.0
        },
        {
          "id": 5,
          "value": 32.0
        },
        {
          "id": 6,
          "value": 1.0
        },
        {
          "id": 7,
          "value": 0.0
        },
        {
          "id": 8,
          "value": 0.0
        }
      ],
      "data": {
        "currentPattern": 0,
        "probs": [
          0.61715591,
          0.228882372,
          0.499028206,
          0.100392938,
          0.740662932,
          0.23050487,
          0.413791656,
          0.320121706,
          0.547417879,
          0.120411992,
          0.797854543,
          0.378019989,
          0.0619246364,
          0.808758378,
          0.464105189,
          0.778698504,
          0.515135288,
          0.192010581,
          0.387599528,
          0.733513951,
          0.361729026,
          0.733513951,
          0.294070721,
          0.776407659,
          0.540452838,
          0.59164083,
          0.693661571,
          0.455613315,
          0.306929708,
          0.0638229251,
          0.540796161,
          0.196885526
        ],
        "percentages": true,
        "kbshortcuts": true
      },
      "pos": [
        0,
        0
      ]
    },

v2: `make dist` fails

rsync -rR res presets LICENSE  plugin.json dist/Sha-Bang-Modules/
rsync: link_stat "/home/build/plugin-src/presets" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]

The presets directory does not exist in the source tree.

has stochseq4 and stoch seq an error?

I need some help, im getting into this magnificent sequencer but i cant fully understand how it works, ive already seen the creators official tutorial and i notice that it doesnt work the same for me, when i put the probability at 100% in the entire sequence it doesnt send a constant gate signal, it just gets stuck there, what happens, what im doing wrong?

It should be noted that the version I have of the modules is 2.1.0, the same error happens with stochseq4 and stoch seq

https://youtu.be/hCwd3-W0bDo

Question on RandGates (w/o TRG)

Dear Jeremy,

What does RandGates do without a TRG? Is it an OR module?

image

Somehow I expected that if no cable is connected to TRG then another IN will be selected once the currently active signal drops below 2V. But it's clearly something else.

Best regards, Andras

Polyrhythm Clock FR: Add Run toggle input

I usually sync it from Clocked and would be good to have Clocked also turn on and off clock when it is turned on and off via it's Run output. A bit troublesome that the clock stays running even when external sync clock is turned off.

Great module otherwise! Thanks for these.

Question on RandRoute polyphony

Dear Jeremy,

Due to its size and basic parameters the RandRoute became my go-to-Bernoulli-module. I just had a quick question on its polyphony. Is it intentionally delivering the same variation on all output channels?

image

image

Best regards, Andras

Periodic crash when using orbitones

My system is Gentoo with pipewire/jack. I use orbitones for random CVs, and when it crashes I don't even change anything in it. Rack crashes after some random time, and it always has _ZN9Orbitones7processERKN4rack6engine6Module11ProcessArgsE in stack trace:

[2490.631 fatal src/main.cpp:45] Fatal signal 6. Stack trace:
12: ./Rack(+0x1e3d54) [0x55656762ad54]
11: /lib64/libc.so.6(+0x38dd0) [0x7fee75a88dd0]
10: /lib64/libc.so.6(gsignal+0x141) [0x7fee75a88d51]
9: /lib64/libc.so.6(abort+0x112) [0x7fee75a72536]
8: /lib64/libc.so.6(+0x7a078) [0x7fee75aca078]
7: /lib64/libc.so.6(+0x81a9a) [0x7fee75ad1a9a]
6: /lib64/libc.so.6(+0x81edc) [0x7fee75ad1edc]
5: /home/vechur/.Rack/plugins-v1/Sha-Bang-Modules/plugin.so(_ZN9Orbitones7processERKN4rack6engine6Module11ProcessArgsE+0xf85) [0x7fee3e54434d]
4: ./Rack(+0x2372ed) [0x55656767e2ed]
3: ./Rack(_ZN4rack6engine12EngineWorker3runEv+0x163) [0x55656767fadf]
2: /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libstdc++.so.6(+0xfc78f) [0x7fee75e5678f]
1: /lib64/libpthread.so.0(+0x7f9e) [0x7fee76e08f9e]
0: /lib64/libc.so.6(clone+0x3f) [0x7fee75b4964f]

Plugin configuration (right after last crash, extracted from autosave-v1.vcv):
orbitones.txt

Could someone suggest where could be the problem?

Thanks in advance!

Orbitones: Canvas Boundary Confusions

Hello, I noticed particles can be drawn out of the dark canvas, while attractors use the dark canvas boundaries(and will bounce back if touched in moving mode).

I don't know if this is intended or a bug, but it does create some confusions and inconsistency.

Thoughts and suggestions:

  • Then don't draw Particles outside.

  • Maybe make the whole panel dark to use the extra space. But attractors can't move outside or it'll cause problems with other UI, so make 2 visible lines to indicate the boundaries.

  • Add a mode that particles can bounce back too, that could be interesting.

Proposal for StochSeq4 spread range (-5 to +5)

Dear Jeremy,

StochSeq4 is my use-it-for-all sequencer. Now I rely on it even more than before. Would you please consider changing the SPREAD knob range for -5V to 5V?

The current range is set to -4V to 4V. The change would increase the compatibility as with a simple module any sequence could be transformed to 0V to 10V if needed. Or with another simple module the voltage could be multiplied and transformed to a -10V to +10V.

Best regards, Andras

P.S.: Actually I'm not sure that negative values makes sense at all. We have access to the INV output anyway if needed without manually turning the SPREAD from +2 to -2.

Suggestion: new module for advanced trigger/gate-generation

Hello,

I'm a big fan of your modules, so thank you for this nice work.

When surfing around the other day I ended up on the website of Lucid Rhythms:

https://www.youtube.com/@LucidRhythms/videos

This artwork reminded me of some of your modules that have some things in common with the trigger/gate-idea(s) of Lucid Rhythms. As far as I understand his work he deals with slightly changing loop-times of trigger/gate-chains and delay-times between the steps. Maybe he sends the triggers/gates to VCAs that are driven by envelopes.

IMHO this meets some of your ideas. Maybe his work inspires you to think about a new kind of trigger/gate-generating module(s). If not, I hope you enjoy the work of Lucid Rhythms.

Keep healthy

Peace

Cosmosis: issue when max stars are reached

  1. When max stars are reached by user clicking to add them, it continues to replace the final star with a new position and radius based on where the mouse click occurs. This behavior is wrong and should work the way Neutrinode does when clicking to add stars/particles.
  2. When altering the current constellation by adding/removing/moving stars, the constellation text should disappear since it is no longer that pattern.

chromatic scale

Been playing around with neutrinode.
Could I ask for a chromatic scale to be included?
Thank you

Question on Photron frame

Dear Jeremy,

Is the frame a bug or a feature? I usually try to avoid any visual modules so I'm not familiar with their limitations and/or settings.

image

Kind regards, Andras

Stoch Seq4 - Please reset all

Love this module!

I noticed that the global reset on Stoch Seq4 does not reset all of the lanes back to the very first segment. In fact, I can't find any pattern to what the global rest actually does.

congrats on Seq4

Now thats what Im talking about. I guess its probability on each note? Not a note for note sequencer correct?

can you make a non probability sequencer like this? Does it come in black?

Talea won't arrpegiate

I watched the demo video and I love the poly rhythm idea! Unfortunately, I can't get more than one pitch even when holding down multiple keys. I've tried with my computer keyboard and an external midi keyboard with no luck either way. When I activate the octave button I hear multiple octaves of a pitch, but still only of one note.

FR: make Polyrythm clock sync to external clock.

Hi,

I'm really enjoying your polyrythm clock, however I think it would be more useful if it could be externally synced to another master clock like Impromptu Clocked and the ZZC clock for example, ideally at 24 ppqn.

While the Polyrythm clock is great for polyrhythms, imo it is missing many features that would enable it to step into the master clock role (in my setup at least) so having it being able to sync to a separate master clock would make it much more usable and able to fit into existing templates.

thanks

Probability Gate in Stochastic Sequencer issue

When I hook up Stochastic Seq as below, with Gate from the clock signal, I get sound out of the FM-OPs
image
When I hook up to the Probability Gate, I get no sounds whatsoever.
image
Am I patching this incorrectly?
Windows 10 computer VCV Rack latest version of 1.6

Neutrinode request(s)

Hi, neutrino is truly awesome, hook it up to a fm-op and some reverb and it can play all day ;) Thank you so much, donation is on its way.

I have some request for this module, if feasible/possible.

  • a collision detect option for the balls when they are moving - if they overlap eachother it can become "messy" (exaggeratation) as they could play notes almost together but just too short apart. Some kind of collision detect (or even that they bounce of eachother).
  • cv input for the root (perhaps also for the octaves), i can map them with umap so not a big deal, but nice to have.

Stochastic Sequencer 4 instance is not sending any v/oct

Just reopened a patch from a few weeks ago and the sequencer is not sending any voltage on the v/oct outputs. I've got a few proprietary modules but I think as long as you have ZZC modules installed then it should be enough, just check the scope.

plethora.zip

I might be missing something really basic but I can't figure out why nothing is coming out of it.

Edit: just opened another patch and the same thing is happening.

Problem with input trigger

Parentheses need to be fixed here:

if (rndPosTrig.process(params[RANDOM_POS_PARAM].getValue()) + inputs[RANDOM_POS_INPUT].getVoltage()) {
randomizePosition();
}
if (rndRadTrig.process(params[RANDOM_RAD_PARAM].getValue()) + inputs[RANDOM_RAD_INPUT].getVoltage()) {
randomizeRadii();
}

Move function on Neutrinode is not saved with the patch

Hi Jeremy!
I noticed that when I save a patch with Neutrinode, and I have the Move function on, the next time I open the patch, I have to enable it again. Is there a way to have it save the status of the Move function so it will be enabled when opening a patch?
Thanks again!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.