'Scale it' is an open-source program (written in graphical programming language Pure data and Faust) that allows sonification of signal distribution in real-time. "Scale it" is being developed primarily for neurofeedback purposes. To allow the straightforward and customizable instrument to carry sonic feedback about EEG activity in specific neocortex regions.
There are two different possibilities for sonification of the signal. One of the objects, tone, generates changes in pitch of a monophonic tone. The other object, chord, expresses the input value in the width of polyphony.
Polyphonic version of Game Tone combined with below thresh.
Polyphonic version of Game Tone.
Monophonic synth game combined with belowThresh.
Monophonic synth game.
Game Tone and Game Accord combined together to an all-in-one box.
Parameter gameSelect 0 (default) for gameTone 1 gameAccord.
Configuration and inputs definition for all listed games.
inputsN general number of inputs for each game
| Parameter name | default value | min value | max value | step |
|---|---|---|---|---|
| baseKeyMIDI | 69 | 0 | 128 | 1 |
| oscType | 0 | 0 | 4 | 1 |
| subOscType | 2 | 0 | 4 | 1 |
| scale | 0 | 0 | scalesN-1 | 1 |
| synthLevel | 64 | 0 | 127 | 1 |
| noiseLevel | 0 | 0 | 127 | 1 |
| activeSteps | 8 | 0 | 12 | 1 |
| subSynthLevel | 127 | 0 | 127 | 1 |
| Parameter name | default value | min value | max value | step |
|---|---|---|---|---|
| seqTempo | 120 | 40 | 200 | 1 |
| seqLevel | 64 | 0 | 127 | 1 |
| seqOn | 1 | 0 | 1 | 1 |
| seqPulseLen | 0.1 | 0.1 | 1 | 0.01 |
| seqStepsContinue | 0 | 0 | 1 | 1 |
| Parameter name | default value | min value | max value | step |
|---|---|---|---|---|
| holdSec | 4 | 0 | 10 | 0.01 |
| resetCounter | 0 | 0 | 1 | 1 |
| Parameter name | default value | min value | max value | step |
|---|---|---|---|---|
| envAttack | 1 | 0 | 5 | 0.05 |
| envDecay | 1 | 0 | 5 | 0.05 |
| envSustain | 1 | 0 | 1 | 0.05 |
| envRelease | 0.5 | 0 | 5 | 0.05 |
| Parameter name | default value | min value | max value | step |
|---|---|---|---|---|
| gameToneLevel | 64 | 0 | 127 | 1 |
| gameAccordLevel | 64 | 0 | 127 | 1 |
| gameArpLevel | 64 | 0 | 127 | 1 |
| gameToneON | 0 | 0 | 1 | 1 |
| gameAccordON | 0 | 0 | 1 | 1 |
| gameArpON | 0 | 0 | 1 | 1 |
| gameTonePan | 0.5 | 0 | 1 | 0.01 |
| gameArpPan | 0.5 | 0 | 1 | 0.01 |
Listed scales/chords are defined as a relative step from the base MIDI note number. Tones are limited to 12 tones. A more dynamic approach to extending available notes and custom scales will follow. Currently is available 16 scales/chords.
major scale {0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 17, 19}
dorian scale {0, 2, 3, 5, 7, 9, 10, 12, 14, 15, 17, 19}
phrygian scale {0, 1, 3, 5, 7, 8, 10, 12, 13, 15, 17, 19}
lydian scale {0, 2, 4, 6, 7, 9, 11, 12, 14, 16, 17, 18}
mixolydian scale {0, 2, 4, 5, 7, 9, 10, 12, 14, 15, 17, 18}
(aeolian) minor scale {0, 2, 3, 5, 7, 8, 10, 12, 14, 15, 17, 18}
locryan scale {0, 1, 3, 5, 6, 8, 10, 12, 13, 15, 17, 18}
major pentatonic {0, 2, 4, 7, 9, 12, 14, 16, 19, 21, 24, 26, 28}
minor pentatonic {0, 3, 5, 7, 10, 12, 15, 17, 19, 22, 24, 27, 29}
iwato {0, 1, 5, 6, 10, 12, 13, 17, 18, 22, 24, 25}
hirajoshi {0, 2, 3, 7, 8, 12, 14, 15, 19, 20, 24, 26}
chromatic scale {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13}
whole tone {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22}
major chord {0, 4, 7, 12, 16, 19, 24, 28, 31, 36, 40, 43}
major seventh chord {0, 4, 7, 11, 12, 16, 19, 23, 24, 28, 31, 35}
minor chord {0, 3, 7, 12, 15, 19, 24, 27, 31, 36, 39, 43}
Scale it can interpret incoming parameters customScale[0-11] as halftones, the range is from 0 (base tone) to 48, so almost four octaves.
Oscillators are shared within all *synth.dsp files. Currently sawtooth, sine, triangle and square with noise is awailable. Also basic ASR envelope is handled here.
Threshold stages for comparing with input signal.
| Name | description |
|---|---|
| intervalN | Maximum number of stages between low and high threshold. |
| lowThresh | Low threshold |
| hiThresh | High threshold |
| Parameter name | default value | min value | max value | step |
|---|---|---|---|---|
| activeSteps | 8 | 0 | intervalN | 1 |
| invert | 0 | 0 | 1 | 1 |
| exclusive | 0 | 0 | 1 | 1 |
| curve | 0 | -10 | 10 | 0.01 |