Kria MIDI

yeah cheers that would be very useful! thank you

1 Like

this script just stopped sending out midi today, any idea why that would be? other scripts work so it’s not my setup. the only thing i can think of is that i’ve recently figured out how to save sets and i recently switched between one to another. it has been saving my clock setting automatically on script load, which has been 300 bpm for a while. i see matron mentions something about ignoring clock, so maybe that’s it? i have 2 psets saved but i don’t use those, i just start from the original state each time, which seems to be saving things like clock and patterns like i mentioned

Summary
        # script load: /home/we/dust/code/kria_midi/kria_midi.lua
        Cleanup
        Save
        Done
        # cleanup
        # script clear
        ERROR (i2c/hp) failed to write
        pset >> write: /home/we/dust/data/system.pset
        # script run
        >> reading PMAP /home/we/dust/data/kria_midi/kria_midi.pmap
        clock: ignoring resumption of canceled clock (no coroutine)
        clock: ignoring resumption of canceled clock (no coroutine)
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        clock: ignoring resumption of canceled clock (no coroutine)
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        clock: ignoring resumption of canceled clock (no coroutine)
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        lua: /home/we/dust/code/kria_midi/kria_midi.lua:233: attempt to index a nil value (upvalue 'k')
        stack traceback:
        	/home/we/dust/code/kria_midi/kria_midi.lua:233: in global 'gridredraw'
        	/home/we/dust/code/kria_midi/kria_midi.lua:126: in field 'event'
        	/home/we/norns/lua/core/metro.lua:169: in function </home/we/norns/lua/core/metro.lua:166>
        Engine.register_commands; count: 0
        ___ engine commands ___
        ___ polls ___
        amp_in_l
        amp_in_r
        amp_out_l
        amp_out_r
        cpu_avg
        cpu_peak
        pitch_in_l
        pitch_in_r
        # script init
        Kria Init
        ERROR (i2c/hp) failed to write
        >>

i just tried reinstalling too, but as with most scripts, it seems to save the previous state rather than giving me the original script

*edit: i may have mistakenly left the clock set to "LINK" when i was trying to fix this problem right before i grabbed that matron data. here's what it's giving me now. still no midi:      
Summary

script load: /home/we/dust/code/kria_midi/kria_midi.lua

# cleanup

# script clear

ERROR (i2c/hp) failed to write

pset >> write: /home/we/dust/data/system.pset

# script run

>> reading PMAP /home/we/dust/data/kria_midi/kria_midi.pmap

Engine.register_commands; count: 0

___ engine commands ___

___ polls ___

amp_in_l

amp_in_r

amp_out_l

amp_out_r

cpu_avg

cpu_peak

pitch_in_l

pitch_in_r

# script init

Kria Init

ERROR (i2c/hp) failed to write

delete or move the script’s directory under ~/dust/data if you want to start with a blank slate.

this may fix your problems with kria if they are due to an update changing the saved data format.

1 Like

hey, that worked. thank you. i didn’t know about that

Hi - is there a way to save your pattern / song via the pset - i couldn’t retrieve anything i thought i’d saved via pset.

I think it just saves its own state in a separate file - but TBH I can’t remember.

But a very reasonable request next time I get some time on this …

2 Likes

yes, its saving just the state in pset and not any of the song preset or any pattern data.
Whatever you can do would be appreciated.

1 Like

Hey @coreyr you said “ Kria midi has totally changed how I sequence modular via norns and crow, looking forward to freeing them back up and having control for 4 voices at once!”

Interesting path, as a new Monome costumer and waiting for Ansible next week and Norns to be available soon, I would love to hear you elaborate on that, despite I’ll have to wait grabbing a Crow for an essential lack of knowledge about Max I guess (I’m working on it), it’s difficult for me to immagine what I can accomplish by myself with that nice, slim, black module …
What intriguing me in your post is that you mentioned Kria Midi passing through Norns to go to your modular with Crow(right?) and I’m curious to know what this path can bring to the table differently from a straight Ansible-Kria/Modular connection? More and different controls? I’m missing Max maybe??

I don’t actually work with max at all personally. I thought that I would use crow more as a scriptable utility module, though in practice it has been a bridge between Norns and a small system. As crow only has 4 outputs (very versatile, but usually cv & gate or envelope pairs fir me) I can only make use of 2 of the 4 lanes of sequencing in kria.

When I use crow solo, I pick a useful script from the Bowery collection, maybe make a couple of tweaks in druid, load it up and keep that scrip loaded for quite some time. Currently it is loaded with gingerbread.lua, a little chaos is good.

With ansible, I will be able to run the grid directly into the modular and get 4 lanes of highly flexible cv/gate sequencing, allowing me to run other things on norns and crow again. Crow will likely be used as some kind of bridge between norns and the modular (for clock sharing and other duties) but I’m not entirely sure until it arrives.

2 Likes

I’ll probably get a Crow in a near future, but I need to jump in to .lua a little bit first. I don’t understand nothing at the moment, I think Crow would be useful even with just the available codes to use it like a bridge from Norns/modular of course, but i feel like I’d underuse it like that…
And of course I need a Norns!
Right now I’m on the Monome shop page like a crow on a tree waiting for it :laughing:

A point of clarification here: Kria is a sequencer that runs natively on Ansible, and gives you 4 pairs of gate/cv— in other words four voices.

Kria on norns is a port of the Ansible script. It can output audio, midi notes, and can also connect to crow. As crow has only four outs, it cannot offer the same number of discrete voices.

1 Like

Thank you, Matt. I could definitely have been clearer in my description of how I use what…

1 Like

Yes thanks! What had intrigued me it’s been what @coreyr wrote and I copied above, I thought initially that he prefer to use kria midi trough crow and Norns than Ansible/kria directly with modular.

FYI adding a second crow connected via ii to the first one should make it possible to get four tracks out of norns Kria with some changes to the script, I don’t think it currently supports it :slight_smile:

3 Likes

One solution that’s just occurred to me is to use the crow outs for for cv and 4 outputs from Just Friends to do envelopes? I have just got hold of a crow and have a JF on loan from, fittingly, a friend. If I have time I’ll have a quick look to see if I can get this going, can post my edits if they work and there’s any interest.

3 Likes

This is a more general question but thought I would ask here since it’s for the sake of this script:

How to Norns Midi -> Ableton?

I did the most immediate dumb thing of “plug USB from one to the other” and yeah that’s a no go.

Do I need a midi interface for this? (if so, I’d be interested to learn why – and also to learn what minimal-but-USB-C-compatible option exists for this end). Have spent the past hour up and down the forum and I see lots of people using interfaces to achieve what appear to be similar ends, but I’m not totally sure why / how and it seems funny to get basically a series of small boxes with different cable ends (USB -> 5-Pin, 5-Pin -> USB, USB -> USB-C) and my cable algebra wants to simplify the equations…

The idea is to transition out of euro eventually while maintaining my favorite pieces of functionality (Kria, Faderbank, semi-random CV)

Also small note @junklight, the top post still links to an outdated github link. If you could update that it’d be a joy (got bit by this earlier – current set up has issues connecting to Maiden for some reason…).

If I remember correctly the crow out is supported via a library module it installs. You can add functions to this to get new output combinations. Like using ansible or just friends. New functions should appear in the menus. The script is in data dir (do updates don’t overwrite it)

@yams norns is a USB host, like most other computers with operating systems

it’s not “normal” to connect two hosts together so it requires some device(s) in between that can talk to both and perform some arbitrary translation between them. just as if you wanted to send MIDI between two laptops.

i kinda thought this was well-covered on the forum:

TL/DR: the “iconnect” products by sevillasoft are a commercially-available solution, and okyeron’s “2host” (linked above) is a DIY solution (basically, two teensy-based devices which forward all MIDI messages between them.) the other option is to use two separate USB-MIDI interfaces with a serial MIDI connection between them.

but simply connecting USB cable is unfortunately not ever going to work.

2 Likes

I use midi connect unit to do this. Search on my name here & you should find me talking about it.

I’ve been having a “fallow” period without music for a bit but starting to think about it again. I’ll catch up on updates soonish hopefully

4 Likes

Could this script be modified to control just friends via crow? I just purchased a just friends so im thinking about a norns/crow/grid combo to go with it.

3 Likes