Just a thought regarding "convenient binary protocol":

Part of the reason I suggested the message format begin with a "!" is so people can still control their players using a terminal program. The "!" tells them that the following text is a command output and is not some bizarre diagnostic message following their request to play the next song.

Norton Utilities used to encode its non-human-readable data files with a prefix which was basically a line of text, a carriage return and line feed, and an "end of file" character. The programs could just read past that, but if you read the contents via "type filename.dat" you'd get a succinct message telling you the file's meaning.

Perhaps the carriage return character as a command prefix might be useful, as any control characters the empeg might send out in its binary messages would be prefixed by a 'go to start of line' command and thus would overwrite themselves rather than filling the screen with text. Or, perhaps, we just increment all numbers in the command stream by 32, and limit the largest number in the stream to 224, thus meaning all characters (with the possible exception of 127) would be printable even if not typeable.

Ultimately, while I'd like to see the command output as a vaguely human readable output for easy debugging, it'd probably make things more difficult for the receiver units. Especially for things like CRCs.

Save the whales. Feed the hungry. Free the mallocs.
_________________________
Owner of Mark I empeg 00061, now better than ever - (Thanks, Rod!) - and Karma 3930000004550