If I understand the goal here: to visualize the state of particular parameters of interest to the player in a live situation - I was wondering if you’d thought of midi steganography as a possible way to output the results. Namely, send a load of midi out containing an encoding of a textual representation of states.
I’ve been experimenting with this as a long term fanciful goal of associating a kind of karaoke display with the progression of a looper over a number of bars - i.e to show the lyrics at that particular part of the song. The way I thought of doing it would be to use the velocity of a note to contain the ascii value of the character. Basically representing each text line as a chord (with max 128 notes/characters) - just get the notes going up one by one, but for each note giving a velocity to represent that character.
In Python, as an experiment, here is turning a text into a midifile (though in your system it would need to be dynamic) - I’ve used < and > as indicating start transmission and end transmission. The client would then need to recovert the received midi back into text to be displayed.
from midiutil import MIDIFile
notes="<"
count=0
MyMIDI = MIDIFile(1)
MyMIDI.addTempo(0, 0, 240)
MyMIDI.addNote(0, 15, 0, count/10, 0.1, 60)
count=1
with open("text.txt") as f:
while True:
line = f.readline()
if not line:
break
verseline = line
for j in range(0, len(verseline)):
#notes+=str(ord(verseline[j]))+","
# MyMIDI.addNote(track, channel, pitch, time + i, duration, volume)
MyMIDI.addNote(0, 15, j, count/10, 0.1, ord(verseline[j]))
count += 1
#notes+="\n---------------------------------------"
#print(notes)
#notes = ""
if count>127:
break
f.close()
count +=1
MyMIDI.addNote(0, 15, j, count/10, 0.1, 62)
with open("text.mid", "wb") as output_file:
MyMIDI.writeFile(output_file)
However, this might be totally irrelevant, and if so, ignore it!