sqsl Circle
Geometry-based semi-generative MIDI sequencer and controller for iPad
Available on App Store.
sqsl Circle is an experiment - an indexed MIDI sequencer built around the idea of circular playheads advancing through a 2-dimensional (rotating) plane where dots (note triggers) are positioned.
CIRCULAR PLAYHEADS
In order to understand how Circle works, it can be compared to a classic “piano roll” concept.
In the case of a piano roll, the playhead is a vertical line advancing from left to right. Corresponding MIDI message is sent out when the playhead encounters a note representation. The pitch of the resulting message is directly related to the vertical position of the note on the piano roll. Depending on the note’s distance from the playhead’s starting location, the note will be triggered earlier or later (notes on the left are always triggered before notes on the right).
In the case of Circle, the playhead is represented as a circle growing from a point. Notes positioned closer to the playhead’s starting point will be triggered earlier compared to notes positioned further away. When the plane where notes are placed is rotated but the playhead’s starting location is fixed, temporal relations are altered - the pattern evolves. In Circle, it is possible to have multiple playheads propagating simultaneously.
INDEXED (vs NOTES with fixed pitch)
Compared to a piano roll where pitch is directly related to the vertical position of note representation, in Circle notes’ pitch is not related to their position on the plane (and can be changed at any time). There are two parameters of “notes” that are affected by their position in Circle - starting time and velocity.
Notes in Circle have assigned an index (from I to VII and a special type T). It is indexes I-VII that have assigned pitch values (and also note length). Type I-VII indexed notes result in MIDI message (Note On) when reached by playheads and type T indexed “notes” cause playheads reaching it to be restarted.
PITCH ASSIGNMENT
Pitch value of each index is set as an interval/distance in semitones from the previous index. In the case of index I, it is set as a distance from the ROOT value. This means that changing the ROOT value will shift all pitches, and changing, for example, index III will also offset all consequent pitches (indexes IV-VII).
The actual interval value for each index is set using 3 buttons. The first represents 1 semitone, the second 2 semitones, and the last is 4 semitones. The resulting interval is the sum of activated buttons (0 up to 1 + 2 + 4 = 7 semitones). The same applies to octaves; however, the final octave value of each note can also be modified by playheads.
It is also possible to set pitches of indexes as one of 5 predefined interval patterns (scales) and their 7 rotations (modes).