You will want to configure your midi controller to work ideally with the software, assigning controllers to certain values, setting some buttons to toggle and some momentary, and other adjustments unique to your device.

All default parameter values cited below in hyper-linked, underlined font are for continuous controllers and program changes and can be reassigned to whatever controller numbers or program change values you prefer by changing their corresponding number values in the STREAMSEQUENCER_CONTROLS text file. This text file contains entries each on their own line in the format:


Edit the number values there alone to reassign the parameters to your desired controller or program change numbers. Only edit the numbers and not the parameter names in the file. Some parameters are disabled by default and assigned a value of -1. Note that assigning multiple parameters to the same controller number is not supported. You can set other parameter values to -1 if you want to disable any controllable features. The default values for these controls are presented below with their feature descriptions and are linked to their exact parameter names in the parameter index.

Only ever save the text file in plain text format and without any extensions. Programs like Mac's TextEdit may automatically attempt to add (and hide) a .txt extension. The software will not recognize the controller file unless the name is exact and without extension. I recommend using the free "BBEditLite" or "jEdit" on a Mac or "TextEdit" for Windows. This file needs to remain in the same folder as the StreamSequencer application in order to be found. For various setups, simply make different files with the name STREAMSEQUENCER_CONTROLS and keep them in other folders. The file you put in the folder with the StreamSequencer application will be the one used at runtime.


The sequencer rate is controlled using continuous controller 27 mapping from one sequencer step every .0078 seconds at value 0 to one sequencer step every second at value 127.

The sequencer speed can be set to double-time by momentarily setting continuous controller 80 to 127 (e.g. by holding down a button). The speed returns to the above set rate when this controller returns to 0.


StreamSequencer actually has two running sequencers slaved to the same clock.

The sequencers can run from 1 to 8 steps in length. Two concurrent sequencers with potentially different step lengths is how you get cool, locked polyrhythms with only up to 8 steps.

The two underlying sequencers default to step lengths of 8 and 6 respectively. Adjust these step lengths by sending program change values 0-7 to the system (e.g. using some buttons). If continuous controller 25 is set to 127 (e.g. a button held down) sending these program change values will effect the step length of the main sequencer, otherwise they will effect the auxiliary sequencer.


Odd steps are played out the left channel. Even steps are played out the right channel. Feel free to mix'em together outboard if that bugs you.


You can fade the auxiliary sequencer down to whatever volume you want (including off) by adjusting continuous controller -1 (disabled by default) from 0 (off) to 127 (full volume, matched with the main sequencer).


Each sequencer step plays back a sample taken from the live input exactly one step before it is played. So if the sequencer runs at one step every half second than the sample it's playing back now was taken a half second ago from the live input.


The sequencers transpose each step according to where you have the transpose controllers set. The transposition controllers for steps 1-8 respectively are: 14, 15, 16, 17, 85, 104, 106, and 105. The value ranges below specify the transpositions created by speeding up or slowing down the captured sample:
To produce microtonal transpositions between these values, set continuous controller -1 (disabled by default) to 127 while adjusting the transposition controllers. e.g. set a button to this controller and hold it down while making a transposition change.


Each of the 8 sequencer steps can have their volumes adjusted by setting continuous controllers 1, 5, 4, 6, 35, 33, 34, and 22, adjusting step volumes 1-8 respectively. Set these to some faders and make some rhythms by knocking out some steps.


The samples taken from live input one step in advance are of a size proportional to the sequencer rate. There are three sample size settings: short, medium, and long size. At medium size the sample size is equal to the rate of a sequencer step. At short size the sample size is half the rate of a single step. At long size the sample size is twice the step rate.
Alternatively you can adjust the sample size with greater precision using continuous controller 28. Value 0 sets the sample size to .01 percent of the sequencer step rate, value 127 is twice the sequencer step rate, with value 64 being equal to the step rate.


Samples can be played back using 5 different amplitude envelopes. You can scroll through these envelope types on the fly. Increasing continuous controller 26 scrolls to a higher envelope number, decreasing it scrolls to a lower envelope number. When you get to the end of the envelopes you'll loop around to the beginning and vice versa. Note that at fast sequencer rates, envelopes that have very little sustain will appear significantly quieter than other envelopes. The envelopes by number are:

The output of the sequencers can feed a stereo delay line synched to the sequencer rate. Continuous controller 7 controls how much signal from the sequencers is fed into the delay. The delay time is a multiple of the sequencer rate so you can make some cool, locked in rhythms.
The delay input maximum can be scaled down by setting the DELAY_INPUT_MAX value somewhere below 1.

The delay has no feedback by default but you can adjust the feedback from 0 to whatever value is assigned to Feedback Maximum (don't make this bigger than 1!) using continuous controller -1 (disabled by default). Feedback Maximum is 0 by default.


Each sequencer step can be individually assigned to play in forward or reverse (they start all forward). Program change values 8-15 toggle this feature for steps 1-8 respectively and print out their current status to the display. Note that with short samples, the difference between playing a sample forward or backward often sounds negligible! Also, note that if you've set your sample size to a value greater than the sequencer rate (e.g. using the LONG setting) and the sample is set to reverse, you can expect to hear some clicks as the sample is still being recorded while it is attempting to be played from the end (not yet recorded) toward the beginning. I'd avoid this.


The StreamSequencer is constantly sampling from live input. But you can suspend this sampling while the sequencers continue to play, freezing the samples currently held in the 8 sequencer steps by setting continuous controller 25 to 127 (e.g. latching down a button). Setting the controller back to 0 will turn sampling back on, writing over the samples in those sequencer steps. Try closing it to capture a cool pattern and then opening it very briefly and quickly re-closing it to write over small segments of the pattern.