[RELEASED] MIDI Unified 5.x

We are happy to announce that we have re-released

MIDI Unified 2018.3.6

Features

Midi IN
Midi OUT
Karaoke Sequencer
Keyboard Input (qwerty)
Playmaker Actions

Connect to external applications like Cubase, Ableton, GarageBand, Logic…

iOS MIDI OVER NETWORK(WIFI)

Supported platforms

MIDI IN/OUT
osx, win, ios, wsa,linux, android6>

C# Synthesizer
All platforms

NATIVE Synthesizer
osx, win, wsa, ios, android

BASS24 Synthesizer
osx, win, linux, wsa, ios, android

Here are recent reviews

Great plugin
(1 of 1 found this review helpful)
I’ve used this plugin a while back to just do some basic stuff like interpret midi files, there is a lot of it I have not used yet, been playing around and getting great support and regular updates, sounds great on Android, can take this plugin and easily create something customizable to suit your needs.
There are some example scenes and some essential prefabs to get you up and running.

5 stars if can provide some better documentation having said that it’s easy enough for an intermediate to experienced coder to get what one needs from the code.

Keep up with the plugin updates !

Thanks guys!!
(1 of 1 found this review helpful)
I’ve not used all the features in depth, but this plugin has been extremely useful to me over the last few years - allowing me to get MIDI messages from external MIDI devices or other music software applications such as Ableton Live via the IAC driver.

It was also easy to playback MIDI files via the sequencer.

I had to make some small tweaks to get events for all the types of MIDI messages I wanted to receive, but overall it’s been essential to my project and has made my life much easier!

I’m really glad to see continued support!

Hello, great tool, been having fun with it.

I’m getting an Unity crash when I send midi from Ableton, any ideas what might be causing it?

I’m running Windows 10 and Unity 5.4

Thanks

Likely you have infinite loop. But can not tell :frowning:

How to play a midi file and hear the midi sound?

Please see included example scenes for reference.

Is UWP supported?

Yes.

Sorry for asking but I need to make sure this will do what I need it to before splashing out $100.

If I have an external MIDI device and connect a MIDI to USB cable to the MIDI out port, then plug the USB end into a USB to lightning adapter which plugs into my iPhone, this plugin would allow a Unity app on the phone to receive MIDI signals? Do these MIDI signals contain all the necessary MIDI data i.e. note number, pressure etc.? What is the latency like receiving MIDI signals on iOS?

Thanks for your help!

Yes… it should work. Latency except Android the latency is very good.

How about Bluetooth MIDI on Windows 10 anniversary edition, as per this Microsoft post last year?

Cheers

You will need to find out and I can implement what you need. :slight_smile:

Hi Foriero,

I’ve purchased the package and have been getting stuck into it today. Was able to get my phone to receive MIDI signals as described above - hooray! The downside is the latency is noticeably higher than on my Mac, but I’ll be looking for ways to cut that down in the C# code and potentially some new cables. Do you have any tips to achieve this?

A big downside is the complete lack of documentation, particularly related to the coding side of things which is disappointing for a $100 product. I’m a bit confused by the implementation. There seems to be a distinction between editor devices and regular devices? And why is device information being saved into player/editor prefs?

I’ve been trying to adapt the implementation to allow devices to be connected/disconnected at runtime but no luck. Right now, if a device isn’t connected before the Unity editor opens, it won’t be recognised which is a big PITA. The connection on the iOS side is a bit sketchy as well - running the program once didn’t detect the MIDI device, but it found it the second time. I’ve been writing a class that should keep searching for a device if one isn’t found, and update some on screen text but have faced everything from simply nothing happening to full on silent crashes. Here’s a cut down version:

  private void Awake ()
    {
        m_status = ConnectionStatus.Waiting;
    }

   private void Update ()
    {
        UpdateStatus ();
        if (m_status != ConnectionStatus.Connected)
        {
            // If not connected, continuously poll for a new device
            MidiINPlugin.Refresh ();
        }
    }

    private void UpdateStatus ()
    {
        string name = "";
        if (MidiINPlugin.deviceNames.Count > 0)
        {
            m_status = ConnectionStatus.Connected;
            m_hasConnected = true;
            name = MidiINDeviceSTANDALONE.MidiIn_GetConnectedDeviceName (0);
        }
        else if (m_hasConnected)
        {
            m_status = ConnectionStatus.Disconnected;
        }
        else
        {
            m_status = ConnectionStatus.Waiting;
        }

        m_statusText.UpdateStatus (m_status, name);
    }

Any idea how I’d be able to achieve this? Basically, if no MIDI in device is detected, keep refreshing until one is found, then stop. And also detect if it is disconnected.

Thanks for your help,

Hi, regarding latency. You need to set your app to run 60 frames per second. Default is 30 fames per second.

Regarding the autodetection. We have preliminary implemented autodetection BUT it is not standard feature on all platforms that’s why it is not in final build. I can look into it for you if you really want.

Regarding the documentation. Yes documentation is missing. But we provide example scenes that are pretty much self explanatory if you are seasoned c# developer.

Let me know. If you need real help please contact me on skype : ledvina.m

Thank you, Marek.

Hi Foriero.

Does MIDI Unified 5.x support MIDI clock?

All the best
~ce

Sorry never heard of that. Can you explain a bit more. We support standard short messages midi. (3 bytes ) and on some platforms SysEx.

I can work on MIDI Clock if there is work to be done on that part.

Hi,

I got some problems using the asset. Please answer them, thanks in advance.

I get lots of hang notes, loud noises and even sometimes very loud noise bursts when playing with CSharpSynth.
It is easy to reproduce,

  1. set “best latency” in project setting - audio
  2. load the example - Grid.unity
  3. play
  4. try sliding finger on 2nd row of keyboard (asdfghjk) to make many notes
    → InvalidOperationException or IndexOutOfRangeException happens at
    midiSynthesizer.GetNext () of CsharpSynth.cs. DSP load can be as low as 20% or less to make this happen, so it seems not buffer under-run.

It sometimes happen when just listening to the sequencer, not too many notes are necessary but if you do above, you will definitely see it within 10seconds or so.

I know it happens in CSharpSynth port to unity so it is not your bug but I bought this asset hoping it helps. And found I was wrong, you didn’t fix the code. I am disappointed.

  1. There seems no way to get Bass24 as audio source, am I right?

  2. What are implemented in the softsynth.dll? I want to load a sf2 file into Bass24 and edit its parameters there are no example showing this? Are they just start, stop and such limited bridges?

  3. Foriero - MIDISettigs seems to be not working properly. If I set synth type there, it will always reset to “BASS24”. Why?

Any help appreciated. Thanks.

Hello, please contact me via skype with invoice number. Thank you, Marek. skype : ledvina.m

I use Unity 5.5.1 and MIDI Unified 5.5.1 and Foriero Code 1.4.8
I have a error when compiling in Xcode. The error as below:

ld: ‘/Users/[UserName]/Documents/AkiraSVNUnity/RainbowDrop5AllPlatforms/Deploy/iOS/Libraries/Foriero Store/Others/MIDIUnified/Plugins/iOS/libbass.a(libbass.a-arm64-master.o)’ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

I had try to close bit code to be false, but it do not work.
Could you help me to solve this problem?
My iOS app now have a program bug need to be fixed.

I had solved this problem by reinstall Unity 5.5.1 on Mac. And delete Library directory of Unity Project. In Xcode, close bitcode and rebuild project.