Announcement

Collapse
No announcement yet.

Noteoff/Z for keycodes/shortcuts?

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

  • Noteoff/Z for keycodes/shortcuts?

    First, thanks Camille for an awesome tool.

    BACKGROUND
    I'm developing a touch interface for Native Instruments' Maschine. The Maschine controller is awesome, and has bidirectional communication with its software brain like I've never seen in any previous drum sequencer software. However, Maschine hates to be MIDI mapped with anything else. If you're not familiar with it, your samples are split into 8 groups, and each group has 8 configurable macros. The macros are the only parts of the interface which can be MIDI mapped, and if you load something new into the group (let's say a drum kit on group B), the macro mappings for that group disappear. You can create mappings beyond the group level; for instance, you can map a physical/virtual encoder to the delay time of a grain delay on only one hi-hat sound in a particular group (provided you've configured the macro in advance), but when you load in a new hi-hat sound (or any other sound onto that pad), the macro—and it's corresponding mapping—disappears.

    (It's been really frustrating, as I'm sure you could imagine. Next I'm planning on doing some stuff for Live's Drum Rack and Geist, both of which take much more kindly to external MIDI/OSC devices. Geist in particular looks like it will provide some very interesting opportunities—I'm interested to find exactly how detailed I can get with touchscreen sample and envelope manipulation.)

    But—a document was released this week that lists all the keyboard commands/shortcuts in Maschine. It's not much, but combined with Osculator at least it gives me something to work with that isn't going to be overwritten every 90 seconds.


    CONTENT
    I'm wondering if it's possible for a trigger (in TouchOSC at the moment, but my next projects are going to be built in Control due to better Android compatibility and more sophisticated formatting options) that Osculator is routing to a keycode/shortcut to send a noteoff-like Z message when it's released?

    Let me describe the specific use case I'm trying to work out right now:

    Maschine has keyboard shortcuts to adjust the resolution of it's grid: 1-8=whole note-⅟₁₂₈th shift+1-7=dotted/triplet whole note-⅟₆₄th, 0=grid off. It also has key commands to quantize a pattern to the current grid settings: q=quantize, shift+q=quantize 50%

    I play all my stuff with the grid off. I just think it sounds better, and it forces me to constantly improve my playing technique. But I've included every key command Maschine understands in my template because I only have so much to work with. During testing, I've realized that you can achieve some interesting effects by setting a grid and snapping notes to it during playback, and that a quick undo drops the notes into their previous positions.

    SO—I'd like to create a trigger that when pressed will send first the grid-on message (let's say shift+4 for dotted 8th notes) immediately followed by quantize (q). More critically, when the trigger is released I'd like it to send undo (standard Cmd/Ctrl+z) so it's not necessary to tap a second trigger to return the notes to their pre-quantized locations.

    Is this possible?

    Thanks in advance for any assistance.

  • #2
    Hi Rymf,

    First of all, thanks for the detailed post.

    If you want to send several keycombos in a row, you can duplicate a message and assign each duplicates a different Key Combo event. The duplicates are always called in the same order, so your Key Combos will as well.

    Now, if you want to send a Key Combo only when the control is released, here is a tip:
    Select the Z message, and choose Demux, then tap you control again to register each different values for Z, this will yield two new messages : one when the value 1 is received (on press), and another when the value 0 is received (on release). You can then assign a Key Combo to the demux'ed argument for 0 that will be triggered only on release. If you want to assign several events on press, then select the demux'ed argument for 1, and duplicate it as described in the previous example. The result is that those events will be triggered when the control is pressed.

    I hope this answers your question.


    Best Regards,
    Cam

    Comment


    • #3
      Thanks for the reply, Cam.

      I don't think I'll have much time to get back to this project until this weekend, but I definitely appreciate the clarification. I have some ideas for additional features I can implement with the techniques you described, though I also want to wait for more feedback from users on what they're using and what can safely be removed before I start changing the interface.

      I haven't done a proper release yet, but if you want to take a look at what I've built so far I made a post on the Native Instruments forum sharing the first iteration with other Maschine users to get some early feedback:

      Join the NATIVE INSTRUMENTS community and learn more about your products with producers, creators and Djs from around the world.

      Comment


      • #4
        Hey Rymf,

        Have you been able to find a solution to your problem?
        I am not using Maschine so I'm afraid I can't try your work, but I can see there has been definitively some effort put into this mapping. If you would like to share your layout with others please post in this category : http://www.osculator.net/forum/forum...oucOSC-Layouts

        Best,
        Cam

        Comment

        Working...
        X