Sunday, June 12, 2011

Les Paul Encoding

http://www.google.com/logos/2011/lespaul.html

#tune=

The data has the format:


can be 0 or 1. 

If is 0, is 4 bits.

If is 1, is 10 bits.

can be 0 or 1.

If is 0, is 5 bits.

If is 1, is 20 bits.

So, the maximum datagram, word, chunk, or whatever is 32 bits. The smallest chunk is 11 bits.

There are 10 notes. And their values are (lowest note to the highest):
2, 6, 3, 0, 7, 1, 8, 4, 9, 5
do, re, mi, fa, sol, la, ti, do, re, mi.

For a monophonic chunk ( is 0), is 4 bits but reversed.
For example, for ti (value is 8 base 10), it is 0001, not 1000.

For a polyphonic chunk ( is 1), is 10 bits. NOT reversed.
For example, for fa, la, do (0, 1, 4 base 10),  it is 1100100000   (index 0, 1, 4 are set).

is always reversed. It could be 5 bits (less than 32) or 20 bits.
Probably the unit is 1/10 milliseconds..

TODO: write a program that actually demonstrates this.