Jump to content
Sign in to follow this  
torstenanders

MIDI control questions

Recommended Posts

Having support for MIDI controller data is great, but is it also possible to send pitchbend and aftertouch? Some Ableton Live instruments need that for more complex control (e.g., Collusion), as otherwise only the Modwheel and no other CC message is supported. 

 

Also, I have difficulties understanding what exactly the gen-controller argument span does. Judging from the way the term span is used in the example Controllers 1, I assume this controls the time span the resulting controller movement takes, measured in symbolical note duration, where 1 means a whole note (the term span is used very differently elsewhere, easily causing confusion -- a slightly different argument name would help). So, in effect it should control the length of the resulting list (depending on the set time resolution). However, this is not always the case. What am I missing here? Is there a bug?

 

larger span values result in longer lists, as expected

(length (gen-controller 1 (gen-sine 1024 4 1)))
=> 128
(length (gen-controller 2 (gen-sine 1024 4 1)))
=> 256
(length (gen-controller 4 (gen-sine 1024 4 1)))
=> 512

 

however, for shorter input lists this is not the case

(length (gen-controller 1 (gen-sine 128 4 1)))
=> 128
(length (gen-controller 4 (gen-sine 128 4 1)))
=> 128
(length (gen-controller 1 (gen-sine 12 4 1)))
=> 12
(length (gen-controller 4 (gen-sine 12 4 1)))
=> 12

Does this mean gen-controller always returns at most the number of input values?

 

Further, how does the span affect the result (if it does so) -- are the values simply looped/cut-off or are they interpolated to stretch/shrink over the specified time span?

 

Thanks a lot!

 

Best,

Torsten

Share this post


Link to post
Share on other sites

Actually, in Ableton I can control more params with CC messages via its MIDI map, but it would still be interesting to hear how to control pitchbend and aftertouch. I am aware of the :tuning parameter of DEF-SCORE instruments, but does that support timing information as the :controller argument as well?

 

Thanks! 

 

Best,

Torsten

Share this post


Link to post
Share on other sites

I haven't yet had the chance to test midi controller integration with Opusmodus+Ableton, but I'd be curious to learn more about your findings...!

Share this post


Link to post
Share on other sites

If you have Ableton Live, there is a MIDI bottom in the top-right corner. Click that to enter the MIDI map. Then just click on a supported controller in the Live interface and move any MIDI controller to activate a MIDI link. You can edit these in the left-hand list in the MIDI map.

 

Torsten 

Share this post


Link to post
Share on other sites

I just tested the Ableton Live and Opusmodus Live Coding system - no problems here, but only on 1 port.

added 6 minutes later

Any program (Ableton Live, Logic etc...) can be controlled by OM.

It is important to make a DEF-SOUND-SET file for your system first.

Share this post


Link to post
Share on other sites
14 hours ago, torstenanders said:

 

Actually, in Ableton I can control more params with CC messages via its MIDI map, but it would still be interesting to hear how to control pitchbend and aftertouch. I am aware of the :tuning parameter of DEF-SCORE instruments, but does that support timing information as the :controller argument as well?

 

 

The :tuning has no timing resolution control.

To control the timing you must use :controller keyword.

Share this post


Link to post
Share on other sites

> Does this mean GEN-CONTROLLER always returns at most the number of input values?

 

Is that intended behaviour, and if so why? 

 

It is important to make a DEF-SOUND-SET file for your system first.

 

I understand the usefulness for libraries with key-switches etc, but why for a whole DAW? Would you define one for Logic or Cubase as well?

 

> I just tested the Ableton Live and Opusmodus Live Coding system - no problems here, but only on 1 port.

 

It sometimes works for me as well, but sometimes does't, which is a tricky problem. Would like to know if anyone else had that problem. 

 

> The :tuning has no timing resolution control. To control the timing you must use :controller keyword.

 

Does that mean so far Opusmodus does not support continuously sending pitchbend messages, only per note onset? What about aftertouch?

 

Thanks!

 

Torsten 

 

Share this post


Link to post
Share on other sites
On 5/23/2017 at 9:10 PM, torstenanders said:

I understand the usefulness for libraries with key-switches etc, but why for a whole DAW? Would you define one for Logic or Cubase as well?

 

You define the sound set for the virtual instrument and not for the DAW.

 

 

On 5/23/2017 at 9:10 PM, torstenanders said:

Does that mean so far Opusmodus does not support continuously sending pitchbend messages, only per note onset? What about aftertouch?

 

Opusmodus supports any CC and naturally continuously sending of messages, for that you use the :controller keyword.

The :tuning is not a controller as such.

 

 

On 5/23/2017 at 9:10 PM, torstenanders said:

Is that intended behaviour, and if so why? 


This is fixed:

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Topics

    • By Wim Dijkgraaf
      Is there a way to send MIDI directly, without the need to declare a score?
    • By torstenanders
      I am still working on getting playback for GrandOrgue working properly. I defined a sound set with various articulations (shown in a related post, see link below) for setting, e.g., which manual to use for the current hand, and which stop combinations on that manual. Those articulations already work individually in Opusmodus.
       
      The problem I am facing is that I need to constantly combine multiple of such articulations in a single note. For example, I may need to specify that the right hand stops playing on the manual I (one articulation), that it instead plays on manual II and III coupled (two further articulations) and which stop combinations to use for those manuals (two more articulations). So, in this example we have five articulations on a single note, and each needs to send a specific MIDI event. Such an occurrence is something completely normal in organ literature. In OMN, this could be written, e.g., as follows using my sound set shown in the post linked below. 
       
      '((q c4 -I+II5+III6+II+III))  
      Now, my only problem is that whenever there are two articulations combined for a single note, where each should output its own MIDI event, Opusmodus always only outputs just one of these MIDI events. I confirmed this by checking the resulting MIDI events both in an exported MIDI file and with a realtime MIDI monitor (https://www.snoize.com/MIDIMonitor/). Note that my setup works with other software (notation software and DAWs), as they allow for having multiple articulations allocated to a single note outputting separate MIDI events. 
       
      Is this perhaps somehow possible with Opusmodus as well?
       
      Best,
      Torsten
       
      PS: I realise that Opusmodus does send multiple MIDI events if multiple MIDI events are explicitly specified for a single articulation, as in the "VSL Cello Solo" file. However, I cannot really explicitly define all the possible articulation combinations as individual articulations instead, as what would result in an impractical large number of them. There are currently individual 48 articulations (for an organ with three manuals and 10 preset combinations each), and these articulations can be combined in various ways in pairs, triplets, quadruples etc., which would result in an impractically huge number of articulations to define. 
       
      PPS: One potential workaround for some situations would be to instead allocate some of these articulations to rests immediately preceding the notes for which they are needed, but that is not possible either, because custom articulations cannot be added to rests. Instead, additional notes are added. 
       
      PPPS: For completeness: a related post.
       
       
    • By AM
      hi all, i think a it's a beginner-question...
       
      in SIBELIUS i can write for microtonal things MIDI PITCH BEND MESSAGES to every note i want - or automatically by a plugin. in the score/above the note then it's written for example : ~B0,70 etc....
       
      (my PLAYER (conTimbre) works from SIBELIUS via VST) - now the question: how do i send such MIDI-pitch-bend-messages from OPUSMODUS? the opmo-tuning seems to work different and don't work with conTimbre-player...
       
      https://www.contimbre.com/en/
       
      thanx for any help
      andré
×
×
  • Create New...