@yjmbo: you might consider talking about CRAM, it's a pretty unique feature
Thanks Dave ... CRAM seems like something that would be pretty difficult to achieve with standard notation. I've been looking at compressorhead recently, their robot players can certainly play the guitar/drums in ways that humans can't, and perhaps notation like this would be interesting to them too ...
anyone asked for karaoke lyric support? I can see a 'voice' that plays text strings with the same durations as the notes, and plays these by printing them out in advance of the actual note ...
you can do something karaoke-like by using scheduled function events: https://github.com/alda-lang/alda/blob/master/doc/inline-clojure-code.md#scheduling-custom-events
it's not ideal though, as you can't see the printing happening from the client, it happens on the server
it works in the alda REPL, at least
or if you run an alda server in the foreground by running alda server
the scheduled function story could be improved, i think
There isn't really a cross-platform way to talk to the server; perhaps it should open a ZeroMQ pub socket and chuck data into there ... leave it up to the clients to figure out how to consume that :simple_smile:
at the moment it's an http server
difficult to make that timing-sensitive ...
how so?
in the http model, the client has to keep on polling the server to look for an update; in an MQ, the server can spit out messages at the time intervals it chooses
not a big deal, I'm not really into karaoke myself, lol
haha
actually, this is interesting to think about
in the back of my mind i've been wondering if an http server is the best thing to do
i might explore zmq
http is rarely 'best', but it is generic & well-known. ZeroMQ is awesome :simple_smile: Other MQs are fine too :simple_smile:
rabbitmq is pretty good -- we use that at work
the timing problem is how predictable the packet output will be from the server's perspective, you have to know how long it'll take to get a packet on to the wire in order to be able to sync properly I guess
So ZMQ is very lightweight from that perspective ... but I guess they'll all be predictable enough if the end-goal is to fit in to a human's reaction time :simple_smile:
i think getting reliable and fast responses is what i'm mostly concerned with
i've noticed some weird behavior with the http server if i leave it running for a long time and/or close and re-open my macbook
another thing i'm curious to explore is the new socket server repl in clojure 1.8