added sync devices with close name ocs2, ocs2a,...
This commit is contained in:
parent
4b63fceadc
commit
c169e11409
@ -315,7 +315,8 @@ def on_message(ws, message):
|
|||||||
#cc(Confs[wscommand[1]][0]["midichan"], ccvr, ccvl, Confs[wscommand[1]][0]["mididevice"])
|
#cc(Confs[wscommand[1]][0]["midichan"], ccvr, ccvl, Confs[wscommand[1]][0]["mididevice"])
|
||||||
crtvalueMMO3[ccvr]=ccvl
|
crtvalueMMO3[ccvr]=ccvl
|
||||||
|
|
||||||
cc(Confs[wscommand[1]][0]["midichan"], ccvr, ccvl, Confs[wscommand[1]][0]["mididevice"])
|
for mididevice in midi3.findJamDevices(wscommand[1]):
|
||||||
|
cc(Confs[wscommand[1]][0]["midichan"], ccvr, ccvl, mididevice)
|
||||||
|
|
||||||
'''
|
'''
|
||||||
# CC : /device/cc/2 127
|
# CC : /device/cc/2 127
|
||||||
@ -347,12 +348,14 @@ def on_message(ws, message):
|
|||||||
|
|
||||||
# NOTEON : /device/noteon note velocity
|
# NOTEON : /device/noteon note velocity
|
||||||
elif wscommand[2] == "noteon":
|
elif wscommand[2] == "noteon":
|
||||||
midi3.NoteOn(int(oscpath[1]), int(oscpath[2]), Confs[wscommand[1]][0]["mididevice"])
|
for mididevice in midi3.findJamDevices(wscommand[1]):
|
||||||
|
midi3.NoteOn(int(oscpath[1]), int(oscpath[2]), mididevice)
|
||||||
|
|
||||||
|
|
||||||
# NOTEOFF /device/noteoff note
|
# NOTEOFF /device/noteoff note
|
||||||
elif wscommand[2] == "noteoff":
|
elif wscommand[2] == "noteoff":
|
||||||
midi3.NoteOff(int(oscpath[1]), Confs[wscommand[1]][0]["mididevice"])
|
for mididevice in midi3.findJamDevices(wscommand[1]):
|
||||||
|
midi3.NoteOff(int(oscpath[1]), mididevice)
|
||||||
|
|
||||||
|
|
||||||
# if needed a loop back : WS Client -> server -> WS Client
|
# if needed a loop back : WS Client -> server -> WS Client
|
||||||
|
15
jamidi.json
15
jamidi.json
@ -32,6 +32,17 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
|
"tmlsr" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"_comment": "Server is laser.teamlaser.fr",
|
||||||
|
"type": "serverconf",
|
||||||
|
"name": "tmlsr",
|
||||||
|
"IP": "laser.teamlaser.fr",
|
||||||
|
"port": 8081
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
"ocs2": [
|
"ocs2": [
|
||||||
{
|
{
|
||||||
"_comment": "OCS-2 device parameters",
|
"_comment": "OCS-2 device parameters",
|
||||||
@ -50,7 +61,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"ocs2": [
|
"ocs2b": [
|
||||||
{
|
{
|
||||||
"_comment": "OCS-2 control with BCR2000",
|
"_comment": "OCS-2 control with BCR2000",
|
||||||
"type": "mididevice",
|
"type": "mididevice",
|
||||||
@ -59,7 +70,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"mmo3": [
|
"mmo3b": [
|
||||||
{
|
{
|
||||||
"_comment": "MMO-3 control with BCR2000",
|
"_comment": "MMO-3 control with BCR2000",
|
||||||
"type": "mididevice",
|
"type": "mididevice",
|
||||||
|
@ -150,8 +150,8 @@ def MidinProcess(inqueue, portname):
|
|||||||
MidiVel = msg[2]
|
MidiVel = msg[2]
|
||||||
print("NOTE ON :", MidiNote, 'velocity :', MidiVel, "Channel", MidiChannel)
|
print("NOTE ON :", MidiNote, 'velocity :', MidiVel, "Channel", MidiChannel)
|
||||||
#NoteOn(msg[1],msg[2],mididest)
|
#NoteOn(msg[1],msg[2],mididest)
|
||||||
print("Midi in process send /"+findJamDevice(portname, MidiChannel)+"/noteon "+str(msg[1])+" "+str(msg[2]))
|
print("Midi in process send /"+findJamName(portname, MidiChannel)+"/noteon "+str(msg[1])+" "+str(msg[2]))
|
||||||
wssend("/"+findJamDevice(portname, MidiChannel)+"/noteon "+str(msg[1])+" "+str(msg[2]))
|
wssend("/"+findJamName(portname, MidiChannel)+"/noteon "+str(msg[1])+" "+str(msg[2]))
|
||||||
|
|
||||||
'''
|
'''
|
||||||
# Sampler mode : note <63 launch snare.wav / note > 62 kick.wav
|
# Sampler mode : note <63 launch snare.wav / note > 62 kick.wav
|
||||||
@ -182,18 +182,18 @@ def MidinProcess(inqueue, portname):
|
|||||||
|
|
||||||
print("NOTE OFF :", MidiNote, 'velocity :', MidiVel, "Channel", MidiChannel)
|
print("NOTE OFF :", MidiNote, 'velocity :', MidiVel, "Channel", MidiChannel)
|
||||||
#NoteOff(msg[1],msg[2], mididest)
|
#NoteOff(msg[1],msg[2], mididest)
|
||||||
print("Midi in process send /"+findJamDevice(portname, MidiChannel)+"/noteoff "+str(msg[1]))
|
print("Midi in process send /"+findJamName(portname, MidiChannel)+"/noteoff "+str(msg[1]))
|
||||||
wssend("/"+findJamDevice(portname, MidiChannel)+"/noteoff "+str(msg[1]))
|
wssend("/"+findJamName(portname, MidiChannel)+"/noteoff "+str(msg[1]))
|
||||||
|
|
||||||
|
|
||||||
# # CC on all Midi Channels
|
# # CC on all Midi Channels
|
||||||
if CONTROLLER_CHANGE -1 < msg[0] < 192:
|
if CONTROLLER_CHANGE -1 < msg[0] < 192:
|
||||||
|
|
||||||
MidiChannel = msg[0]-175
|
MidiChannel = msg[0]-175
|
||||||
#findJamDevice(portname, MidiChannel)
|
#findJamName(portname, MidiChannel)
|
||||||
print("channel", MidiChannel, " ",findJamDevice(portname, MidiChannel), " CC :", msg[1], msg[2])
|
print("channel", MidiChannel, " ",findJamName(portname, MidiChannel), " CC :", msg[1], msg[2])
|
||||||
print("Midi in process send /"+findJamDevice(portname, MidiChannel)+"/cc/"+str(msg[1])+" "+str(msg[2])+" to WS")
|
print("Midi in process send /"+findJamName(portname, MidiChannel)+"/cc/"+str(msg[1])+" "+str(msg[2])+" to WS")
|
||||||
wssend("/"+findJamDevice(portname, MidiChannel)+"/cc/"+str(msg[1])+" "+str(msg[2]))
|
wssend("/"+findJamName(portname, MidiChannel)+"/cc/"+str(msg[1])+" "+str(msg[2]))
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
@ -233,20 +233,10 @@ def NoteOn(note,color, mididest):
|
|||||||
midiport[port].send_message([NOTE_ON, note, color])
|
midiport[port].send_message([NOTE_ON, note, color])
|
||||||
|
|
||||||
# To All
|
# To All
|
||||||
elif mididest == "all" and midiname[port].find(mididest) != 0 and midiname[port].find(BhorealMidiName) != 0 and midiname[port].find(LaunchMidiName) != 0:
|
elif mididest == "all" and midiname[port].find(mididest) != 0:
|
||||||
midiport[port].send_message([NOTE_ON, note, color])
|
midiport[port].send_message([NOTE_ON, note, color])
|
||||||
|
|
||||||
'''
|
|
||||||
# To Launchpad, if present.
|
|
||||||
elif mididest == "launchpad" and midiname[port].find(LaunchMidiName) == 0:
|
|
||||||
launchpad.PadNoteOn(note%64,color)
|
|
||||||
|
|
||||||
# To Bhoreal, if present.
|
|
||||||
elif mididest == "bhoreal" and midiname[port].find(BhorealMidiName) == 0:
|
|
||||||
gstt.BhorLeds[note%64]=color
|
|
||||||
midiport[port].send_message([NOTE_ON, note%64, color])
|
|
||||||
#bhorosc.sendosc("/bhoreal", [note%64 , 0])
|
|
||||||
'''
|
|
||||||
|
|
||||||
|
|
||||||
def NoteOff(note, mididest):
|
def NoteOff(note, mididest):
|
||||||
@ -260,21 +250,9 @@ def NoteOff(note, mididest):
|
|||||||
midiport[port].send_message([NOTE_OFF, note, 0])
|
midiport[port].send_message([NOTE_OFF, note, 0])
|
||||||
|
|
||||||
# To All
|
# To All
|
||||||
elif mididest == "all" and midiname[port].find(mididest) == -1 and midiname[port].find(BhorealMidiName) == -1 and midiname[port].find(LaunchMidiName) == -1:
|
elif mididest == "all" and midiname[port].find(mididest) == -1:
|
||||||
midiport[port].send_message([NOTE_OFF, note, 0])
|
midiport[port].send_message([NOTE_OFF, note, 0])
|
||||||
|
|
||||||
'''
|
|
||||||
# To Launchpad, if present.
|
|
||||||
elif mididest == "launchpad" and midiname[port].find(LaunchMidiName) == 0:
|
|
||||||
launchpad.PadNoteOff(note%64)
|
|
||||||
|
|
||||||
# To Bhoreal, if present.
|
|
||||||
elif mididest == "bhoreal" and midiname[port].find(BhorealMidiName) == 0:
|
|
||||||
midiport[port].send_message([NOTE_OFF, note%64, 0])
|
|
||||||
gstt.BhorLeds[note%64] = 0
|
|
||||||
#bhorosc.sendosc("/bhoreal", [note%64 , 0])
|
|
||||||
'''
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Generic call back : new msg forwarded to queue
|
# Generic call back : new msg forwarded to queue
|
||||||
@ -576,8 +554,8 @@ def listdevice(number):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# return device name number for given mididevice and midichannel
|
# return device name for given mididevice and midichannel
|
||||||
def findJamDevice(mididevice, midichan):
|
def findJamName(mididevice, midichan):
|
||||||
|
|
||||||
#print("searching", mididevice, "channel", midichan,'...')
|
#print("searching", mididevice, "channel", midichan,'...')
|
||||||
|
|
||||||
@ -593,6 +571,22 @@ def findJamDevice(mididevice, midichan):
|
|||||||
return "None"
|
return "None"
|
||||||
|
|
||||||
|
|
||||||
|
# return all midi devices for given name
|
||||||
|
def findJamDevices(name):
|
||||||
|
|
||||||
|
devices = []
|
||||||
|
print ("searching", name)
|
||||||
|
for (k, v) in Confs.items():
|
||||||
|
|
||||||
|
if v[0]["type"] == "mididevice":
|
||||||
|
#print(k, name,k.find(name))
|
||||||
|
if k.find(name) != -1:
|
||||||
|
#print(v[0]["mididevice"])
|
||||||
|
devices.append(v[0]["mididevice"])
|
||||||
|
#print(devices)
|
||||||
|
return devices
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def check():
|
def check():
|
||||||
|
|
||||||
|
14
main.py
14
main.py
@ -256,7 +256,8 @@ def message_received(client, wserver, message):
|
|||||||
#cc(Confs[wscommand[1]][0]["midichan"], ccvr, ccvl, Confs[wscommand[1]][0]["mididevice"])
|
#cc(Confs[wscommand[1]][0]["midichan"], ccvr, ccvl, Confs[wscommand[1]][0]["mididevice"])
|
||||||
crtvalueMMO3[ccvr]=ccvl
|
crtvalueMMO3[ccvr]=ccvl
|
||||||
|
|
||||||
cc(Confs[wscommand[1]][0]["midichan"], ccvr, ccvl, Confs[wscommand[1]][0]["mididevice"])
|
for mididevice in midi3.findJamDevices(wscommand[1]):
|
||||||
|
cc(Confs[wscommand[1]][0]["midichan"], ccvr, ccvl, mididevice)
|
||||||
|
|
||||||
|
|
||||||
# RESET : /device/reset 1
|
# RESET : /device/reset 1
|
||||||
@ -269,12 +270,16 @@ def message_received(client, wserver, message):
|
|||||||
|
|
||||||
# NOTEON : /device/noteon note velocity
|
# NOTEON : /device/noteon note velocity
|
||||||
elif wscommand[2] == "noteon":
|
elif wscommand[2] == "noteon":
|
||||||
midi3.NoteOn(int(oscpath[1]), int(oscpath[2]), Confs[wscommand[1]][0]["mididevice"])
|
for mididevice in midi3.findJamDevices(wscommand[1]):
|
||||||
|
midi3.NoteOn(int(oscpath[1]), int(oscpath[2]), mididevice)
|
||||||
|
#midi3.NoteOn(int(oscpath[1]), int(oscpath[2]), Confs[wscommand[1]][0]["mididevice"])
|
||||||
|
|
||||||
|
|
||||||
# NOTEOFF /device/noteoff note
|
# NOTEOFF /device/noteoff note
|
||||||
elif wscommand[2] == "noteoff":
|
elif wscommand[2] == "noteoff":
|
||||||
midi3.NoteOff(int(oscpath[1]), Confs[wscommand[1]][0]["mididevice"])
|
for mididevice in midi3.findJamDevices(wscommand[1]):
|
||||||
|
midi3.NoteOff(int(oscpath[1]), mididevice)
|
||||||
|
#midi3.NoteOff(int(oscpath[1]), Confs[wscommand[1]][0]["mididevice"])
|
||||||
|
|
||||||
|
|
||||||
# Loop back : WS Client -> server -> WS Client
|
# Loop back : WS Client -> server -> WS Client
|
||||||
@ -299,6 +304,7 @@ LoadConfs()
|
|||||||
|
|
||||||
serverIP = Confs[servername][0]["IP"]
|
serverIP = Confs[servername][0]["IP"]
|
||||||
wsPORT = Confs[servername][0]["port"]
|
wsPORT = Confs[servername][0]["port"]
|
||||||
|
print(Confs["ocs2"][0]["mididevice"])
|
||||||
|
|
||||||
print("Running....")
|
print("Running....")
|
||||||
|
|
||||||
@ -310,7 +316,7 @@ try:
|
|||||||
wserver = WebsocketServer(wsPORT,host=serverIP)
|
wserver = WebsocketServer(wsPORT,host=serverIP)
|
||||||
midi3.ws = wserver
|
midi3.ws = wserver
|
||||||
midi3.Confs = Confs
|
midi3.Confs = Confs
|
||||||
midi3.findJamDevice("UM-ONE:UM-ONE MIDI 1 20:0", 1)
|
#midi3.findJamDevices("ocs2")
|
||||||
|
|
||||||
print("")
|
print("")
|
||||||
print(GetTime(),"Launching Jamidi Websocket server...")
|
print(GetTime(),"Launching Jamidi Websocket server...")
|
||||||
|
Loading…
Reference in New Issue
Block a user