Approaching: norns


#975

I wonder if we’ll see some Mutable code running on norns at some point.


#976

The code for maiden (the norns editor) will be released with the shipping of the first batch (along with all the other code).

If one is looking to experiment with Lua in advance any editor will do (gvim, emacs, sublime, VS Code, etc.). The primary distinguishing feature of maiden is that it is designed to be run (served) directly off norns and provide interaction with matron (the norns Lua engine). As an editor maiden is fairly minimal.


#977

for my retinas, will there be a dark mode? I know there was talk about theming/css in the posts above.


#978

That’d be a match made in heaven.


#979

There is a ticket for that already and I expect the style/layout to change a bit post release.

Currently the code base isn’t setup for theming but I get the sense that there are enough web dev savvy folks in this community that a dark mode could happen.


#980

Hey Karl
That’s exactly what i was thinking about. If we can run pd or SC or both i see absolutely no reason why not.

I have so many not to mention some insane CV generators that i have been saving for a rainy day +++ Gendy~ code that Thomas and SPencer and i jut fixed

Norns Xenakis


#981

okay thank you for the info. I think i missed that there as an IDE/interface for it which is very nice idea, bravo
i am going to collect my scripts and review Martin Peach’s stuff as well as Graham Wakefields research

fun times


#982

i am sure that is a given if technobear is in on the game, that’s in his bag of tricks


#983

btw

did you get in on this round of norns? or are you planning to develop without one?


#984

Gendy is the one that I’m (of course) most excited about


#985

I loved Nick’s Gendy ugen and was thinking about it over last couple of days… it’s all very exciting


#986

Just wondering if anyone had much experience with lemur or touch osc? Could grid behaviour be cloned to control mlr on norns for example. I really want to buy another grid not sure I cant afford it this year. Will probably end up selling gear to buy one? :smiley:


#987

I’ll try to answer a few regarding the last few at least at it pertains to me…
1.) yes i got a batch 1 Norns
2.) I am talking about Spencer Russell’s Gendy that i used Flext C++ layr to update for linux 32 bit [organelle] this year. 64 bit is a given.
3.) I am VERY excited to see what can run properly on Norns, Martin Peach has already created a very simple Lua interface for Pure Data so i can enter that way if it’s proper.
4.) graham Wakefield wrote LuaAV but that seems like it’s pulled other than a white paper i found and stuff that is about 7 years old for linux 32 bit which could be cool --i know he’s doing a lot for VR with Oculus/Vive and Max now which i have been using since 1996/teaching since 2004
5.) i have a virtual shitton of experience with lemur and touchOSC


#988

So, just to start tuning my mind into a more nornian state… if i have a SuperCollider project with loads of classes interacted with from a gui; could i just add those classes to the norns’ sc class library and replace the gui with Lua? Or do i have to adapt my classes in some way for this to work?


#989

sc has a bunch of scaffolding code called crone to nicely interface with the lua engine.

here’s how to make the an incredibly simple sc engine:

// CroneEngine_TestSine
// dumbest possible test: a single, mono sinewave
Engine_TestSine : CroneEngine {
	var <synth;

	*new { arg context, doneCallback;
		^super.new(context, doneCallback);
	}

	alloc {
		synth = {
			arg out, hz=220, amp=0.5, amplag=0.02, hzlag=0.01;
			var amp_, hz_;
			amp_ = Lag.ar(K2A.ar(amp), amplag);
			hz_ = Lag.ar(K2A.ar(hz), hzlag);
			Out.ar(out, (SinOsc.ar(hz_) * amp_).dup);
		}.play(args: [\out, context.out_b], target: context.xg);

		this.addCommand("hz", "f", { arg msg;
			synth.set(\hz, msg[1]);
		});

		this.addCommand("amp", "f", { arg msg;
			synth.set(\amp, msg[1]);
		});
	}

	free {
		synth.free;
		super.free;
	}
}

crone automatically reports available commands when the engine is loaded. so lua will be able to call

engine.hz(400)
engine.amp(0.3)

for example. this isn’t a thorough explanation. it’s a starter— throwing something to the sc people until the docs and code is ready. but this give you an idea of what it means to wrap some sc code in a way that lua can see it and play easily.


#990

the Norns (of lore) references don’t stop.


#991

Thanks for the example! Looks reasonable.


#992

@tehn I think beside what it will eventually do a lot of ppl have very high expectation on MLR! everything else is a bonus, can’t wait to play norn and congrats on the success of your instrument. :smiley:


#993

I’m sure that @TheTechnobear can port Norns software to Organelle and Organelle to Norns :slight_smile:


#994

just to be clear, both lua and JS are “dynamically typed,” and in fact both do have runtime type errors (if you try to call a number, add a string, concatenate a function, take a property of nil/null, etc.) JS performs type juggling for comparison operators, lua doesn’t. (maybe it does more implicit type conversions elsewhere too, not sure offhand.)

you’re right to point out that they are very similar in surface structure (though not so much in implementation.) here are some more differences: https://stackoverflow.com/questions/1022560/subtle-differences-between-javascript-and-lua

another one worth mentioning is that in lua, only false and nil are falsy. (0 is truthy.) this gives you the common idiom x = x or v, which initializes x to v if x is unitialized

SC includes a GENDYN imeplementation (for N=1…5)
http://doc.sccode.org/Classes/Gendy1.html
i wonder how it differs