Unreal Engine 5 | Controlling MetaSounds with MIDI

แชร์
ฝัง

ความคิดเห็น • 25

  • @minuskelvin
    @minuskelvin 3 ปีที่แล้ว +17

    Hey man, this is awesome! We have some nodes which might help -- use the Midi To Frequency node to convert midi note values (as floats) directly into frequency values. That way you don't have to manually type in frequency values in the generators. Then just have midi notes as the input into the MetaSound that you feed directly into the sound from BP. It would significantly reduce the complexity and improve the CPU performance of your MetaSound. I'd also highly recommend thinking more systematically with the BP -- make functions, do some math on reusable code vs copy-pasting. We don't support polyphony inside a single MetaSound yet (thinking of ways we could do that) but it should be doable today with a *LOT* less nodes and complexity. I'd also highly encourage you to think in terms of midi note values (e.g. 0 to 127) vs enumerated note values (e.g. 'C4') as it will help you simplify a ton of stuff. You can get the MIDI value directly from the MIDI input and feed it to your MetaSound. If you want to do chords (poly), you can do the same thing but with a pool of audio components, each playing one MetaSound note. When the note finishes or if you need to voice steal, just push a playing audio component back to the pool of unused audio components. This is effectively how any poly system would work. I'll see if I can make a demo video showing this sometime. Oh and one more thing, the "Sound Utilities" plugin has some useful BP nodes to help with working with MIDI and music.

    • @TheSoundFXGuy
      @TheSoundFXGuy  3 ปีที่แล้ว +5

      Thanks man. I really appreciate the in-depth insight. Such an honor to have you stop by. Really looking forward to more from your team.

    • @MonsterJuiced
      @MonsterJuiced 2 ปีที่แล้ว

      You legend! Thank you :)

  • @FMagno
    @FMagno 3 ปีที่แล้ว +3

    Great video, one tip to deal with this kind of wire problem situation, I noticed that they mostly do the same thing, from what I could see they change only the name in most cases.
    Try to create a pattern for the names you use (what I believe you already do), this way you could use a function that receives only the Midi ID and internally would use this ID to create the name you need to pass to the parameter.
    Then you would be able to simply call the function with the Id, maybe you would be able to even discard the switch you're using.

  • @JohnTosom
    @JohnTosom 3 ปีที่แล้ว +1

    Great job and crazy at the end but I know sometimes is dificult not get those spaghetti jeje.

  • @dow647
    @dow647 3 ปีที่แล้ว +1

    Just amazing, thanks for sharing.

  • @marcusunivers
    @marcusunivers 2 ปีที่แล้ว +1

    Its easier to use shapekeys that move the notes on your model just name that like the Midi Note Number. Then its just triggering the note with the same shapekeyname. No Rotator, no tree of tousend nodes. Only for the Soundgeneration you can add maybe a value to the shapekey name that setting up the pitch of the node.
    Setup will be like this:
    Shapekeyname: 051_C1
    Look what key is pressed and compare it with the first 3 numbers. Make sure to convert the first 3 Numbers in to an Int Value so the 0 on the first one gets removed. On 88 Keys the maximum Midi Number is 108 so you dont need more then that.
    On top you have the benefit to use the Velocity as the amount of value change from the shapekey.
    For the soundpitch just take the everything after the 3 Numbers to set it up. Easy 😏
    I hope this helps some people and makes it way easier. 😊

    • @TheSoundFXGuy
      @TheSoundFXGuy  2 ปีที่แล้ว +1

      That would be 100% easier. Admittedly I was still very new to playing around with MetaSounds when I made this so it’s in no way shape or form optimized.

  • @chazkennedy5816
    @chazkennedy5816 ปีที่แล้ว +1

    I am pretty new to using Unreal Engine, and am curious as to why you would want to use a MIDI controller in Unreal. What kind of benefits/functionality would the MIDI controller be used for? Is using a MIDI controller just like a cool feature, or does it have useful application?
    Awesome videos by the way, I've been learning a lot from them!

    • @TheSoundFXGuy
      @TheSoundFXGuy  ปีที่แล้ว

      In your typical "video game" probably no real application. But as Unreal Engine advances and is used for other application, it allows developers to harness it's technology for other media outlets. For example, you could create a learning tool for teaching someone to play the piano or drums or any other instrument that there are now midi devices for.

    • @ArtemCreation
      @ArtemCreation 9 หลายเดือนก่อน

      im currently making a rougelike where to use the abilities you have to play certain chords at certain times

  • @ashoakenfold
    @ashoakenfold 3 ปีที่แล้ว +4

    You don't need to switch on note, pass it to a function as a parameter.

    • @TheSoundFXGuy
      @TheSoundFXGuy  3 ปีที่แล้ว

      Good to know. Thank you

    • @averial9831
      @averial9831 3 ปีที่แล้ว

      @@TheSoundFXGuy was going to say the same thing - there is an awesome function for semitones! it's amazing : an A [440Hz] is 440*2^(0/12), an A# is 440*2^(1/12), a B is 440*2^(2/12), etc... an A an octave higher (880Hz) is 440*2^(12/12). adammonroemusic.com/blog/intervalchart.png

    • @averial9831
      @averial9831 3 ปีที่แล้ว

      ...music, with base two, is almost binary... wouldn't you say? ;-)

  • @toddlask
    @toddlask 2 ปีที่แล้ว +1

    cool ue5 vids bro!

  • @music_story618
    @music_story618 7 หลายเดือนก่อน

    Hello~ I am very happy to see your video. I have successfully made my keyboard allow players to jump, but it will fail soon. What problems may occur? (
    My "event Beginplay" is shared with Add Input Mapping), but in the video you seem to be using "event Beginplay" to directly connect to the midi device, thank you!

  • @ShapeNoise
    @ShapeNoise 2 ปีที่แล้ว +1

    dang... and I thought I built the worlds largest metasound patch :D

    • @TheSoundFXGuy
      @TheSoundFXGuy  2 ปีที่แล้ว

      Yours are massive and functional. I think I over complicated mine.

  • @MonsterJuiced
    @MonsterJuiced 2 ปีที่แล้ว +1

    "Find all midi device info" just doesn't work anymore for some reason. I have the exact same setup using UE5.01 and nothing is printing to the screen :/
    However if I use "Find MIDIDevices" it works just fine. Do you know anything about this?

    • @francescoulian8827
      @francescoulian8827 2 ปีที่แล้ว +1

      Same problem, tried your method and it seems to work but half a minute after it stops receiving and I can't figure out why, I'm not disabling inputs or something. In 5EA it all worked fine

    • @cinetic_
      @cinetic_ ปีที่แล้ว +1

      @@francescoulian8827 You might need to promote to variable (cache) the result, otherwise in roughly 30 seconds some things get garbage collected.

    • @Nagality
      @Nagality ปีที่แล้ว +1

      Been lookin for this loooong time.

  • @unkgames-abdullahali4048
    @unkgames-abdullahali4048 3 ปีที่แล้ว +1

    I will subscribe your channel now