Thank you, i just wanted to make sure…

Very excited about this. No worries if you don’t want to take it in this direction but it would be rad if you could select a sample as the sound source.

Well: Push and the grid emit every different things; Push is (in user mode) a MIDI device, wheras the grid uses its own protocol (serialosc - as it says, OSC over serial). Norns has support for MIDI built-in (and a study coming soon), but most of the grid-specific apps like mlr won’t be expecting MIDI data. So you’d need to recode most of the UI for them. It would be possible, but… time-consuming. Also, note that the grid is 16x8, not 8x8 like a push, and some functionality always falls outside the 8x8 space.

In short: it’s more apples and oranges than you’d think; the fact both have a grid of buttons is deceptive.

Sending data to the Push’s screen is much more complex: in Push 1 it’s not really available iirc2, and in Push 2, you effectively have to render it on the computer and push it over a protocol to the Push itself.

4 Likes

recoding the patch is one way to go, but has to be done for every patch!
the other approach is to emulate a grid - I have the push2 emulating Norns, a Grid, and Midi, simultaneously :slight_smile:

(note: although this is shown on a rPI3, this code would work on Norns hardware)

the code is a bit lower level, but I’ve already done it for the push2 , and its available in my repo/ push2 branch.
this code could be quite easily adapted for a push 1. its mainly just removing the display code.
(note: i cannot do this, as i don’t have a push 1 anymore)

emulating the monome grid was pretty simple, as it has quite a restricted api (things like set, refresh) ,
if there was a will this could be done quite easily, not only for push, but also other grids like launchpads, using the same/similar approach.

there are older monome grids that are 8x8, so surely the apps should be being written in such a way to allow for these!?

to cope with this on the push 2, I just ‘virtualised’ the grid to appear to be 16x8. (trivial to emulate a 256 too :wink: )
this actually worked very well for almost all functionality, not many functions need access to both sides of the grid at once.

also bare in mind push has so many extra buttons, so these can easily be reused (with custom code) to move a lot of grid functions to dedicated buttons e.g. you dont need a alt func +grid key to do quantise, as push has a dedicated quantise button to use.
this obviously means patch changes, but is fairly simple, as your not actually affecting the grid code, rather supplementing it with new ‘shortcuts’

a push 2 screen is no more complex than the norns lcd , and in fact can be programmed in pretty much the way (once the usb comms is don) - the similarity is why I was able to replicate the norns UI on it, and it can be all run on the norns, which is a computer after all :wink:

push 1, now that is different… as its a character display rather than bitmap (like norns/push2)

this means that you cannot just hook into the norns display api and render as done on the push2.

rather you’d have to create your own UI, this would not be too difficult (e.g. just look at the lua code for displaying/changing parameters) and the midi/sysex model for push is really easy to code.

also you can see this as something of an advantage, as you can redesign the UI to reflect the push closer, e.g. using dedicated buttons (mix, tempo, bpm, etc) and also using the 8 encoders and paging system.
so sure some effort, but the results would be worth it!

of course would not help for patches which are graphically oriented, so only patches that are mostly parameter/grid driven will work ‘out of the box’

but you still have the option to create your own patches, and/or adapt existing patches, which again can make use of the full push hardware.

an even simpler way, if your using the norns hardware is to not try to use the screen this way.
rather, turn the encoders into CC’s which can then be used with norns built in midi mapping, and then use the pads as an 8x8 grid (or virtualised to 16x8 as discussed above)


Its an interesting area…

its seems most norns users have monome grids, so unsurprising thats where the main support lies.
but the new grid api allows for multiple grids, so perhaps this might generate more of a demand for other grids too be support as ‘secondary’ grids.

anyway, not saying any of this is 100% perfect , rather that its definitely viable, and if you have a push (or other grid) - why not!

7 Likes

I made a polyrhythmic sampler that uses the grid.
I’ve got some cleaning up to do, and a few more features to add. But it otherwise functions at a low ppq.

had to break out the ol’ potato to do some filming…

27 Likes

can you please post a gist of the code? this looks great!

[perhaps here Norns: dust ]

2 Likes

so rad. excited to mess with it.

1 Like

I will certainly have it posted sometime this weekend.

2 Likes

I already have a version of this done that uses samples instead. I should get it out there. I’ll tidy it up this afternoon.

4 Likes

very cool.

Interface question: can you change the number of steps / divisions once established? How would one go about that?

I imagine that adding columns is as simple as pressing a button outside of the recognized steps. But, how would you remove columns?

(press-and-hold might be the answer. maybe.)

2 Likes

Two grid key press extends the row the the highest pressed key. Right most column resets row. Single presses toggle divisions on/off.

It’s 4-track, 2 channel. In the video you see the first channel only, which sets tuplets relative to a ‘quarter note’ the second track sets the quarter note on or off. So it’s sort similar to a Euclidean rhythm at the same time.

1 Like

@tehn will crow be usable as a standard audio interface? I do not own Norns (yet?), but I’d absolutely love being able to both input and output sound, CV, and i2c through a single, ridiculously good looking and chainable tiny device.

1 Like

Is that variable? (How much effort would it take to support 8x8 grids?)

crow is not standard audio soundcard, but it will certainly be usable from a non-norns computer. details forthcoming.

14 Likes

I could make an 8x8 version of the script pretty easily. Though, if the values wrap around 8 on your grid, it should still work. I posted the gist in the code review thread if you want to try it out yourself.

1 Like

Oh yeah - the cuckoo mode is pretty much the thing I’d want… I’m not experienced enough with C programming (I may have once programmed “hello world”, though ;)) to modify your Push 2 branch… but this seems like a cool project for the time after my thesis! :slight_smile:

1 Like

cool, @dmon, Im refactoring the code at the moment, so that it works nicer alongside monome grids, but some of this might help your efforts…

Ive also started implementing scripts using the ‘push2 native api’, so that will help solidify that api.

first project is a rewrite of MLR (called un-imaginatively PLR :wink: ) , basic idea is to make use of the full display, and colours of the push (lcd and pads), and also to start using all the ‘musical’ buttons, in place of the unlabelled grid (so things like quantise… and also to build on the metaphors of ableton, so its familiar for push users.

took me a few hours to get the basics running…

  • so all parameters, including per track
  • tracks running, start/stop, record, cut/loop , and track state handling
    (this layout is 4 tracks per page, so 16 steps take 2 rows, so use slightly different colour for each ‘track’’)
  • pattern selection.
  • quantize
  • tempo

to do:

  • move tempo/volume to their normal push locations, and quantise on to a hold quantise button (like ableton) , this will free up some parameter space on the lcd
  • I’m going to use the mod strip for ‘speed’ (fwd/reverse), with spring back … or perhaps position?!
  • file selection (browse button) , this will give me ‘proper’ track names too, where relevant.
    (will have a file selector like the ableton view, this will then be reusable for other scripts)
  • mixer view (mix button), so all levels on one view
    (i need to look into getting crone to send back levels so I can view them)
  • alternative pad layouts, current thoughts
    • a detail view, so one track, will other parts of the pads doing things like speed, and other parameters
    • 1 page view (so , a track per line)
  • extend to 8 tracks from 6
  • enable mute/solo/stop per track

id also love to have a ‘clip’ view, where it shows a tracks waveform, and then enables you to accurately select start/end points with the encoders (like you can in ableton on a sample)… so need to see if crone supports that, and then work out how to quantise the start of it (thats not that difficult i don’t think!?)

(theres still other expected functions, like duplicate, double loop, fixed length (for record) ) … but they all come later , I think the above are the minimum set )

anyways its been a fun couple of hours, i was surprised how quickly it came together - so hopefully I can get through my to do list pretty quickly :slight_smile:

16 Likes

had some fun with the kayan app (by @burn – thank you for the great app!!) this evening. heavily inspired by mary lattimore’s recent harp through delay work (specifically Baltic Birch from her album Hundreds of Days and her piece she composed for a player piano exhibit called Glamorous Mom).

It’s a really simple piece, I am just slowly bring up the reveal knob, ran through delays. I started modulated the delay time at the end.

I learned that bringing up the volume of norns with a lot of gain from mutable instruments veils, and then back down with mannequins rip works well for gain staging in my particular setup.

6 Likes

I updated Dust to get the new version, I see the notes and new scale options which is rad. Are there instructions anywhere to set up the midi out?

Also, I think this might be a bug or something. The music keeps playing even if I remove all orbs, this wasn’t happening before. Has anyone else reported this?

Wasn’t able to get midi out myself. Figured maybe there was another piece required somewhere inside Norns that I was missing maybe? Looking forward to hearing more about this.