Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Twitter
  • Modifying amounra Ohm control script for custom controller

    I think you're probably using the Ohm_64 script, which I didn't actually write....I think Michael Chenetz wrote that one.  Regardless, though, the magic you're looking for happens in the second to last line there, where the buttons are assigned.  Basically its saying:

    for track_index in range(8):   # here we create a recursion for an arbitrary variable (track_index) and assign to it on the first recursion the value 0, the next 1, the next 2, until finally we get to 8 where the recursion stops.

    button = ButtonElement( is_momentary, MIDI_NOTE_TYPE, CHANNEL, (track_index *3) + scene_index

    In this line we create the ButtonElement class for each button;  the main thing we're concerned with here is the NoteID for each one, which is the last assignment on that line:  (track_index*3) + scene_index.

    We're already in another recursion at this point, which starts with:

    for scene_index in range(3): #this does the exact same thing as I explained above with the variable scene_index.

    So, basically, we have two nested recursions that set up our grid, one for the y coordinate (scene_index) and one for the x coordinate.

    The first time that you go through the loops, the ID will be:

    scene_index = 0
    track_index = 0*3 = 0
    Button_ID = 0.

    When you get to the end of the recursion cycle, you'll have:

    scene_index = 2
    track_index = 7*3 = 21
    Button_ID = 23

    Does that make any more sense?

  • BASE user settings LED- save-able?

    There are lots of ways to do it. You can add this to the end of the _set_layer3 function:

    if self._user_layer is 0:
    self._send_midi(tuple([240, 0, 1, 97, 12, 61,  ......, 247]))  #this changes the fader need to replace the "....." with a list of 9 numbers, each representing the color for one of the faders.
    self._send_midi(tuple([240, 0, 1, 97, 12, 41, ......., 247]))  #this changes the pad need to replace the "...." with a list of 32 numbers, each representing the sensitivity for one of the pads.
    for pad in self._pad:
    pad.send_value(..., True)  #this will change the color of each pad for the layer...replace "...." with a single integer representing the color you want for this layer.
    elif self._user_layer is 1:
    some code you want.....
    elif self._user_layer is 2:
    some code you want.....
    elif self._user_layer is 3:
    some code you want.....

    I thought that was what the online editor allowed you to do that. 

    No, the online editor is useful for some things (e.g. making global changes to the controller's settings, or customizing settings for using without a script or other applications).  The script accesses the same functions of the controller that the editor does, but does so dynamically so that controller can accommodate the different settings needed by the script/Live.

    Hope this helps!