User testing notes
Some configurations seem to take time to setup, so setting up then immediately playing a note doesn't work.
Running this all in one go will not play a chime:
alles.reset()
alles.send(wave=alles.SINE,ratio=0.2,amp=0.1,osc=0,bp0_target=alles.TARGET_AMP,bp0="1000,0,0,0")
alles.send(wave=alles.SINE,ratio=1,amp=1,osc=1)
alles.send(wave=alles.ALGO,algorithm=0,algo_source="-1,-1,-1,-1,1,0",osc=2)
alles.send(osc=2, note=60, vel=3)
But a delay before the last command will work. Or adding ..., note=60, vel=3) to play that note in the second to last command.
Setting an oscillator vel to 0 doesn't seem to work. Start a sine:
alles.send(osc=0, wave=alles.SINE, freq=220, amp=1)
alles.send(osc=0, vel=1)
Then try to turn it off with alles.send(osc=0, vel=0) and nothing happens. Using vel=0.01 effectively turns it off.
deb_menu.midi in the Max patch is missing from the repo. Not that I'm ready to send raw commands to Alles yet :) But I would be curious to see Max working. It looks like I have to paste in the broadcast address too, while import alles already detects it automatically.
thanks @kylemcdonald ! I think for your first issue, try adding retries=2 to alles.send. I think your wifi router may be dropping UDP packets. to confirm, try alles.sync() and report back here the reliability.
for your second issue, I can see that here too. I'll dig in. should be a quick fix and not intended
for the max examples, I'll clean those up asap and report back here
firmware fix for the second issue committed, apologies.
max patch updated & fixed in 83ec207 . added the deb_menu.mid file as well.
re:
It looks like I have to paste in the broadcast address too, while import alles already detects it automatically.
I don't think that's right. the broadcast address is the same on any network -- 232.10.11.12. That's all that udpsend needs in Max. What you're seeing when you import alles or run the desktop ./alles speaker is the source multicast interface, or in other words, the IP address you use to connect to the same router your speakers are on. I'd guess 99% of people never have to change this or specify it.
But, if you are booting a separate router just for Alles but want to keep another interface around for internet or another network, you'll want to change this source interface IP, either via alles.connect(OTHER_SOURCE_IP) or using ./alles -i OTHER_SOURCE_IP. Unfortunately I haven't been able to figure out a way to force Max to use a secondary source interface. It always chooses the highest priority one in the macOS network preference pane. Not a problem for most use cases I'd wager-- they can just prioritize their Alles router IP in System Preferences.