NeverEngine Labs StepSequencer

(2)
« »
  • Download Details

    Thumb
  • NeverEngine Labs Step Sequencer - August 2016

    If you use this sound please consider signing up to our mailing list. Find out more at www.neverenginelabs.com.

    Thanks! - Cristian

    This is a step sequencer which has tight timing and different types of gate logic, built in MIDI out and a unique pattern offset and stepping designs.

    It has its own internal step clock generator, but can optionally be stepped externally by any Sound that generates pulses, such as a Braff RC, a GatesFromWavetable, a Threshold from audio input, CapyTalkToSound etc.

    My step sequencer design works like the Kyma 7 prototype, in that the current value is held if the next Gate stage is off. There must be a gate for a sequence to step. What this means in practice is that you can have sequences of different lengths, which will emit their next value only when the value of the Gate sequence at the current step is positive. In other words, if there is a rest, or mute in the gates, each sequence will not change to its next value (even though the overall gate step position is increasing through to pattern length). Additionally in the Pitches sequence, you can specify a value of zero (for example: 40 0 50 0 60 70) and the pitch value will be held over the zero even if a gate is on for that step. The paramater called PatternLength defines an overall pattern length, a kind of full cycle length. If the total PatternLength is longer than a particular sequence, it will repeat itself to fit.

    Here then, we have the possibility of quickly generating some very interesting sequence interplay and interference by experimenting with different sequence lengths, gates and values.

    The way this sequencer fits together patterns makes me think of Tetris somehow...

    The NE Labs StepSequencer sends out its current values as generated SoundToGlobalControllers. The fields called '!GeneratedName_Gate' etc are for you to define the name of the generated events that will become global controllers holding the current value from each of the sequences. You can certainly choose any names you want for these generated signals BUT.....you cannot perform any Capytalk modifications in these parameter fields, they are strictly to be used for declaring names only. You can do calculations, smoothing etc elsewhere in your sound design, by refering to these names exactly.

    Optionally, you also get the gates as an audio signal at the output. The left channel is a gate emitted when the current stage is active, and the right channel is a handy gate emitted when the sequences cycle round or a reset to 0. This mode makes the sequencer into an audio rate pulse generator. Interesing possibilities!

    In total there are 4 different sequences to work with, the Gates and then Pitch ( in note number values) and Velocity. These three note related sequences are wired internally to a MIDI Out which you can optionally activate.

    A 4th sequence is for stepping through an array I have called 'extra values'. You can use for whatever - delaytimes, modulations of all sorts - It doesn't need to be in the 0,1 range, it can have any value.

    You can disactivate the sequence arrays if you are not using them (except the Gates array which is obligatory) by putting 'nil' in the parameter field. Then its related generated event will not be created.

    Sometimes its neater not to see the generated events in the VCS, so you can switch them on and off with some boolean options at the bottom of the parameter list. You can still refer to them elsewhere in your sound design, even if they are hidden.

    *** !IMPORTANT ***

    Take care not to repeat the same GeneratedNames if you are using more than one instance of the NELabs StepSequencer, or they will clash and you will get unexpected results or possible hangs.

    *** ALSO QUITE IMPORTANT ***

    Do NOT refer to a GeneratedName in the same field that it is generating from. Kyma *may* get stuck in an internal feedback situation. You CAN refer to generated events in other fields of the same instance for example you could enter:

    (!GenGate nextRandom * 8)

    in !PatternShift which will rotate the sequencer pattern every time it sends a Gate. Neat huh?

    These sequencers are fun and efficient, you can run loads - just be careful not to duplicate GeneratedNames as mentioned above. Enjoy the click free gates, tight timing and interesting possibilities of this powerful rhythm computer.

    v2.131 design build 3 (c)Cristian Vogel for Never Engine Labs 2016

    GateType Picks from three flavours of gate output. Please search in the Capytalk reference for the descriptions of Voice Stealing to understand the concept better.

    Choose a value from 1 to 3

    Depending on where you are using it,  one mode might be more useful than the other. There is no extra DSP load between each type of gate.

    1: A 5ms pulse from 0 to 1.  Best mode for triggering most parameters in a Kyma sound, or for combining with a Kyma PulseGenerator. Also the recommended mode when adding steps to the NELabs StepSequencer.

    2: Simple Voice Stealing gate. A 10 ms pulse where the first 5 ms are negative (this is Kyma's voice stealing time). Good for triggering of ADSR or other envelopes.

    3: A Voice Stealing holding gate. After holding, the next pulse is generated with a voice stealing 5 ms before retriggering and holding again. This mode is useful for Gates in Sample Players which perform looping only when the Gate is positive.

    Mode 4 is not implemented yet.

    Run A value greater than one will Run the generator

    Reset Reset the internal master pulse generator

    Bpm Actual BPM when !RateScale is set to 1.

    RateScale Scale (multiply) the overall BPM.

    Gates This is the array of Gates which will be sequenced. It is an obligatory field.

    A sequence of values whose logic value is used to determine whether each note event is sent. In this field, you must enclose expressions within curly braces, for example: {1 repeatingRamp: 2 s}

    Examples:

    1 0 0 0 1 0 0 1

    !sw01 !sw02 !sw03 !sw04

    {!sw01 repeatingFullRamp: 1 s} {!sw02 s tick nextRandom}

    { (1 to: 8) collect: [:i | !gate suffix2: i] }

    {!gate copies: 16 }

    Pitches This is the array of Pitches which will be sequenced.

    TIP: Enter 'nil' (without the quotes) in the parameter field, and that sequence and its related GenerateName will *not* be created when you don't want to use it.

    A sequence of MIDI notenumbers that will supply the pitches to any !Pitch or !KeyNumber in the parameters of the Input. In this field, you must enclose expressions within curly braces, for example: {60 nn + !Interval nn}

    Examples:

    40 50 60

    !Note01 !Note02 !Note03

    { (1 to: 8) collect: [:i | !Note suffix2: i] }

    {!note copies: 8}

    Velocities This is the array of Velocities (or Level) which will be sequenced.

    TIP: Enter 'nil' (without the quotes) in the parameter field, and that sequence and its related GenerateName will *not* be created when you don't want to use it.

    TIP 2: You can use this Array to send values that could be used anywhere in your sound design, they don't have to be always Velocity. What about BPM values, delay times or the pattern length of another sequencer?

    A sequence of values which are mapped to the MID out Velocity field (when using midi output). You can use any numbers here though, it doesn't have to be 0,1.

    Examples:

    0.25 0.5 0.25 0.5

    20 30 40 60

    { (1 to: 8) collect: [:i | !Vel suffix2: i] }

    {!Vel copies: 8}

    ExtraValues This is the array of Extra Values which will be sequenced.

    TIP: Enter 'nil' (without the quotes) in the parameter field, and this sequence and its related GenerateName will *not* be created if you don't want to use it.

    In this field, you must enclose expressions within curly braces, for example: {0.1 s tick nextRandom}

    Examples:

    40 50 60

    0.1 0.25 {1 repeatingRamp: 3 s} 0.75

    { (1 to: 8) collect: [:i | !Extra suffix2: i] }

    {!ExtraValues copies: 8}

    PatternLength Overall cycle length. Seqeunces will repeat if they are shorter than the PatternLength.

    PatternShift Shift (and wrap around) the sequences. Useful for fills, and accent alterations.

    GeneratedName_Gate

    This is the Global Controller that will read values from the Gates sequence...

    Refer to this name EXACTLY in other parameters of your sound design, and those parameters will be modulated by the events generated from the Gates sequence.

    The fields called '!GeneratedName_Gate' etc are for you to define the name of the generated events that will become global controllers reading from its related sequences. You can certainly choose any names you want BUT.....you cannot perform any Capytalk modifications on these, they are strictly names!

    GeneratedName_Pitch

    This is the Global Controller that will read values from the Pitches sequence...

    Refer to this name EXACTLY in other paramaters of your sound design, and those parameters will be modulated by the events generated from the Pitches sequence.

    The fields called '!GeneratedName_Gate' etc are for you to define the name of the generated events that will become global controllers reading from its related sequences. You can certainly choose any names you want BUT.....you cannot perform any Capytalk modifications on these, they are strictly names!

    GeneratedName_Velocity

    This is the Global Controller that will read values from the Velocities sequence...

    Refer to this name EXACTLY in other parameters of your sound design, and those parameters will be modulated by the events generated from the Velocities sequence.

    The fields called '!GeneratedName_Gate' etc are for you to define the name of the generated events that will become global controllers reading from its related sequences. You can certainly choose any names you want BUT.....you cannot perform any Capytalk modifications on these, they are strictly names!

    GeneratedName_ExtraValue

    This is the Global Controller that will read values from the ExtraValues sequence...

    Refer to this name EXACTLY in other parameters of your sound design, and those parameters will be modulated by the events generated from the ExtraValues sequence.

    The fields called '!GeneratedName_Gate' etc are for you to define the name of the generated events that will become global controllers reading from its related sequences. You can certainly choose any names you want BUT.....you cannot perform any Capytalk modifications on these, they are strictly names!

    GeneratedName_StepCount

    This is the Global Controller that will give you the value of the current index

    Refer to this name EXACTLY in other paramaters of your sound design, and those parameters can be modulated by the events generated from the Gates sequence. Also makes a handy stepping visualisation widget.

    The fields called '!GeneratedName_Gate' etc are for you to define the name of the generated events that will become global controllers reading from its related sequences. You can certainly choose any names you want BUT.....you cannot perform any Capytalk modifications on these, they are strictly names!

    UseExternalStepInput Tick this box if you want to read from the External Step input. If Run is still active ,  the external pulses will be mixed with the internal clock - if you want to have only the external pulses you need to set RUN in this sequencer to 0, and use !Run to control you External step generator instead.

    ExternalStepInput When UseExternalStepInput is checked the sequences will be stepped by any Sound that generates pulses, such as a Braff RC, a GatesFromWavetable, a Threshold from audio input, CapyTalkToSound etc.

    In this mode, the internal step generator is bypassed, so !run, !ratescale and !bpm are not applied.

    OutputMIDI Output events as midi notes with pitch, velocity and gate

    MIDIChannel MIDI Channel for output (if OutputMIDI is checked)

    ShowExtraValueInVCS Sometimes its neater not to see the generated events in the VCS, so you can switch them on and off with some boolean options at the bottom of the parameter list.

    ShowGateInVCS Sometimes its neater not to see the generated events in the VCS, so you can switch them on and off with some boolean options at the bottom of the parameter list.

    OutputAudioGates When set, you also get the gates as an audio signal at the output. The left channel is a gate emitted when the current stage is active, and the right channel is a handy gate emitted when the sequences cycle round or a reset to 0. This mode makes the sequencer into an audio rate pulse generator with built in sync. Interesing possibilities!

    ShowPitchInVCS Sometimes its neater not to see the generated events in the VCS, so you can switch them on and off with some boolean options at the bottom of the parameter list.

    ShowStepCounterInVCS Sometimes its neater not to see the generated events in the VCS, so you can switch them on and off with some boolean options at the bottom of the parameter list.

    ShowVelocityInVCS Sometimes its neater not to see the generated events in the VCS, so you can switch them on and off with some boolean options at the bottom of the parameter list.

    V2: Totally redesigned the STGC generators which were being internally duplicate by my first version and causing out of realtime errors. Please replace all sound design that used the previous version, with this version in your work!

    Topic Posts Last Poster Updated
    No topics