here is the error
image

Tried a shorter mini usb cable and tried running as adm. no luck.

Moving discussion to PMs!

closing the public loop on this one:

basically, ^^outs LFO is no longer working 100% of the time. I will mess around with options to replace a pre-1.0 hack (described in the bug report) this week. apologies for the trouble! all other devices working, though.

1 Like

I’m trying to modify @Galapagoose’s amazing boids script to run in Max standalone in the jit.gl.lua object (currently traveling without my crow). I don’t know any Lua yet and haven’t done anything integrating other languages into Max before so I’d really appreciate any pointers anyone has for how to go about this.

I’ve changed to input/output to inlet/outlet throughout the patch and added the lines
this.inlets = 2
this.outlets = 4
at the top of the patch.

To get things running I’ve tried sending messages of call init and call init_boids to the left intlet of jit.gl.lua. Call init gets an error of ā€œ100: attempt to index global ā€˜metro’ (a nil value).ā€ Maybe this means that in Max the patch doesn’t know how to handle time.

Is this at all the right way to approach this? I’d really appreciate any general or specific advice anyone has to help make this work.

Is it accurate to say that your goal is to run the Boids script entirely in Max without having a crow connected at all? So essentially max is simulating running the crow script for you?

If that is the case (sounds like it is based off of your description), your approach will not work because the crow script relies on several lua libraries which live on crow and are very specific to crow. For instance, the metro library (see metro.lua in the GitHub repo), which defines on crow what a ā€œmetroā€ is - this is not something that inherently exists within Lua.

Another crucial example would be ASLs, which do not inherently exist within Lua. In fact on crow, when an asl is generated, what actually happens is an entire separate section of the firmware takes the ASL command, converts it into a bunch of ā€œbreak pointsā€ (think of the output from the max object [function] and how this gets passed to the [line] object in max), passes those break points and other ASL information to a whole separate part of the firmware written in C, and then runs a bunch of complicated C code to actually update the hardware outputs according to the original ASL which has now been translated into C commands.

So, what does this mean for your goal…

it means that you will need to strip away any part of the boids lua script which references things that are Crow specific and simulate those parts using max objects. I haven’t looked at the boids script in a while, but knowing @Galapagoose, I’m sure the boids logic is nicely isolated from the parts of the code that read and set the ins and outs on crow. You will want to simulate ā€œreadingā€ the inputs in max and then pass that as data into the jit.gl.lua object. You will also need to read up a bit on how the jit.gl.lua object handles data sent to its inlets and generates data sent to its outlets.

You will need to take whatever data is generated by the boids logic and pass it out to Max and then simulate updating Crow’s outputs using Max objects.

Hopefully this makes sense!

Happy to give pointers where necessary.

3 Likes

I’m sorry this might have been answered somewhere, but there is very limited info on the Monome Crow webpage.

Could the Crow inputs actually be used to send an envelope(or two!) into Ableton Live or Max? Is there or could there be some Ableton device where you could, for example, open a ableton gate plugin based on a envelope coming from your modular rig?

Thanks!

1 Like

Absolutely! The M4L device called ^^ins let’s you convert the CV coming into one of the jacks into data in Ableton - you can then map that CV data onto any other Ableton parameter (or multiple parameters).

In normal Max, you can send messages to the crow object to query the current value of a CV input, or you can turn on the default CV streamer for an input which will report the current CV value out of one of the crow object’s outlets at a constant rate without needing to be querying the object over and over again.

2 Likes

Thank you for a very informative reply!

(I also now realize that I accidentally posted this in the wrong thread or somehow made my reply to voidstar instead of the original Crow thread that I intended, so sorry about that as well! I guess I don’t yet really understand how this forum format works.)

woop! ^^ins is the device! @oooans, there should be good Max and Max for Live info here, including a breakdown of what each of the devices does: https://github.com/monome/crow-max-and-m4l

2 Likes

Wait, isn’t it ^^ins that lets you convert the CV coming into one of the jacks into data in Ableton ?

Thank you so much @voidstar! I hadn’t really grasped how exactly the crow firmware and libraries were working together with lua so this is a huge help in pointing me in the right direction!

1 Like

Is it possible to use the Monome Sum patches with Crow?

I have very little experience with Max - I’ve only used the Sum apps with my grid. Apologies if this is a simple question.

I have Max connected to Crow and am playing JF via i2c with no issues (by clicking the ā€œmidiā€ keyboard included with the setup). This was all very straightforward, so thanks for the instruction. However, I can’t figure out how to connect the Sum apps to my Crow/ii/JF patch, and am wondering if this is possible?

Is there any way of sending a run/reset gate when using crow to clock ansible from m4l?

Ideally I would like kria to start from step 1 when I start ableton, in order to record phrases straight into the arrangement view. I am having no issues clocking the sequencer, but it isn’t always easy to line things up :slight_smile:

blast from the paaaaast. I love Sum, I’m so glad you’re using it!

since Sum only sends MIDI clock instead of actual MIDI notes, there is no current way to just point the Sum apps to the MIDI-to-JF part of the [crow] object help patcher. however, it’d be a good learning project for someone to crack open the Sum max patch and use the approach demonstrated in the [crow] help patcher to modify Sum to route note output to JF.

there is no current device that does this, but it should be straightforward to roll your own .amxd that pretty much has a single [message] object with:
crow.ii.kria.position( track, param, pos )
(but with the arguments filled out how you want them)

then, you just click that to reset the specified track, parameter, and position!

it’d also be a dope community project if someone were to create a m4l device or max project that rolls in all the i2c commands from an executable dashboard!!

4 Likes

I know. I was a late arrival into the Monome world after following for about a decade. So, I figured I’d start way back with the software - plus Sum is super straightforward for someone like me without any prior experience with Max.

That version of gome is so inspiring for me, that it may be enough motivation to become more familiar with Max and work towards that goal. I haven’t even progressed to the new version maintained under BEAP, or the M4L version from terms - perhaps that’s another route to communicate w/ Crow? Thanks for the explanation Dan!

1 Like

OMG yes. wait, that’s it! the terms-polygome device does MIDI, just throw that in front of the ^^jf_synth device and you’re golden!

6 Likes

brilliant. Thank you!

Woah, I hadn’t even considered the possibility of doing this over i2c. I have zero experience coding/scripting, but this sounds like it might be manageable if I do some reading.

Would it then in theory be possible to run a crow script such as first, play JF as a polysynth with midi from ableton and clock kria via i2c at the same time? (!)

in theory, yeah. the coming crow firmware update has much better message handling, which should help keep the routing of all those clean.

10000%. it’d be a great first project!

1 Like

i think this might be where i might could help too
i love m4L and have been fooling with it and pd for a while
i like this project idea

1 Like