Multi-timbral FM7, Earthsea, Kria , Softcut platform
I conceived of Islands before I bought my Norns. It has been increasingly apparent to me that my music practice is one of improvisation and the goal is to be able to sit down and play my electronics from scratch, without excessive programming and preparation, just as a guitarist or saxophone player might. To do that I need a flexible instrument that I an learn thoroughly and encompasses the various techniques I use. Islands is a step on the way to that.
The video above provides a guide to it. There are 4 separate layers of sound with an Earthsea style grid keyboard, there are two softcut loopers and Kria is integrated with each channel currently routed to a different layer.
I’ve called this version 0.1 because there are a number of things I want to change/add.
Rough roadmap: improved FM engine - adding LFOs, Proper Noise, a Filter, Multistage looping envelopes. Need to move the loopers into supercollider (unfortunately since softcut is ace) because I want to be able to loop while the sequencer is playing and for its notes not to be routed into the looper. Synchronisation of loops with sequencer, mixer, effects, Midi out, Possibly MPE (dunno), Crow support
0.1.1 - fixed a couple of things that were irritating me: frequency ratio now goes up to 10 as per original DX7 and there are envelope curves (-10 is very exponential, 10 is very log - basically you can get super snappy percussive envelopes now - the sloppiness of them was what annoyed me)
0.1.2 - Kria saving update - added in the saving update from Kria Midi
0.1.2a - Fixed an odd race condition that caused a failed start when loading Islands
0.1.2b - Fixed a couple of Kria bugs on the pattern pages
0.1.2c - removed ratcheting for the moment, fiddling with the clock.
0.1.2d - ratcheting, timing and repeat notes all working as expected
0.1.3 - added: saving of current layer patches, midi layer destination, support for new parameters
grid, MIDI (optional)
see the video for now
(I’ve submitted a PR to add it to the library)
NOTE: be warned the code is messy since I’ve changed direction as I wrote it - I’ll do a big refactor at some point but want to use it in anger and see how it works before doing that