Announcement

Collapse
No announcement yet.

Variables in combination with MIDI

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Variables in combination with MIDI

    I've got a (what I believe to be) fairly complex task I'm trying to achieve with TouchOSC, Osculator and a few other pieces of MIDI controlled hardware and software.

    Here's a simplified example of what I am trying to do:

    I need to send a MIDI CC (NRPN) value to control a 2 separate faders. What I would like to do is have one physical controller in TouchOSC and a set of toggle buttons. When toggle for Channel 1 is selected the fader sends that CC (and responds to the return MIDI value so it can follow movement) and when the toggle for channel 2 is selected it controls that one.

    Essentially the NRPN values will be off by 1 from each other, I just need to figure out some way for the toggle buttons to send a variable that effects the routing of the OSC fader's messages to the correct event that translates it into MIDI and spits it out.



    I also have a second quick question regarding the keystrokes events. When you send a key stroke to a specific application it does not have to be the application that is currently active correct? It also doesn't become active because of the keystroke does it?

    Is there anything that OSC recieves or transmits that would need to be the active application for regarding MIDI in/out, OSC in/out or keystrokes output?

    Thanks so much for your help, hoping that I can find a solution so I can buy Osculator

  • #2
    Hi,

    Basically, OSCulator does not support NRPN messages, but I believe you can simulate them by triggering two MIDI CC messages in a row. For this, use the duplicate function (choose Edit->Duplicate or Command-D) on a message and assign two MIDI CC events.

    About key events: you are not forced to send key events to the frontmost applications. All key events can have a default application target to which key events will be sent. To choose the default target, go in the Parameters Window, Key Combo tab, and choose an application from the Default Target list. Key Combo events can also be given a specific target on a per key combo basis.

    For more information on key events configuration, please consult the manual at page 21.


    Best,
    Camille

    Comment


    • #3
      Thanks for the super fast response. I got some more time to play with the software today and am starting to get a feel for it.

      I have another application that can do any translations of MIDI that I need to get to NRPN the bigger thing I'm trying to accomplish is to have an OSC control trigger a different event based on a variable from another OSC control.

      i.e. I press button 1 then move fader 1, it's event in OSCulator tells it to send a MIDI CC 1, now I press button 2 and move fader 1 again, this time OSCulator sends it to a different event that tells it to send a MIDI CC 2. I think I can do something with the enable event but not sure if that will work or if there is a better way.

      Thanks

      Comment


      • #4
        This can be done easily.

        Here, you will have two kind of messages:
        - the messages that select what event is currently "enabled" (the buttons).
        - the message that actually fire the MIDI CC event (the fader).

        So, the idea is to duplicate the fader message for each kind of possible MIDI CC and disable every of them (uncheck the checkboxes in the main list so the messages are all disabled). Then assign an Enable event to each button that will change the enabled state of each duplicate. The value you must choose is of the duplicate of the fader message. Therefore, when a button is pressed, the corresponding duplicate will be enabled, and the MIDI CC will be fired when the fader is moved.

        In addition, note that you can press several buttons and the fader will fire every enabled MIDI CC, which can be desired or not ...

        Best,
        Cam

        Comment


        • #5
          used this on Akai APC40 with Arkaos GrandVJ to tweak clip speed, cue, length

          Great thread (even after 5 months ;-))
          Thanks to your info, I managed to get my Akai APC40 to do the following with OSC towards Arkaos GrandVJ 1.6.5 on Mac:

          GrandVJ in Synth mode.
          press and hold one of the 40 (5x8) matrix buttons, then move fader 1 (left most) to tweak speed of the clip underlying that button/cell (which I limit from 0 -paused- to 0,625 -normal speed- so not faster than 100% of the normal speed), without that action influencing speed on one of the 39 other cells/clips below them.

          Same for cue (loop start): hold one of the buttons (don't release), then move fader 2.
          Same for loop length: hold one of the buttons, move fader 3.

          Screenshots and .oscd (Osculator definition template) attached in .zip containing 4 files.
          The .oscd is not complete, but to fill it out completely, is just more of the same.
          The value is rewritten to e.g. /speed1.1.1 (clip speed for bank 1, row 1, column 1)
          In GrandVJ, in the OSC mapping, it therefor says: /speed1.1.1

          I guess I must make one more elaboration in the .oscd, which is accounting for more than one bank (clips 41 and on).
          Attached Files

          Comment


          • #6
            now beyond cell 40, into bank 2

            Okay, cleaned up the template a bit more.
            First cell of bank 2 ('cell 41') can now be found in the template.
            Also, limited the speed range even more (Out. min / Out. max), i.e. to 0,5 (paused) to 0,625 (normal speed '100%' in GrandVJ terms).
            Instead of 0,0 (going backwards fast in GrandVJ) to 0,625.

            Corresponding template attached in zip.
            Attached Files

            Comment


            • #7
              FYI, a rave about Osculator and the approach above at http://www.arkaos.net/forum/viewtopic.php?f=26&t=11212 - the Arkaos GrandVJ forum.

              Comment


              • #8
                Hi AA In T Veld,
                Thanks for sharing!

                Comment


                • #9
                  Hi Camille,
                  congrats on your post #1.900 ;-)

                  OK so I gladly share these things.
                  Yesterday I found out, that one crucial thing does not yet work.

                  Any thoughts?:
                  the Akai APC40 has 40 buttons in a matrix (hence APC40 duh ...)
                  What I have by now achieved, thanks to Osculator, is to have a single slider on the APC40 do '40 different things', since it is linked to the 40 different buttons.

                  My next challenge: GrandVJ uses (max.) 32 banks, and at the moment, my Osculator template has e.g.:
                  cell 1.1 of bank 1 reacting to APC40 button 1.1 plus APC40 slider 1,
                  AND cell 1.1 of bank 2 reacting to this combo as well, AND cell 1.1. of bank 3, AND ... etc., ad nauseam.

                  What I want, in contrast, is that a certain combination of actions on the APC40 ONLY has an effect on e.g.
                  cell 1.1 of bank 1, AND NOT on any other cell (1.1 or otherwise) in any other bank of GrandVJ.

                  It seems, what I would need to set up in Osculator, is something like:
                  a. press (and release) one of the 40 buttons in the 5x8 matrix to define one of the 32 banks (to be added to the template above);
                  b. press (and hold) one of the 40 buttons, at the same time moving 1 slider of the APC40 to e.g. manipulate the speed of the clip behind that specific cell (already defined in the template above) in that specific bank

                  My questions:
                  1. is this approach (a, b) the right one?
                  2. if so: how could this be implemented in Osculator ?

                  Thanks bunches in advance,
                  best,
                  Arie
                  PS: thinking this through a bit more, I seem to need:
                  - punch a button on APC40 to set something like 'bank ID' (1 ... 32)
                  - punch (and hold) a button to set 'cell ID' (1 ... 40) within that bank and move slider to manipulate playback speed of that cell in that bank
                  => the two punched buttons could be the same physical one (button for CELL row 1/column1 is also button for BANK 1), or not
                  => both bank ID and cell ID need to be passed on to the slider, so there is a slider for every combination of cell ID (1 ... 40) and bank ID (1 ... 32)
                  [physically, there is of course just one slider for this on the APC40, but in Osculator it will be duplicated 40*32 = 1280 times]
                  Last edited by aaintveld; 07-16-2012, 03:15 PM.

                  Comment


                  • #10
                    Okay, so I just established that "a poor man's way" of tackling this, is to use a separate preset in Osculator for each bank (GrandVJ term).
                    This implies having to toggle between presets in Osculator, besides punching and sliding on the APC40.
                    A solution, using only the midi hardware controller is still preferred ...

                    Comment


                    • #11
                      Hi Arie,

                      I might have a solution to suggest, but I am not exactly sure of a couple of things:

                      1- When you push and release one button to select a bank, should this translate into sending a MIDI message to GrandVJ (for instance to select a bank in the software)?

                      2- I was about to suggest this: Imagine you have two modes of operation in two OSCulator presets. One preset could be used to select a bank (i.e. send the appropriate MIDI message), and the second preset used to act on a clip (press & hold + fader). Do you have any buttons left on the controller to switch between presets?


                      Best,
                      Cam

                      Comment


                      • #12
                        Hi Cam, thanks for thinking with me.
                        Yes, midi can be used to select a bank (at least: flip to the next/previous one).

                        However, the snag is a different one:
                        when holding down one of the 40 buttons, and moving the slider, and having duplicated that one button to all banks in Osculator,
                        this affects one clip (cell) in EACH of the 32 banks.
                        I will need to use one button for a specific cell across all banks.
                        At the same time, I only want that one button to act on one cell in ONE bank.
                        It seems, that duplicating (within one preset in Osculator) a button/note in Osculator, means that pressing that button on the actual controller, by definition affects al its duplicates (i.e., all banks).

                        Any thoughts?

                        [only alternatives I could think of, are:
                        - use Smartphone / tablet instead of Akai APC40;
                        - map 2 keys on the APC40 back to Osulator, which will flip to the next/previous preset ?? !! ]

                        Comment


                        • #13
                          Okay This might work: have now assigned 2 buttons on APC40 that will flip to the banks (previous /next), at the same time flipping to presets in Osculator.
                          Will see if this completes it;
                          will then post full template.

                          Comment


                          • #14
                            Sounds great Arie!
                            I'll be on vacation but feel free to post updates.

                            Comment


                            • #15
                              Almost (??) there ...
                              The one thing holding me back: when OSCulator is the active application, pushing a button on the APC40 will translate nicely to the key combo that effects 'Previous (or Next) Preset' in OSCulator.
                              However! when another open application is active (and Osculator is still running, behind it), nothing happens in OSCulator when I push the same APC40 button. Even though the Key Combo is assigned to OSCulator ...
                              Any hints maybe?

                              Comment

                              Working...
                              X