Announcement

Collapse
No announcement yet.

Setting Up a Blueprint MIDI Manager with 4.14 version of MIDI Device Support Plugin

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #46
    Hi Dan

    There is a whole bunch of stuff where I would rather just work in straight code than work with blueprints, but I can't find much documentation on how, for example, to get current NoteOn and NoteOff note or velocity in C++

    I am going to be analyzing pressed note arrays compared to 600 scales and such, and I feel blueprints get overly convoluted very quickly if you are doing anything more complex than simple classes.

    Is there any documentation I can take a look at?

    Thanks.

    Comment


      #47
      Originally posted by EidurArnason View Post
      Hi Dan

      There is a whole bunch of stuff where I would rather just work in straight code than work with blueprints, but I can't find much documentation on how, for example, to get current NoteOn and NoteOff note or velocity in C++

      I am going to be analyzing pressed note arrays compared to 600 scales and such, and I feel blueprints get overly convoluted very quickly if you are doing anything more complex than simple classes.

      Is there any documentation I can take a look at?

      Thanks.
      Hi EidurArnason!

      Check out MIDIDeviceManager.h and MIDIDeviceManager.cpp (located in Engine\Plugins\Runtime\MIDIDevice\Source\MIDIDevice\)

      It wraps portmidi and it does so fairly minimally, so you shouldn't have any trouble figuring out what you want from it. At the very least, you should be able to access its public functions from code!
      Dan Reynolds
      Technical Sound Designer || Unreal Audio Engine Dev Team

      Comment


        #48
        Originally posted by dan.reynolds View Post
        Hi EidurArnason!

        Check out MIDIDeviceManager.h and MIDIDeviceManager.cpp (located in Engine\Plugins\Runtime\MIDIDevice\Source\MIDIDevice\)

        It wraps portmidi and it does so fairly minimally, so you shouldn't have any trouble figuring out what you want from it. At the very least, you should be able to access its public functions from code!
        Thanks Dan

        Comment


          #49
          Yeah, that is pretty interesting)
          Always in touch with James Holver!

          Comment


            #50
            I've got my BP working I get the following debug:

            Loop MIDI is a virtual midi device to send data straight from ableton turning ableton into my "controller"

            I want to have the data from ableton trigger an audio sample in unreal engine.

            How do I tell my script to listen on port 1?
            It seems the script is recognizing ports but not picking a certain one.

            Sorry absolute noob coming from only ableton/C4D

            Comment


              #51
              Hi Sahhar! If you've copied my script, you'll should see an area where you can indicate the MIDI Port by name via String input. So you'll just enter the port name on your MIDI BP, so that it assigns delegates to input on that device.
              Dan Reynolds
              Technical Sound Designer || Unreal Audio Engine Dev Team

              Comment


                #52
                Originally posted by dan.reynolds View Post
                Hi Sahhar! If you've copied my script, you'll should see an area where you can indicate the MIDI Port by name via String input. So you'll just enter the port name on your MIDI BP, so that it assigns delegates to input on that device.
                Hey Dan, What variable name exactly do I enter the string into? do i just enter a numerical value or the whole line of text? and do I input this information in the side bar when the Midi BP is selected?

                Comment


                  #53
                  This part of the Blueprint, from the beginning of the directions:

                  https://forums.unrealengine.com/file...tch?id=1219847

                  It compares the user entered MIDI Device Name with all of the MIDI Devices and when there's a match, it says this, here, this one, that's the MIDI Device I want you to accept input from.
                  Dan Reynolds
                  Technical Sound Designer || Unreal Audio Engine Dev Team

                  Comment


                    #54
                    After about 30-seconds- 1min (or around timestamp 60,000) Unreal just stops receiving midi from ableton every time? Ableton is sending I don't seem to understand why

                    Comment


                      #55
                      I suggest using something like MIDI Ox to help you analyze MIDI connectivity issues. Perhaps some app is taking control of your MIDI device.
                      Dan Reynolds
                      Technical Sound Designer || Unreal Audio Engine Dev Team

                      Comment


                        #56
                        Originally posted by dan.reynolds View Post

                        I'm no programmer, so as a work-around, I was able to get MIDI data into UE4 by using a utility to convert MIDI to CSV and then import the music as a datatable, and then I programmed some blueprints to read it off like a sequencer.

                        It worked out!

                        I was able to prototype a track by hooking Ableton Live! into UE4 via the MIDI device input (and a free utility to create virtual MIDI cables) and write MIDI in Ableton, then I was able to export from Ableton then convert it to CSV then import it into UE4 and then play it back!
                        Hey Dan could you go into more detail about what you did to get the CSV File to play like a sequencer?

                        Comment


                          #57
                          Hi Sahhar!

                          Basically, every tick I would get the delta time, and then map that to MIDI ticks, and then read off the top of the Data Table until I'd reached a MIDI Event that was too far, I would stack all the other events I'd read into an Array of MIDI-style BP Structs, and then I would fire off all of the Events.
                          Dan Reynolds
                          Technical Sound Designer || Unreal Audio Engine Dev Team

                          Comment


                            #58
                            Originally posted by dan.reynolds View Post
                            Hi Sahhar!

                            Basically, every tick I would get the delta time, and then map that to MIDI ticks, and then read off the top of the Data Table until I'd reached a MIDI Event that was too far, I would stack all the other events I'd read into an Array of MIDI-style BP Structs, and then I would fire off all of the Events.
                            Great! What software did you use to go from midi -> CSV?

                            Comment


                              #59
                              Originally posted by sahhar View Post

                              great! What software did you use to go from midi -> csv?
                              midi2csv
                              Dan Reynolds
                              Technical Sound Designer || Unreal Audio Engine Dev Team

                              Comment


                                #60
                                Hi !! It's pretty amazing what you do, but I have a big issue with the "Get All Actors with Interface" Interface I have to choose. I really don't understand where the "MIDI Listener" Interface comes from. I'm a complete noob, by the way. Thanks for your answer !!

                                Comment

                                Working...
                                X