Announcement

Collapse
No announcement yet.

Polyphonic note parameters (Ableton/UnrealEngine)

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

  • Polyphonic note parameters (Ableton/UnrealEngine)

    Hey Camille.

    I'm currently working on a video game live concert with Ableton and Unreal Engine, Osculator being the software that allows us to communicate.
    Everything works fine except that I can't manage to play chords written in Ableton.

    Workflow :

    - One track in Ableton send midi notes to one channel in Osculator /midi/note/1 with OscRouting and D : arg[0], arg[1], arg [2]
    • 0 is Pitch with note parameters event type and Pitch Value
    • 1 is velocity with note parameters event type and velocity value
    • 2 is trigger with note parameters event type and voice value


    - Unreal sends me a Midi Note w/parameter on the good midi channel.

    Everything works fine as far as I play Mono clips in Ableton.

    But when I play Chords, the Midi note w/ parameter from Unreal plays only monophonic notes.

    I understood that it is possible to play polyphonic notes with the help of the voice value, but I didn't found how to make it.

    Thank you very much for your help!

    Tom.

  • #2
    Hi Tom,

    You are correct, the Voice parameter enables you to play polyphonic notes.

    The OSC message controlling the Note Parameters should send a thrid parameter for the Voice. The Voice must be a integer value that represents the index of the note being played.

    So, for example if you have 3 notes, you can assign the indices 0, 1 and 2 to each note.
    Therefore when you send Note Parameters (pitch and velocity), you also specify the voice they are specified.

    Imagine you want to play a chord using OSC messages :

    1- set the pitch and velocity for voice 0
    2- trigger note on
    3- set the pitch and velocity for voice 1
    4- trigger note on
    5- set the pitch and velocity for voice 2
    6- trigger note on

    Because you use different voices, the MIDI Note w/ Params event will not try to turn off the currently playing notes (i.e. play monophonically).

    --

    Now, regarding your workflow, I wonder if this is the most simple way to go.
    I dont exactly understand if Ableton or Unreal sends or plays the MIDI Notes.

    Do you need to do MIDI over the network?
    If so there is a more simple solution using Raw MIDI to OSC messages, just ask me if you want to know more about this.



    Best,
    Cam

    Comment


    • #3
      Hey Camille. Thank you very much for the quick answer!

      I will explain more clearly what our project is about.

      I build a session on ableton. I have say 8 tracks with clips that controls hardware instruments. At the same time the clips sends notes to Osculator.

      We are also making a video game on UE4. In Unreal, we have a plugin that allows us to send and receive osc message (it is not possible currently to make the same with raw midi).

      So basically, when we shoot in Unreal, it sends an osc message to osculator which in turn sends a midi trigger to Ableton to a specific channel. The trick is that I have phantom kind of tracks in Ableton that only sends notes to osculator as note parameters so the trigger from Unreal - with midi notes w/ parameters - plays the right pitches.
      But my midi clips in Ableton are sending midi informations to osculator in individual channels (Midi/note/1 for track one ; midi/note/2 for track 2 etc...) So I don't know how to make more messages by channels as you said I should do. I tried demux, but it creates individuals notes, and for a whole love it is a pain to manage this.

      My problem is that a track only sends one note as there is only one address (for example midi/note/1).
      I would like to store the voices in midi/note/1 but I don't find a way to do this.

      Ps : are you french?

      Comment


      • #4
        So basically, when we shoot in Unreal, it sends an osc message to osculator which in turn sends a midi trigger to Ableton to a specific channel. The trick is that I have phantom kind of tracks in Ableton that only sends notes to osculator as note parameters so the trigger from Unreal - with midi notes w/ parameters - plays the right pitches.
        But my midi clips in Ableton are sending midi informations to osculator in individual channels (Midi/note/1 for track one ; midi/note/2 for track 2 etc...) So I don't know how to make more messages by channels as you said I should do. I tried demux, but it creates individuals notes, and for a whole love it is a pain to manage this.
        OK, I see. This would work if OSCulator generated the voice parameter from the MIDI notes you send. I don't know if I can reconstruct the voice from incoming MIDI. The way you set-up this is interesting: you have a stream of pitches, and you want to be able to trigger a note at any moment, on the speicfied pitch...

        How many notes do you need simultaneously?


        Ps : are you french?
        yep


        Best,
        Cam

        Comment


        • #5
          Salut Camille.

          Thank you so much for your time!

          Originally posted by camille View Post
          How many notes do you need simultaneously?
          I believe four notes maximum would be awesome to make seventh chords.

          We are preparing the concert for the Stunfest Festival in Rennes which will occur at the end of may, if you live not far away you'll be welcome
          If there is no solution yet, we would play only lead parts with the game.

          Comment


          • #6
            Merci pour l'invitation !

            So, to understand clearly, you have several tracks each on different channels, and you need to play 4 notes on each?
            If you only have 4 tracks, you can still use 16 channels (4 notes x 4 tracks = 16 tracks). Setting this up would be tedious but it would work.
            In the meantime, I'll try to think about another solution...

            Comment


            • #8
              Hi Cam,

              Could you specify, where to trigger these notes? I've tried an extra trigger message -which normally works with single Noteparams (just pitch) - but I could not assign it to the "/chord" message (that contains pitch, velocity and voice values).
              thank you.



              Originally posted by camille View Post
              Hi Tom,

              You are correct, the Voice parameter enables you to play polyphonic notes.

              The OSC message controlling the Note Parameters should send a thrid parameter for the Voice. The Voice must be a integer value that represents the index of the note being played.

              So, for example if you have 3 notes, you can assign the indices 0, 1 and 2 to each note.
              Therefore when you send Note Parameters (pitch and velocity), you also specify the voice they are specified.

              Imagine you want to play a chord using OSC messages :

              1- set the pitch and velocity for voice 0
              2- trigger note on
              3- set the pitch and velocity for voice 1
              4- trigger note on
              5- set the pitch and velocity for voice 2
              6- trigger note on

              Because you use different voices, the MIDI Note w/ Params event will not try to turn off the currently playing notes (i.e. play monophonically).

              --

              Now, regarding your workflow, I wonder if this is the most simple way to go.
              I dont exactly understand if Ableton or Unreal sends or plays the MIDI Notes.

              Do you need to do MIDI over the network?
              If so there is a more simple solution using Raw MIDI to OSC messages, just ask me if you want to know more about this.



              Best,
              Cam

              Comment


              • #9
                Hi Boris,

                Please send me your file to camille at osculator dot net, I'll have a look.
                Thanks!

                Best,
                Cam

                Comment

                Working...
                X