Okay, I wrote the following python script as mymid.py :

"
import mido
import time
def mcatch(msg):
    print (msg)

inp = mido.open_input('Q25 MIDI 1', callback=mcatch)
while(True):
    time.sleep(100)
"

and copied it to /usr/lib/python2.7
-----------
This now works:

julia> using PyCall

julia> @pyimport mymid
note_on channel=0 note=59 velocity=87 time=0
note_off channel=0 note=59 velocity=64 time=0
...


On Sat, Nov 28, 2015 at 10:35 PM, Forrest Curo <treegest...@gmail.com>
wrote:

> I get the following:
> "
> julia> using PyCall
>
> julia> @pyimport mido
>
> julia> inp = mido.open_input("Q25 MIDI 1")
> PyObject <open input 'Q25 MIDI 1' (PortMidi/ALSA)>
>
> julia> for msg in inp
>        print(msg)
>        end
> PyObject <message note_on channel=0 note=59 velocity=91 time=0>
> -------------
> What follows this last prompt: The for loop is quoting a python program
> which prints out midi messages as received...
>
> Whatever Julia is doing with this... leads to printing out the previous
> midi message. That is, the last line here appears when I lift my finger off
> the key. (The note-off will appear when I play the next note.)
>
> Why isn't this working? -- and what function might work better to get
> inp's current value, not the next-to-last?
>

Reply via email to