MusiKraken
MusiKraken
Experimental MIDI Controller Construction Kit

Threshold

The Threshold module starts a note if the value goes over a threshold, and stops it if the value goes back again.

If you connect any of the other modules to the MIDI-in port, it will clone the active notes from these modules and send them out instead of using the default note. By combining this with the various input modules, you can invent completely new musical instruments.

You can for example play a note if the device is tilted far enough (Motion Sensors), the angle of your hand goes over a certain value (Hand Tracking) or if you open your mouth far enough (Face Tracking). So for example the hand distance could define the pitch of the note to be played, while rotating the hand over a certain value starts the notes.

While the note is playing, you can control an additional value (intensity port) which increases the further away from the threshold your value is.

And there is an additional input port called sideValue. At the moment the main value goes over the threshold, this value is registered and any deviation from that registered value will control the sideIntensity out value. So you can for example start the note with one movement and then pitch-bend away from that using another input value while the note is playing.

Ports:

value:

Connect this with any of the input module output value ports. If this value goes over (or under, depending on the settings) a set threshold, the note will start, and if the value goes back, the note will stop again.

note:

If any MIDI output port is connected to this, then the output of that port defines which note or chord will be played instead of the default note.

sideValue:

Here you can connect a second value port. At the moment the main value goes over the threshold, the value of this port is stored. Now while the note is still active, moving away from this stored value will change the sideIntensity value output. This way you can change additional parameters while the note is playing. A typical example would be to pitch bend using this side value (but any other parameter can also be changed).

velocity:

If the velocity type is set to "velocity port", then the value sent into this port will define which velocity the notes will have.

MIDIOut:

The generated notes will be sent out of this port.

intensity:

Once the value goes over (or under, depending on the settings) the threshold, this intensity will send how much away from the threshold the value currently is.

If for example the threshold is set to 0.6 and the notes should play if the value is higher than the threshold, then the intensity will be 0.0 if the value equals 0.6 and 1.0 if the value equals 1.0. So this way you can control for example modulation or volume of the instrument once the note is playing.

sideIntensity:

As described above, this is defined by how much the sideValue differentiates from the stored sideValue once the note starts playing. So this value will be in a range between -1.0 and 1.0.

Settings:

Input range: The range of the input values, so that the range can be mapped to the output values.

Inverted input range: If checked, the values from the input are inverted, so large values become small ones in the output.

Note: The default MIDI note value that will be played if nothing is connected to the note-input port.

Channel: The default MIDI channel that the generated note will be sent to if nothing is connected to the note-input port.

Plays notes if value is: Should the notes start if the difference of the values is higher or lower than the threshold?

Threshold: At which threshold value should the note start?

Maximal side value: This defines the range of the side value.

Velocity type: How should the velocity value of the beat be computed? Possible values:

Speed: The velocity will be computed from how fast the value was changed (and how large the change was). If this is selected, the beat will be played slightly delayed, because the app only knows how large the value change was when the movement has finished. To define the range of the values, change the Speed Range value as described below.
Velocity: A fixed, selectable velocity.
Velocity port: In this case, the velocity value will be defined by any value that is sent into the velocity port. Use this if a second input control value should define the velocity.

Speed range: This defines the range of the speed value that should be used to compute the velocity of the beat when using the speed velocity type. In this case, the velocity will be computed as following: At zero Speed Threshold, the velocity will be the lowest velocity. And if the Speed Threshold reaches the Speed Range value, it will be the maximum velocity.

Velocity range: This defines the final range of the output velocity.

Velocity input range: When setting the velocity type to "velocity port", this will define the range of the input values for this port.

Inverted velocity input range: If checked, the values from the velocity input are inverted, so 1.0 becomes 0.0 and vice versa.