Yes, I’ve looked at all of the non live granular scripts. They look great, just not what I need ATM! Amazing re: clouds!

Sway does granular on live input https://github.com/carltesta/sway

3 Likes

adding live input to the Glut granular engine would be really pretty easy. not a bad first exercise in supercollider

9 Likes

oh wow, i’ve been wanting to be able to do this since i got my fates. thank you

would i just add this to the original Glut script somewhere? or is it more involved than that

1 Like

That’s the Glut code already, unmodified. You’d want to edit it to fill the buffers it creates with live sound, likely via a synthdef using RecordBuf, rather than that code as-is which fills the buffers with sound from the filesystem.

I don’t know much at all about supercollider (yet) but I’m hoping to take a look at this this weekend!

you would add something (loosely) like this to the engine class

/// add a variable to hold a single recording synth
var recSynth;

...

//// add a class method to record
// live record
recordToBuf { arg bufIndex=0, inChannel=0;
	if(buffers[bufIndex].notNil, {
		recSynth = { 
			RecordBuf.ar(
				SoundIn.ar(inChannel),   // capture requested chnanel...
				buffers[bufIndex].bufnum, // to requested buffer
				doneAction:2 // free the synth automatically at buffer end (if not already freed)
			);
		}.play(Crone.server);
	});
}

//// a method to stop recording
// stop recording
stopRecord { 
	if (recSynth.notNil, { recSynth.free; });
}



/// and command glue for lua

this.addCommand("startRecord", "ii", { arg msg;
	recordToBuf(msg[0], msg[1]);
}

this.addCommand("stopRecord", "", { arg msg;
	stopRecord);
}

as written, the recording function is basic and crude:

  • no control over start position
  • can record into multiple buffers at once, each recording will proceed to the end of the buffer,
  • but, can only stop the most recently started recording without more bookkeeping (not a big deal but see elsewhere, like a polysynth, for how to manage multiple running synth instances with an associative collection.)

easy to add overdub / fadein / fadeout options as well. (use recLevel and preLevel fields of RecordBuf, optionally with envelopes)

2 Likes

this exists in the norns library thanks to @markeats

2 Likes

Do you know of any good resources for Supercollider studies? Preferably for people with more programming knowledge than DSP knowledge.

I enjoyed https://ccrma.stanford.edu/~ruviaro/texts/A_Gentle_Introduction_To_SuperCollider.pdf

6 Likes

Thanks @21echoes I will check this out!

Had another idea for a more utility focused Norns script—a multisampler. Theoretically it shouldn’t be terribly difficult—output a series of MIDI notes from the Norns, and record each note in series on to the SD card and name correctly. Think this would be doable?

If I wanted to build a simple paginated script for Norns to change the active script on a Crow where might be a good start for a copy and paste bad coder such as myself? i am thinking menu to change between mult, clock divider etc

2 Likes

maybe check out this example for building the UI (the ScrollingList in particular might be useful) - https://github.com/monome/we/blob/master/demos/ui.lua

You could copy some scripts from Bowery: a crow collection to your script directory on norns and try running something like crow.send("r filename.lua") when you select a new list item.

3 Likes

I don’t think this works, the r <filename> and u <filename> shortcuts are just handled by druid. Seems maybe nice to have a crow.run helper function that would allow executing a crow script as part of setup for a norns script though? I think that since the C function for sending data to crow adds a \n\0 terminator that you currently could not implement this in Lua the way druid does it.

(I also notice that since this function uses strcpy / strcat rather than strncpy / strncat that this function can corrupt memory. Indeed sending a very long line such as crow.send(some_512_byte_string) will crash matron. PR incoming!)

3 Likes

this definitely does not work as “r” is a druid host command, not native crow command.

@Galapagoose has been talking about a norns based crow uploader for awhile. it’s not trivial, but also not super complex. some nuances need to be worked out as @csboling points out above

1 Like

ah my mistake. i suppose you could also just nornsify the crow scripts (change things like ‘input[0]’ to ‘crow.input[0]’) and just invoke functions that redefine crow functionality, instead of actually trying to launch a script

Hi there :slight_smile: Just a little idea… Is the possibility of pre-listening sample per script is doable? i guess this can be a a softcut functionnality implemented in the engine, like a button combination or so…

Hi Everyone, especially to developers :smiley:
I wanted to ask how difficult or possible it would be to create an effect script similar to a mooger fooger pedal like the Murf on Norns / Fates.
@okyeron developed TORI which is very close to MURF.

But the MOOG MidiMurf have 8 filters act as resonant filters with center
frequencies of 200, 300, 450, 675, 1000, 1500, 2200, and 3400 Hz. to this must be added the possibility of scanning all the filters in sequencer mode.

At the moment I only know two pedal remodels both downloadable as a Reaktor ensemble :smile:
It could be a good source of inspiration.

  1. MuRF GLP Series
  2. Murf Waves This most deprecated

It would be really useful to have a script for Norns. It is a device with a great dynamic useful for animating the simplest things :blush:

There are two uses of midimurf with a crossover of the frequency range of the resonant filters.

MANUAL HERE
The first type is the same as in the moogerfooger MF-101 lowpass filter, as well as the lowest filter in the MIDI MuRF’s BASS voicing; the second type is in the top 7 bands of the MIDI MuRF’s BASS voicing and all 8 bands of the MIDS voicing

would it be very difficult?
Thanks

2 Likes

I’m going to try this out later, but figured I’d get the idea out first —
check this out: https://www.jasondavies.com/bml/#0.42/128/64

Traffic (perhaps something else given that name is already taken)

K1 - Alt
E1 - Scroll pages
Visualizer on first page:
E2 - Density / Resolution, from 128x64 to 8x4 (Alt)
E3 - Speed / Tempo (Alt)
K2 - Start and stop
K3 - Reset

I’m thinking sequencer, but paired with some kind of internal oscillator for immediate satisfaction.

Remains to be seen what the mappings are, but I’d also want to leave that somewhat open-ended — make some room for interesting psets.

I’m thinking first page will be the visualizer, and the remaining pages (between 2 or 3) will map model params to sequencer params. Maybe something to do with number of collisions? Or number of moving cars? With respect to X and Y? Melodies? Rhythms? Something in between?

From a design perspective I don’t like having to go into Parameters > Edit so I’d like to keep the menu simple and self-contained.

Thematically I’m thinking World on a Wire meets Koyaanisqatsi — at once a critique and a celebration, a parody and an insight. Random collisions structure our interactions with one another, and the decisions we had thought were behind us only ripple ahead to meet us in the future. Karma, for those trapped in it, is a vicious cycle, a traffic jam not of space but time — the eternal return of the same.

3 Likes

there are a few generative cv sequencers but not gate ones…

1 Like