ofxMidi updates


#121

A quick poll:

How many of you use the Virtual Midi ports? Would you rather have delta time message sending instead (future note offs, Midi Time Code, etc)?

I’m thinking of replacing RtMidi with portmidi which currently dosen’t support virtual ports but does have cross platform delta time handling. I think portmidi has a better alsa implementation as well …


#122

That’s a tough question. The virtual MIDI ports have been a lifesaver in two recent projects. The benefits of portmidi also seem tempting. I guess abstracting everything and offering a choice of backend would be too much hassle. (would really like to have cake and it)


#123

Mmm yeah, it would be possible to have multiple backends on the desktop. If virtual ports have been useful, I think it’s probably best to keep things as they are either add delta times to RtMidi or virtual ports to portmidi.

Perhaps this is one of those itches I feel like scratching but should just leave alone …


#124

ofxMidi has now been updated for OF 0.8.0 which is to be released soon. The previous stable version is now in the 0.7.4 tag.

RtMidi and PGMidi have been moved into the libs folder so you may need to update your projects.


#125

I’m seeing some weird stuff with the ofxMidi inputExample when I try and build on 10.8.5 - the exampleOutput example builds/functions fine, but the example for inputs isn’t loading at all due to some issues with rtmidi - I have run the scripts for updating to rtmidi 2.0.1 but still seeing the same issues on build

Here be the errors:

  
Undefined symbols for architecture i386:  
  "_kMIDIPropertyName", referenced from:  
      EndpointName(OpaqueMIDIEndpoint*, bool) in RtMidi.o  
      ConnectedEndpointName(OpaqueMIDIEndpoint*) in RtMidi.o  
  "_kMIDIPropertyConnectionUniqueID", referenced from:  
      ConnectedEndpointName(OpaqueMIDIEndpoint*) in RtMidi.o  
  "_MIDIObjectFindByUniqueID", referenced from:  
      ConnectedEndpointName(OpaqueMIDIEndpoint*) in RtMidi.o  
  "_MIDIEndpointGetEntity", referenced from:  
      EndpointName(OpaqueMIDIEndpoint*, bool) in RtMidi.o  
  "_MIDIEntityGetDevice", referenced from:  
      EndpointName(OpaqueMIDIEndpoint*, bool) in RtMidi.o  
  "_MIDIObjectGetStringProperty", referenced from:  
      EndpointName(OpaqueMIDIEndpoint*, bool) in RtMidi.o  
      ConnectedEndpointName(OpaqueMIDIEndpoint*) in RtMidi.o  
  "_MIDIClientCreate", referenced from:  
      MidiInCore::initialize(std::string const&) in RtMidi.o  
  "_MIDIDestinationCreate", referenced from:  
      MidiInCore::openVirtualPort(std::string) in RtMidi.o  
  "_MIDIGetNumberOfSources", referenced from:  
      MidiInCore::openPort(unsigned int, std::string) in RtMidi.o  
      MidiInCore::getPortCount() in RtMidi.o  
      MidiInCore::getPortName(unsigned int) in RtMidi.o  
  "_MIDIInputPortCreate", referenced from:  
      MidiInCore::openPort(unsigned int, std::string) in RtMidi.o  
  "_MIDIDeviceGetNumberOfEntities", referenced from:  
      EndpointName(OpaqueMIDIEndpoint*, bool) in RtMidi.o  
  "_MIDIPortConnectSource", referenced from:  
      MidiInCore::openPort(unsigned int, std::string) in RtMidi.o  
  "_MIDIPortDispose", referenced from:  
      MidiInCore::openPort(unsigned int, std::string) in RtMidi.o  
      MidiInCore::closePort() in RtMidi.o  
  "_MIDIGetSource", referenced from:  
      MidiInCore::openPort(unsigned int, std::string) in RtMidi.o  
      MidiInCore::getPortName(unsigned int) in RtMidi.o  
  "_MIDIObjectGetDataProperty", referenced from:  
      ConnectedEndpointName(OpaqueMIDIEndpoint*) in RtMidi.o  
  "_MIDIClientDispose", referenced from:  
      MidiInCore::~MidiInCore() in RtMidi.o  
      MidiInCore::openPort(unsigned int, std::string) in RtMidi.o  
  "_MIDIEndpointDispose", referenced from:  
      MidiInCore::~MidiInCore() in RtMidi.o  
ld: symbol(s) not found for architecture i386  
clang: error: linker command failed with exit code 1 (use -v to see invocation)  
  


#126

Ah ha…figured it out - for some reason the input example file does not automatically have the Core Midi framework, you have to manually add it


#127

Howdy all,

I’m looking for someone interested in helping maintain this addon. Any takers?


#128

i am having a similar issue here building on Mac.

OSx SDK: 10.8
OF version: 0.8.0

Undefined symbols for architecture i386:
“ofxMidiIn::closePort()”, referenced from:
testApp::exit() in testApp.o
“ofxMidiMessage::ofxMidiMessage()”, referenced from:
testApp::testApp() in main.o
“ofxMidiMessage::operator=(ofxMidiMessage const&)”, referenced from:
testApp::newMidiMessage(ofxMidiMessage&) in testApp.o
“ofxMidiIn::openPort(std::string)”, referenced from:
testApp::setupMidi() in testApp.o
“ofxMidiMessage::getStatusString(MidiStatus)”, referenced from:
testApp::newMidiMessage(ofxMidiMessage&) in testApp.o
“ofxMidiIn::removeListener(ofxMidiListener*)”, referenced from:
testApp::exit() in testApp.o
“ofxMidiIn::listPorts()”, referenced from:
testApp::setupMidi() in testApp.o
testApp::keyPressed(int) in testApp.o
“ofxMidiIn::addListener(ofxMidiListener*)”, referenced from:
testApp::setupMidi() in testApp.o
“ofxMidiIn::setVerbose(bool)”, referenced from:
testApp::setupMidi() in testApp.o
“ofxMidiIn::ofxMidiIn(std::string)”, referenced from:
testApp::testApp() in main.o
“ofxMidiIn::ignoreTypes(bool, bool, bool)”, referenced from:
testApp::setupMidi() in testApp.o
“ofxMidiIn::~ofxMidiIn()”, referenced from:
testApp::testApp() in main.o
testApp::~testApp() in testApp.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I have added CoreMIDI.framework. If I try building for x86_64 then I hit on QT related compile errors.

Anyone having an idea?


#129

I have this same issue on Mac 10.9.2, newest oF:

Undefined symbols for architecture i386:
  "vtable for MidiController", referenced from:
      MidiController::MidiController() in refreq2.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

#130

As far as I know, OF isn’t yet 64 but compatible. Try 32 bit.


#131

This is a problem with your code, not OF or ofxMidi. I know this because the class is question is called “MidiController” and there are no classes named that in OF / ofxMidi. :smiley:

vtable errors usually mean you defined a function in your class header .h and then forgot to implement it on the .cpp. They can also refer to when you inherit virtual functions from a another class and forget the .cpp implementation.


#132

Hi,
I love this addon, but I’m trying to run it in a C++11 64bit compilation of openFrameworks and I don’t know what I need to do for it to happen.
As oF 0.9 introduces C++11 and 64bits I thought it’d be relevant for more people then just me.
I can help to add this feature, but I’d need tips as to where to start.

I’m using a 2011 macbook pro with OS X10.10.3 (going to update it today) and it seems to be a mac-only error :

Error loading 
/Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents/MacOS/DVCPROHDAudio:
dlopen(/Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents/MacO/DVCPROHDAudio,262): 
no suitable image found.  Did find:
      
/Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents/MacOS/DVCPROHDAudio:
 no matching architecture in universal wrapper
  2014-08-01 16:58:26.368 java[11741:17403] Cannot find function pointer
 NewPlugIn for factory C5A4CE5B-0BB8-11D8-9D75-0003939615B6 in 
CFBundle/CFPlugIn 0x7fdb157c4c40 
</Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin> (bundle, not 
loaded)

#133

Hi @cabral1349,
I’m using this plugin right now for a project with the current github version (that shouldn’t be so different from the 0.9 release). I have not had any problems with it so far but I’m using osx 10.9.5
The error that you posted is quite strange, as it is addressing an audio plugin (that one in particular is used by Final Cut, for instance).
Try moving that plugin out of the folder where it is.
If I was you, I would downgrade the OS. Mavericks is not great but in my experience it runs better that yosemite (yet nothing like the ol’ mighty snow leopard )

Best


#134

Hi @roymacdonald, confirmed that it runs on current master branch on OS X10.10.3.
I guess the old branch that I was using has some unupdated libraries or something. It’s not that uncommon for MIDI to generate audio related erros, and this one relates to USB connection of interfaces (which… kind makes sense?).
I like 10.10, just gonna do a minor update from 10.10.3 to 10.10.5, works well in here.

Thanks a lot for the help, that solves both my problem and the (proven to be unexistent) community problem!


#135

Hi, is someone able to connect iOS(10.1.1) and mac(sierra) via wifi midi network session using ofxMidi and pgmidi?

The setup in the audio-midi-setup screen looks fine, the session is active, the device is found and connected, but no midi is received and it gets disconnected after a while. In addition the app has some strange hanging and crashing behaviour while connected in the audio-midi-setup screen.

Also other iOS apps with midi out cannot connect properly.

Found this while searching, maybe it is related to this: Trouble with Wi-Fi Connectivity, iOS10

This worked fine for me with either the last version of ios or osx :confused:

Edit: Ah sorry guys, an empty bonjour name field was causing my problem, so stupid :cold_sweat:


#136

I’ve updated ofxMidi to use Semantic Versioning. A changelog has been added and ofxMidi-specific version tags to replace the previous tags which were based on OF versions.