I don’t own the norns (it’s on the way) but I’ve started to think about what I want to do with it first. I don’t have any solid concepts, but I do like the idea of creating a drum sequencer with all sounds created in Super Collider. I don’t own a grid (new baby just arrived so… that’ll be a year away) so I’m designing to use only the controls on the norns itself.
I’m looking for thoughts/advice/ideas on the image below. I want to support tracks, patterns, and sequences. My thinking was you’d choose “voice” to edit the sound of your voice, and also as a second way into the sequencer for that voice.
You can also enter the sequencer for each voice through the “sequencer” screen.
You build up patterns across the voices, and can create and edit multiple patterns (not sure how many to support). You can then assemble patterns into tracks. I haven’t designed that part yet, on it today.
This is a first pass, so feel free to rip it apart. I’m not easily hurt I’m happy to share the Sketch file.
These look great - I love the sequencer interface. I’ve been wondering about modes and screens on the Norns, it’s a good way to reuse two buttons and three encoders in a lot of different contexts.
One thing I can’t quite figure out from looking at these comps is how the user navigates around sub-screens, is it through selecting nav elements with an encoder and then hitting a key?
From what I’ve seen on the Norns so far you’ll be getting into some uncharted territory as far as the complexity of the UI. Definitely take a look at @markeats UI library for examples of Ul abstractions in code.
Norns reminds me a lot of a greyscale Processing or openFrameworks in terms of building interfaces, where you have to roll your own to even get, like, buttons. I ended up writing multiple Lua library “classes” to have a grid UI for example.
The end result would definitely push the envelope of Norns UI. It would be awesome if you abstracted away the underlying widgets into a shared library!
This looks quiet nice
FYI there are horizontal pages/tabs in the norns v2 main menu and as mentioned @markeats has implemented vertical pages/tabs as well.
That’s the plan. When the norns comes I’ll see how that works.
I’ll share the library, my plan is to create a series of UI objects that other people can use easily, geared towards non developers. So the code may be verbose, because I want it easy to understand.
Made some changes to flesh this out and simplify the structure of tracks.
And to bring it to life a little…
I have a question which is specific to this app so I’ll ask it here, and ponder it myself, and update as I go.
Saving sequences and voices, and then loading these - one table(file) vs multiple?
I want to save the controls of each voice, as well as the notes each voice is triggered, along with the order of patterns in a song, and generic information like app version. I could put all of this into one complex table, or into a few less complex tables. I like to keep things simple, but also crave as few files as possible.
I wonder the best way forward.
I’ve solved my data issue. I’ll soon be asking the community for feedback. Specifically, would people prefer replica sounds made in SC or samples from a real 909?
If I go the SC route it opens up potential to modify the sounds more. If I go the sample route, it’ll sound more like the real thing (I’m sampling a 909 so I own the samples).
Designs are almost done, pixel polishing now.
this looks great so far.
were you aware that norns (in
audio/common) comes loaded with 606, 808, and 909 samples? https://github.com/monome/dust/tree/master/audio/common
I’d imagine that the SC route has more sonic variation and the ability to expand further.
I didn’t know that. I’d add more as I like the idea of having multiple samples per voice, to allow for more humanisation.
Yeah, I think the SC approach will allow for greater scope, including any sound people want to programme.
It’ll delay the release of course, learning Lua and SC at the same time
To be fair this script will come after a coupe of others I’m keen to release first. I’m talking about it here as it’s big enough to get early days feedback on.
This looks so cool! Excited for the day I could potentially sync this to my modular system via Crow.
My vote’s on SC route as well
Glad it looks useful.
Would you want MIDI out as an option along with/instead of the audio?
For my needs just audio would be sufficient/excellent.
just to be difficult, being able to combine supercollider drum synthesis with a sample per drum track would be my ideal, but I would prioritize whatever you find most exciting.
a real drum synthesis and sequencing script would add the most to the platform.
The general flow of this is already written in Lua. I’m not going to start on the UI code until the device arrives though and that’ll take the most time I think. While I await delivery I’m playing with SC. Trying to figure out how I can handle samples and SC voices. If I take it that far it’ll just be a general sequencer rather than the 909 script I’d started with, but hey ho.
I haven’t added it in these screens but tempted to add MIDI out instead of sounds, for people who want that.
Re-reading this I wonder if you mean having a sample play in some boxes and SC voices play in others, or one sequence being SC and the others samples, or?
I guess you mean adding tracks that can cope with samples and SC code, so you could have the 909 cymbal going off while an SC kick drum was also going off?
Yeah, I can’t see that being an issue.
There’s probably many ways of doing it that are better than what I was imagining, but I was think each track could load and manipulate a sample and could do drum synthesis.
That way you could simple turn off the sc stuff if you just want 909 samples (or whatever samples) or vice versa, as well as mixing both together for fatter bass drums and easier triggering/less overall tracks.
I’m also thinking about the eventual grid interface for this, where immediacy is going to reward doing as much as possible with 8 tracks x 16 steps.
An update to this - the UI was simplest bit! Structuring the sequences and saving those to a file that isn’t a mess is where I’m struggling.
I’m working on a much simpler version (alpha is done and on Girhub I just need to share but I’m tired) to learn as I go, and I’ll hook this UI into that when they meet.