tidalcycles/tidal-midi

Symbol not found for PortMidi

pstoica opened this issue · 10 comments

Hey, I'm not really familiar with Haskell, but I tried installing this and then using it in tidal-atom.

GHCi, version 7.10.1: http://www.haskell.org/ghc/ :? for help
Prelude> tidal> tidal> Prelude Sound.Tidal.Context| Prelude Sound.Tidal.Context| tidal> Prelude Sound.Tidal.Context Sound.Tidal.MIDI.Output| Prelude Sound.Tidal.Context Sound.Tidal.MIDI.Output| tidal> Prelude Sound.Tidal.Context Sound.Tidal.MIDI.Output Sound.Tidal.SimpleSynth| Prelude Sound.Tidal.Context Sound.Tidal.MIDI.Output Sound.Tidal.SimpleSynth| can't load .so/.DLL for: /Users/pstoica/.cabal/lib/x86_64-osx-ghc-7.10.1/PortM_JXzdJFqSCV6AdsRy1MFgS0/libHSPortMidi-0.1.4-JXzdJFqSCV6AdsRy1MFgS0-ghc7.10.1.dylib (dlopen(/Users/pstoica/.cabal/lib/x86_64-osx-ghc-7.10.1/PortM_JXzdJFqSCV6AdsRy1MFgS0/libHSPortMidi-0.1.4-JXzdJFqSCV6AdsRy1MFgS0-ghc7.10.1.dylib, 5): Symbol not found: _kMIDIPropertyConnectionUniqueID
Referenced from: /Users/pstoica/.cabal/lib/x86_64-osx-ghc-7.10.1/PortM_JXzdJFqSCV6AdsRy1MFgS0/libHSPortMidi-0.1.4-JXzdJFqSCV6AdsRy1MFgS0-ghc7.10.1.dylib
Expected in: flat namespace in /Users/pstoica/.cabal/lib/x86_64-osx-ghc-7.10.1/PortM_JXzdJFqSCV6AdsRy1MFgS0/libHSPortMidi-0.1.4-JXzdJFqSCV6AdsRy1MFgS0-ghc7.10.1.dylib)
tidal>

Seems like it can't use PortMidi? I haven't found useful solutions yet, so any ideas are appreciated :)

@pstoica could please you provide more details about your operating system?

I am assuming OS X since _kMIDIPropertyConnectionUniqueID seem to refer to the CoreMIDI Symbol. However not finding these symbols somehow let's me think this error may not be directly related to tidal-midi.

Just guessing, but can you try explicitly reinstalling the haskell PortMIDI library and the lower level portmidi c-bindings?

regards

Hey! Yes, I'm using OS X (Yosemite), and I know this probably isn't related to tidal-midi, sorry about that. I really want to use it though!

Explicitly installing PortMIDI (cabal install portmidi) didn't help. Do I need to do anything special for the C-bindings?

Thanks for your help!

Hmm, would installing portmidi through brew be enough? I'll try that when I get home.

Hmm, I've tried brew install portmidi, manually building haskell PortMidi and replacing the files from cabal install portmidi, and constantly reinstalling everything (haskell, etc). But nothing resolved the CoreMidi issues yet :( Might try another computer or just using a Linux VM as a last resort.

What does lib/PortMidi-0.1.4 look like for you?

EDIT: Didn't work on another Yosemite computer either.

Phew, I think it's an issue with GHC 7.8.10.x after skimming through this: https://ghc.haskell.org/trac/ghc/ticket/10568

Seems to be properly linking now. Sorry for the noise.

yaxu commented

Hi @pstoica could you say a bit more about how you resolved this? We're seeing the same problem here

yaxu commented

Ah this seems to be the answer:

cabal install portmidi --ghc-options="-optl-Wl,-framework,CoreMIDI" --reinstall --jobs=1
yaxu commented

No still doesn't work.. Failing at something to do with _audiogetcurrenthosttime ..

yaxu commented

Ah, followed the instructions in the README and it's happier!

7.8.4 is broken on El Capitan and that part of the README wasn't there last time. Good timing!