MusiKraken
MusiKraken
Experimental MIDI Controller Construction Kit

Beat

The Beat effect plays short note-on note-off sequences (beats) if there was a fast change in the input value. So you can connect any of the input modules to this and it will play beats if you for example move fast enough in one direction.

This means that you can for example play drums when shaking the device (accelerometer), when rotating the device quick enough (motion sensors) or when punching in the air while tracking your body with the body tracker.

The pitch of the played beat can either be a default MIDI value, or you can connect any note generator to the note-input-port, in which case the notes coming into this port will be cloned and played as the beat.

A typical example of this combination would be to connect the pitch of the motion sensor to the value port, connect the yaw to the note-port and change the value-to-MIDI-converter that will automatically be created this way to generate notes. Now you can rotate the device quickly to generate beats and rotate around you to change the note.

Or use the x-value of a hand in the Body Tracker to change the note, and connect the y-value of the same hand to hit downwards to play for example Xylophone in the air.

Ports:

value:

Connect this with any of the input node output value ports. Changing this value quickly (higher than the speed threshold) will then play a beat.

note:

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

velocity:

If the velocity type is set to "velocity port", then the value sent into this port will define which velocity the beats will have. You can for example connect the y-port of a hand in the Body Tracker to this, and connect the x-port to the value-input port. Then you can punch in the air to generate beats, and if you punch higher in the image, the velocity of the beats will be larger.

MIDIOut:

The generated beats will be sent out of this port.

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.

Value change direction: Should a beat be played if the difference of the values is positive (= fast value change in positive direction), or negative?.

Speed Threshold: At what difference value should the beat be played? This speed value is computed by getting the difference between the last few values from the value-in-port. Increase this value if the beat generation is too sensitive (when it for example also generates beats when not moving that much), and decrease it if you have to change the value too much to generate a beat.

Beat duration: How long should the beat be?

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 the value of the Speed Threshold, the velocity will be the lowest velocity. And the Speed Threshold + this Speed Range will be the maximum velocity value.

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.