Hi Eelke,
Rtmidi has it's own internal event loop. You shouldn't have to worry about
the pyglet event loop - just use `port.set_callback` to update the methods
on your classes.
1. Why are you trying to pass `self` into the callback? I'm not sure what
you are trying to do.
2. Do you mean PC Keyboard key, or musical keyboard key?
On Saturday, April 21, 2018 at 4:57:24 PM UTC+9, Eelke Johnson wrote:
>
> Hi,
> It's been a while since I didn't posted anything but I'm back!
> I've got some problem with the python rt-midi package. I didn't find any
> useful and complete documentation. I built the sphinx documentation but
> except the installation, I didn't found something useful and I'm stuck!
>
> What I want to do basically is this:
> key_map = { 0: "c",
> 1: "c#",
> 2: "d#",
> 3: "d#",
> 4: "e",
> 5: "f",
> 6: "f#",
> 7: "g",
> 8: "g#",
> 9: "a",
> 10: "a#",
> 11: "b"
> }
>
> # Midi configuration
>
> midi_in = rtmidi.MidiIn()
> available_ports = midi_in.get_ports()
> port = midi_in.open_port(1)
>
> def hit_a_key(message, data):
> m = message[0][1]%12
> self.ring.notes[key_map[m]].played()
>
> def release_a_key(message, data):
> m = message[0][1]%12
> self.ring.notes[key_map[m]].idle()
>
> port.set_callback(hit_a_key, data=self)
> port.set_callback(release_a_key, data=self)
>
> The two problems I faced are:
>
> 1. I cannot pass the self object who contain my ring into the midi
> function
> 2. I didn't found how to implement an event hit/release. The callback
> is called each time you press/release a key and I don't want that^^
>
> Furthermore, I'm not sure if this is properly nested with the
> pyglet.app.run() loop
>
> My code is on github https://github.com/way2key/Midi_Visualizer HERE
> <https://github.com/way2key/Midi_Visualizer>
>
> I'm close to the end of this small program!
>
> Merci Eelke
>
--
You received this message because you are subscribed to the Google Groups
"pyglet-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/pyglet-users.
For more options, visit https://groups.google.com/d/optout.