o-o-o

Cool, I’m up for giving it a shot. I haven’t written any Lua or done Norns dev, but this looks like it’s mostly copy-pasting stuff until it works.

Edit: okay, pull request for global scale is up.

I wanted to ask, is there a way to disable the track internal sound when using it to sequence MIDI? I would like to use some tracks sequencing other equipment and some tracks with the internal sounds.

I tried turning down the volume of the sample/internal engine, but that seems to also turn down the volume of the external synth.

Update: I found a workaround for this, i.e. to play a silent sample.

1 Like

Love me some o-o-o ! I tried using two launchpad mini mkiiis with this script and it stalls / freezes after making a couple connections. Anyone else experiencing this issue?

I know this script is compatible with Midigrid so is there anything I am missing with setting up properly? I am experiencing this freezing on a stock Norns, latest OS, running on internal battery or powered. :raised_hands:

1 Like

What an imaginative and immediately satisfying script. And the ability to record multitracked samples directly integrated? Great work.

1 Like

I’m also using 2x Launchpad Minis Mk3 via Midigrid with no major issues (if any) - no freezing encountered as yet.

2 Likes

Thanks for confirming. I have deleted midigrid and o-o-o and re-installed and I am still encountering issues with my Launchpad Mini Mk3s. When you start patching various instruments (pad, lead, etc): the sounds completely stall out and then return verrry slowly then it speeds up and then goes really fast - well beyond the internal bpm, some audio popping and then seems to smooth out until I start making connections again on the pad.

Neither of the launchpads are active in the devices>midi section and I have both launchpads set to programmer mode. I’ve also tried different USB cables for the launch pads and no change.

This issue doesn’t happen with the Awake script on wither launch pad for reference

I am stumped! I am not sure if this is related but I did just identify that my stock Norns needs a battery replacement due to the issue outlined here. However, I am experiencing this issue with both the USB power and on battery power…

Here is the audio where you can hear the audio completely stall about 20 seconds in then slowly come back at 34 seconds and speed up, pop, etc around minute mark:

@infinitedigits looking in maiden, there are no errors being thrown. Here is a printout of my most recent section where all the above is happening:

# script load: /home/we/dust/code/o-o-o/o-o-o.lua
pset last used: 2
including /home/we/dust/code/o-o-o/lib/utils.lua
including /home/we/dust/code/o-o-o/lib/er.lua
including /home/we/dust/code/o-o-o/lib/network.lua
including /home/we/dust/code/o-o-o/lib/grid_.lua
including /home/we/dust/code/mx.samples/lib/mx.samples.lua
1	1.0
2	1.0666666666667
3	1.125
4	1.2
5	1.25
6	1.3333333333333
7	1.40625
8	1.5
9	1.6
10	1.6666666666667
11	1.7777777777778
12	1.875
# script run
>> reading PMAP /home/we/dust/data/o-o-o/o-o-o.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
including /home/we/dust/code/midigrid/lib/mg_128.lua
including /home/we/dust/code/midigrid/lib/midigrid.lua
including /home/we/dust/code/midigrid/lib/vgrid.lua
including /home/we/dust/code/midigrid/lib/supported_devices.lua
vgrid init with layout: 128
5	 core midi devices
Scanning for supported midigrid devices:
virtual	 -- Not supported
Launchpad Mini MK3 1	 -- Not supported
launchpad_minimk3	 -- Supported
Launchpad Mini MK3 1 2	 -- Not supported
launchpad_minimk3	 -- Supported
mounted_devices
5	launchpad_minimk3
3	launchpad_minimk3
Loading midi device type:launchpad_minimk3 on midi port 5
including /home/we/dust/code/midigrid/lib/devices/launchpad_minimk3.lua
including /home/we/dust/code/midigrid/lib/devices/launchpad_rgb.lua
including /home/we/dust/code/midigrid/lib/devices/generic_device.lua
Loading midi device type:launchpad_minimk3 on midi port 3
including /home/we/dust/code/midigrid/lib/devices/launchpad_minimk3.lua
including /home/we/dust/code/midigrid/lib/devices/launchpad_rgb.lua
including /home/we/dust/code/midigrid/lib/devices/generic_device.lua
Attaching devices:
grid columns: 16
Engine.register_commands; count: 2
___ engine commands ___
fm1	 	ifffffffffffffffffsis
fm1sample	 	isffffffffffffs
___ polls ___
amp_in_l
amp_in_r
amp_out_l
amp_out_r
cpu_avg
cpu_peak
pitch_in_l
pitch_in_r
loaded Odashodasho

The same stalling behavior you’re describing happens to me as well if I make too many connections, and someone else upthread described the same. I think it’s just pushing the processing power of norns, and slows down/catches up because of it.

How many connections does it take to start getting this behavior?

1 Like

Ahh - good question. Forgot to mention this previously. This issue is happening only after the second or third connection - so very few compared to what you are referencing up thread. I’ve experienced that issue with too many connections previously too when using o-o-o stand alone

1 Like

@infinitedigits what about adding grid controls to change key on the fly?
Maybe using the two free central rows of the right part of the grid. We have 16 buttons there, something like:

  • 12 to select the key
  • 2 to shift current octave
  • (bonus: 1 to be used as a modifier similar to a ctrl-all-tracks)
5 Likes

Hi, @infinitedigits , just a short message to thank you for this amazing script.

You made my day 8)

1 Like

that sounds great! would happily accept a PR to do that. it should be added into this file.

very kind, thank you!

is the issue only happening when your midigrid is being used? what about when no grid is being used?

1 Like

That is correct - it happens with midigrid only. I’ve gotten some slowdowns without the grid but only when I went full tilt a few times with tons of connections =P

In the case of moonraker mentioned here, the freezeup happens immediately with midigrid when using two launchpad mini Mkiiis

Could you see if it’s a refresh rate issue? Maybe the midigrid cant be refreshed as fast as grid? Try increasing this line to 1/10 or 1/5: o-o-o/grid_.lua at 33943d7feb190847042792279145dbc20c62311b · schollz/o-o-o · GitHub

Im doubtful that’s the issue but it’s worth a troubleshoot

1 Like

Bumped the refresh rate down to 1/10 and so far no no more freezing using the launchpad mini mk3s :partying_face: I’ll keep playing around and update if I run into any more freezing issues.

Thank you (s)o-o-o much!!!

3 Likes

Thank you so much @infinitedigits ! I love playing around with this wonderful script.
Is it possible to add some other engines? For me even a basic subtractive synth would be more than enough, I’m not really into Fm synthesis, sadly

1 Like

yes it is possible, o-o-o already supports two engines. you can add a third. a few steps are needed:

  1. add a switch after this block so that your engine triggers correctly.
  2. add your engine to the engine list
  3. add any parametesr to the parameter list (this can be the same as the fm parameters, or you can remove some. or you add some, just make sure to define them - eaiser if you don’t have to add some…).

I think that’s it

6 Likes

Thank you so much! I’ll try tomorrow and see where it goes. Don’t think it should be that difficult to define more param tho

1 Like

Just discovered the sample capability here!! This script is amazing, a truly incredible idea.

Question: In sample mode, how hard would it be to add an option for the “grid location” to control the start/window location on a sample (rather than its pitch)? So, theoretically, maybe creating an arc from the first pad to the 64th of would play the first bit (clip time determined by the decay parameter) and the last bit (same deal). Thoughts?

Thanks again for this thing!! I’m super enjoying it!!

2 Likes

it should be pretty easy if you just want the sample start. this line controls the sample start position (right now its always 0, to start at the beginning). I would then maybe hardcode the “note” to always be the same and use the “note” value to map to the sample position. (because note corresponds to position on grid).

for the window…I didn’t add “end” points to the Lua engine function but its also easy to do. you need to add one more “f” to this line. then at this line you can add the end by doing \start,msg[3],\end,msg[4] and then make sure to increase the x in msg[x] in all subsequent ones.

ideally there would be a switch for this mode, but if you want to push those changes I could build in the switch to toggle it.

5 Likes

Woot! I’m gonna try to work on making this happen :slight_smile:

Thanks so much!! :pray:

2 Likes