I think you can get where you need to without stepping down to the SuperCollider level, because it is definitely possible to manage groups of sines via Lua. But it does require keeping track of everything in a Lua table, or multiple tables, so you have a way to iterate over sines as well as keep track of their ID’s.

This sketch of mine is not great, well organized code by any means, but it gives a sense of keeping track of sine frequencies, amplitudes, and ids:

2 Likes

Some of what you’ll need to do isn’t even Lua code as such, it’s thinking about

  1. What you want your “top level” parameters to control
  2. What you need the individual sine waves to do according to those params: turn on, turn off, get softer, get louder, change frequency etc.
  3. imagine a lua table with 64 items in it, each one with an amplitude, frequency, and ID. Maybe each one has a setting like “isOdd” or “isEven” as well, that you set accordingly. There are a lot of ways to iterate over a lua table and change some or all of its contents, so I’m confident that’s something we can figure out. This Engine (unlike some that basically expose all their parameters for midi control) really puts the burden on the script author to manage everything in Lua.
  4. It might help to try to recreate something that already exists and has a very specific well defined behavior, like the Verbos Harmonic Oscillator. Figuring out the code and doing the conceptual/aesthetic design are kind of two different projects, and I tend to sidestep the creative and design aspects until I have a handle on the functional code part.
2 Likes

Yes, I honestly would like to avoid getting too much into Supercollider… Thank you for giving me some hints and strategies. Also, this is a wonderful script. Thank you so much for sharing this.

The Harmonic Osc is a great idea! I think it would sound great as Norns version as the Eurorack version has its issues (overtones are created via wavefolding as far as I know, which does not always sound too great to me). If it had two or more voices and the scale implementation of your sines patch :exploding_head:

1 Like

The raw HID data that I’ve been able to print out into the console are distance, direction and click events.

I’m certainly stabbing in the dark when it comes to linux and kernel so very grateful for any advice - been having a poke around - why is 4.19 not listed here?

/lib/modules $ ls
4.14.34+     4.14.52-14-g00c5424  4.9.59-0.0.6b
4.14.34-v7+  4.14.52-9-g646fe91

To install the driver for this I’d need to add it into /kernel/drivers/hid directory within those modules, correct?

if you’re already able to get HID data, then you could try some tests without the full-on multi-touch driver.

I did some basic norns HID scripts here which will show you what events are being captured: HID demo

Official norns hardware is running 4.14.52 I believe. uname -r at the command line will tell you which one it is.

Sorry, guess I misremembered. Thought simon had rebuilt Norns kernel from newer sources.

The driver project has some stuff about back ports. I dunno

Im working on a script that could use some storage for settings/state. I think the glyph style mechanism found in Kria would be fantastic. I’m thinking I might make a small glyph library so that the logic can be used elsewhere too. Here are my thoughts on that lib, im looking for concerns, advice and suggestions.

The library constructor would need a couple things:
-The size and location on the grid that it will be located.
-The folder where the saved objects go
-pointers to the load and saving/update functions that will be used

The user will have set glyph:on(true) whenever the glyph should actually be displayed in the scripts workflow. And glyph:Draw() will have to be called in the grid update function (but wont do anything if the glyph tool is off)

Glyph will also have to access grid.event(x, y ,z) but wont actively listen unless the glyph tool is currently on.

2 Likes

Also I want to have an feature where the user can scroll through the existing glyphs using the Norns screen so that they only have to remember the rough shape. And so I don’t have to rely on my memory as much. Im on the fence about that part.

if you aren’t already aware - for some built-in page/tab/list solutions see the UI lib: https://github.com/monome/norns/blob/master/lua/lib/ui.lua

1 Like

Hi thanks! I was planning on using that library for everything but the glyph part. Maybe I’m not completely aware of it’s capabilities. Does it have a way for users to name or or identify an object?

1 Like

if I’m following, you can do something like this, for example:

local list1
local list1_items = {"one", "two", "three"}
local list2
local list2_items = {"a", "b", "c"}

function init()
    list1 = UI.ScrollingList.new(0, 0, 1, list1_items)
    list2 = UI.ScrollingList.new(0, 0, 1, list2_items)
end
2 Likes

Right so I’m needing a way for the user to enter a name or a glyph quickly, which will save the object to disk for future recall. Like how kria does this with it’s glyph system. I just want to put that into a tool that can be used by others in tandem with other tools like the ui lib. Another example of a naming input tool would be the wifi password screen. Or the newer hid example that uses a typing keyboard.

I’m curious if anyone has done or started any sort of midi control app. I’m thinking controlling Meris, OTO, Chase Bliss, etc. effects, managing presets. I feel like norns has the potential to do more than what the pre-built devices on the market can (MIDI CC LFOs, for example), as well as act as a looper or delay synced to midi clock.

3 Likes

indeed I was considering making some sort of midi pattern bank like the alesis mmt8

it would be super easy. check out the norns study for midi!

2 Likes

(back in 1.0) I made a variation of the “step” sequencer that would load any of a set of “known” breakbeat patterns. came up with a little format so the pattern file could be human editable in a text editor. (could probably map that to midi too)

Also had the idea to read midi files on norns, but that was a dead-end at the time due to some alsamidi or rawmidi constraints. Might be time to revisit that.

This reminds me I should grab the manual for my mmt8 (currently unused in it’s box) and read up on it some to refresh my memory. :slight_smile:

1 Like

What was the hurdle re: Norns reading MIDI files? If my band can’t find a drummer, I might be interested in making a little drum / backup machine that can read MIDI files :joy:

1 Like

It was awhile ago so I don’t remember specifics. Will need to poke at it again and refresh my memory.

(It came down to not being able to have ALSA read a file and give norns back a stream of midi data. And manually parsing the midi file format is not something I wanna do)

1 Like

I’ve got a script laying around that maps Grid buttons to midi bank changes which I was using as a pseudo clip launcher that elektron boxes would follow by changing patterns. I had the intention of mapping more things to each “slot”.

2 Likes

Anyone thought of realizing something like Tom Mudds Gutter Synthesis for Norns?

Gutter synthesis is a purely digital synthesis process that creates
very physical, acoustic-like sounds using a network of resonant
Duffing oscillators. The software was created specifically for this
project, and is included with the release as an equal part of the
creative output. The downloadable version uses an interrelated
set of eight Duffing oscillators and associated filter banks.

https://entracte.co.uk/projects/tom-mudd-e226/

1 Like