- { 0.000, {0x90, 60, 0x00} },
- { 0.125, {0x80, 60, 0x00} },
- { 0.125, {0x90, 61, 0x01} },
- { 0.250, {0x80, 61, 0x00} },
- { 0.250, {0x90, 60, 0x02} },
- { 0.375, {0x80, 60, 0x00} },
- { 0.375, {0x90, 61, 0x03} },
- { 0.500, {0x80, 61, 0x00} },
- { 0.500, {0x90, 60, 0x04} },
- { 0.625, {0x80, 60, 0x00} },
- { 0.625, {0x90, 61, 0x05} },
- { 0.750, {0x80, 61, 0x00} },
- { 0.750, {0x90, 60, 0x06} },
- { 0.875, {0x80, 60, 0x00} },
- { 0.875, {0x90, 61, 0x07} },
- { 1.000, {0x80, 61, 0x00} },
- { 1.000, {0x90, 60, 0x08} },
- { 1.125, {0x80, 60, 0x00} },
- { 1.125, {0x90, 61, 0x09} },
- { 1.250, {0x80, 61, 0x00} },
- { 1.250, {0x90, 60, 0x0a} },
- { 1.375, {0x80, 60, 0x00} },
- { 1.375, {0x90, 61, 0x0b} },
- { 1.500, {0x80, 61, 0x00} },
- { 1.500, {0x90, 60, 0x0c} },
- { 1.625, {0x80, 60, 0x00} },
- { 1.625, {0x90, 61, 0x0d} },
- { 1.750, {0x80, 61, 0x00} },
- { 1.750, {0x90, 60, 0x0e} },
- { 1.875, {0x80, 60, 0x00} },
- { 1.875, {0x90, 61, 0x0f} },
- { 2.000, {0x80, 61, 0x00} },
- { 2.000, {0x90, 60, 0x10} },
- { 2.125, {0x80, 60, 0x00} },
- { 2.125, {0x90, 61, 0x11} },
- { 2.250, {0x80, 61, 0x00} },
- { 2.250, {0x90, 60, 0x12} },
- { 2.375, {0x80, 60, 0x00} },
- { 2.375, {0x90, 61, 0x13} },
- { 2.500, {0x80, 61, 0x00} },
- { 2.500, {0x90, 60, 0x14} },
- { 2.625, {0x80, 60, 0x00} },
- { 2.625, {0x90, 61, 0x15} },
- { 2.750, {0x80, 61, 0x00} },
- { 2.750, {0x90, 60, 0x16} },
- { 2.875, {0x80, 60, 0x00} },
- { 2.875, {0x90, 61, 0x17} },
- { 3.000, {0x80, 61, 0x00} },
- { 3.000, {0x90, 60, 0x18} },
- { 3.125, {0x80, 60, 0x00} },
- { 3.125, {0x90, 61, 0x19} },
- { 3.250, {0x80, 61, 0x00} },
- { 3.250, {0x90, 60, 0x1a} },
- { 3.375, {0x80, 60, 0x00} },
- { 3.375, {0x90, 61, 0x1b} },
- { 3.500, {0x80, 61, 0x00} },
- { 3.500, {0x90, 60, 0x1c} },
- { 3.625, {0x80, 60, 0x00} },
- { 3.625, {0x90, 61, 0x1d} },
- { 3.750, {0x80, 61, 0x00} },
- { 3.750, {0x90, 60, 0x1e} },
- { 3.875, {0x80, 60, 0x00} },
- { 3.875, {0x90, 61, 0x1f} },
- { 4.000, {0x80, 61, 0x00} },
- { 4.000, {0x90, 60, 0x20} },
- { 4.125, {0x80, 60, 0x00} },
- { 4.125, {0x90, 61, 0x21} },
- { 4.250, {0x80, 61, 0x00} },
- { 4.250, {0x90, 60, 0x22} },
- { 4.375, {0x80, 60, 0x00} },
- { 4.375, {0x90, 61, 0x23} },
- { 4.500, {0x80, 61, 0x00} },
- { 4.500, {0x90, 60, 0x24} },
- { 4.625, {0x80, 60, 0x00} },
- { 4.625, {0x90, 61, 0x25} },
- { 4.750, {0x80, 61, 0x00} },
- { 4.750, {0x90, 60, 0x26} },
- { 4.875, {0x80, 60, 0x00} },
- { 4.875, {0x90, 61, 0x27} },
- { 5.000, {0x80, 61, 0x00} },
- { 5.000, {0x90, 60, 0x28} },
- { 5.125, {0x80, 60, 0x00} },
- { 5.125, {0x90, 61, 0x29} },
- { 5.250, {0x80, 61, 0x00} },
- { 5.250, {0x90, 60, 0x2a} },
- { 5.375, {0x80, 60, 0x00} },
- { 5.375, {0x90, 61, 0x2b} },
- { 5.500, {0x80, 61, 0x00} },
- { 5.500, {0x90, 60, 0x2c} },
- { 5.625, {0x80, 60, 0x00} },
- { 5.625, {0x90, 61, 0x2d} },
- { 5.750, {0x80, 61, 0x00} },
- { 5.750, {0x90, 60, 0x2e} },
- { 5.875, {0x80, 60, 0x00} },
- { 5.875, {0x90, 61, 0x2f} },
- { 6.000, {0x80, 61, 0x00} },
- { 6.000, {0x90, 60, 0x30} },
- { 6.125, {0x80, 60, 0x00} },
- { 6.125, {0x90, 61, 0x31} },
- { 6.250, {0x80, 61, 0x00} },
- { 6.250, {0x90, 60, 0x32} },
- { 6.375, {0x80, 60, 0x00} },
- { 6.375, {0x90, 61, 0x33} },
- { 6.500, {0x80, 61, 0x00} },
- { 6.500, {0x90, 60, 0x34} },
- { 6.625, {0x80, 60, 0x00} },
- { 6.625, {0x90, 61, 0x35} },
- { 6.750, {0x80, 61, 0x00} },
- { 6.750, {0x90, 60, 0x36} },
- { 6.875, {0x80, 60, 0x00} },
- { 6.875, {0x90, 61, 0x37} },
- { 7.000, {0x80, 61, 0x00} },
- { 7.000, {0x90, 60, 0x38} },
- { 7.125, {0x80, 60, 0x00} },
- { 7.125, {0x90, 61, 0x39} },
- { 7.250, {0x80, 61, 0x00} },
- { 7.250, {0x90, 60, 0x3a} },
- { 7.375, {0x80, 60, 0x00} },
- { 7.375, {0x90, 61, 0x3b} },
- { 7.500, {0x80, 61, 0x00} },
- { 7.500, {0x90, 60, 0x3c} },
- { 7.625, {0x80, 60, 0x00} },
- { 7.625, {0x90, 61, 0x3d} },
- { 7.750, {0x80, 61, 0x00} },
- { 7.750, {0x90, 60, 0x3e} },
- { 7.875, {0x80, 60, 0x00} },
- { 7.875, {0x90, 61, 0x3f} },
- { 8.000, {0x80, 61, 0x00} },
- { 8.000, {0x90, 60, 0x40} },
- { 8.125, {0x80, 60, 0x00} },
- { 8.125, {0x90, 61, 0x41} },
- { 8.250, {0x80, 61, 0x00} },
- { 8.250, {0x90, 60, 0x42} },
- { 8.375, {0x80, 60, 0x00} },
- { 8.375, {0x90, 61, 0x43} },
- { 8.500, {0x80, 61, 0x00} },
- { 8.500, {0x90, 60, 0x44} },
- { 8.625, {0x80, 60, 0x00} },
- { 8.625, {0x90, 61, 0x45} },
- { 8.750, {0x80, 61, 0x00} },
- { 8.750, {0x90, 60, 0x46} },
- { 8.875, {0x80, 60, 0x00} },
- { 8.875, {0x90, 61, 0x47} },
- { 9.000, {0x80, 61, 0x00} },
- { 9.000, {0x90, 60, 0x48} },
- { 9.125, {0x80, 60, 0x00} },
- { 9.125, {0x90, 61, 0x49} },
- { 9.250, {0x80, 61, 0x00} },
- { 9.250, {0x90, 60, 0x4a} },
- { 9.375, {0x80, 60, 0x00} },
- { 9.375, {0x90, 61, 0x4b} },
- { 9.500, {0x80, 61, 0x00} },
- { 9.500, {0x90, 60, 0x4c} },
- { 9.625, {0x80, 60, 0x00} },
- { 9.625, {0x90, 61, 0x4d} },
- { 9.750, {0x80, 61, 0x00} },
- { 9.750, {0x90, 60, 0x4e} },
- { 9.875, {0x80, 60, 0x00} },
- { 9.875, {0x90, 61, 0x4f} },
- {10.000, {0x80, 61, 0x00} },
- {10.000, {0x90, 60, 0x50} },
- {10.125, {0x80, 60, 0x00} },
- {10.125, {0x90, 61, 0x51} },
- {10.250, {0x80, 61, 0x00} },
- {10.250, {0x90, 60, 0x52} },
- {10.375, {0x80, 60, 0x00} },
- {10.375, {0x90, 61, 0x53} },
- {10.500, {0x80, 61, 0x00} },
- {10.500, {0x90, 60, 0x54} },
- {10.625, {0x80, 60, 0x00} },
- {10.625, {0x90, 61, 0x55} },
- {10.750, {0x80, 61, 0x00} },
- {10.750, {0x90, 60, 0x56} },
- {10.875, {0x80, 60, 0x00} },
- {10.875, {0x90, 61, 0x57} },
- {11.000, {0x80, 61, 0x00} },
- {11.000, {0x90, 60, 0x58} },
- {11.125, {0x80, 60, 0x00} },
- {11.125, {0x90, 61, 0x59} },
- {11.250, {0x80, 61, 0x00} },
- {11.250, {0x90, 60, 0x5a} },
- {11.375, {0x80, 60, 0x00} },
- {11.375, {0x90, 61, 0x5b} },
- {11.500, {0x80, 61, 0x00} },
- {11.500, {0x90, 60, 0x5c} },
- {11.625, {0x80, 60, 0x00} },
- {11.625, {0x90, 61, 0x5d} },
- {11.750, {0x80, 61, 0x00} },
- {11.750, {0x90, 60, 0x5e} },
- {11.875, {0x80, 60, 0x00} },
- {11.875, {0x90, 61, 0x5f} },
- {12.000, {0x80, 61, 0x00} },
- {12.000, {0x90, 60, 0x60} },
- {12.125, {0x80, 60, 0x00} },
- {12.125, {0x90, 61, 0x61} },
- {12.250, {0x80, 61, 0x00} },
- {12.250, {0x90, 60, 0x62} },
- {12.375, {0x80, 60, 0x00} },
- {12.375, {0x90, 61, 0x63} },
- {12.500, {0x80, 61, 0x00} },
- {12.500, {0x90, 60, 0x64} },
- {12.625, {0x80, 60, 0x00} },
- {12.625, {0x90, 61, 0x65} },
- {12.750, {0x80, 61, 0x00} },
- {12.750, {0x90, 60, 0x66} },
- {12.875, {0x80, 60, 0x00} },
- {12.875, {0x90, 61, 0x67} },
- {13.000, {0x80, 61, 0x00} },
- {13.000, {0x90, 60, 0x68} },
- {13.125, {0x80, 60, 0x00} },
- {13.125, {0x90, 61, 0x69} },
- {13.250, {0x80, 61, 0x00} },
- {13.250, {0x90, 60, 0x6a} },
- {13.375, {0x80, 60, 0x00} },
- {13.375, {0x90, 61, 0x6b} },
- {13.500, {0x80, 61, 0x00} },
- {13.500, {0x90, 60, 0x6c} },
- {13.625, {0x80, 60, 0x00} },
- {13.625, {0x90, 61, 0x6d} },
- {13.750, {0x80, 61, 0x00} },
- {13.750, {0x90, 60, 0x6e} },
- {13.875, {0x80, 60, 0x00} },
- {13.875, {0x90, 61, 0x6f} },
- {14.000, {0x80, 61, 0x00} },
- {14.000, {0x90, 60, 0x70} },
- {14.125, {0x80, 60, 0x00} },
- {14.125, {0x90, 61, 0x71} },
- {14.250, {0x80, 61, 0x00} },
- {14.250, {0x90, 60, 0x72} },
- {14.375, {0x80, 60, 0x00} },
- {14.375, {0x90, 61, 0x73} },
- {14.500, {0x80, 61, 0x00} },
- {14.500, {0x90, 60, 0x74} },
- {14.625, {0x80, 60, 0x00} },
- {14.625, {0x90, 61, 0x75} },
- {14.750, {0x80, 61, 0x00} },
- {14.750, {0x90, 60, 0x76} },
- {14.875, {0x80, 60, 0x00} },
- {14.875, {0x90, 61, 0x77} },
- {15.000, {0x80, 61, 0x00} },
- {15.000, {0x90, 60, 0x78} },
- {15.125, {0x80, 60, 0x00} },
- {15.125, {0x90, 61, 0x79} },
- {15.250, {0x80, 61, 0x00} },
- {15.250, {0x90, 60, 0x7a} },
- {15.375, {0x80, 60, 0x00} },
- {15.375, {0x90, 61, 0x7b} },
- {15.500, {0x80, 61, 0x00} },
- {15.500, {0x90, 60, 0x7c} },
- {15.625, {0x80, 60, 0x00} },
- {15.625, {0x90, 61, 0x7d} },
- {15.750, {0x80, 61, 0x00} },
- {15.750, {0x90, 60, 0x7e} },
- {15.875, {0x80, 60, 0x00} },
- {15.875, {0x90, 61, 0x7f} },
- {16.000, {0x80, 61, 0x00} },
- {16.000, {0xff, 255, 0xff} }, // sentinel
+ { 0.000, 3, {0x90, 60, 0x00} },
+ { 0.125, 3, {0x80, 60, 0x00} },
+ { 0.125, 3, {0x90, 61, 0x01} },
+ { 0.250, 3, {0x80, 61, 0x00} },
+ { 0.250, 3, {0x90, 60, 0x02} },
+ { 0.375, 3, {0x80, 60, 0x00} },
+ { 0.375, 3, {0x90, 61, 0x03} },
+ { 0.500, 3, {0x80, 61, 0x00} },
+ { 0.500, 3, {0x90, 60, 0x04} },
+ { 0.625, 3, {0x80, 60, 0x00} },
+ { 0.625, 3, {0x90, 61, 0x05} },
+ { 0.750, 3, {0x80, 61, 0x00} },
+ { 0.750, 3, {0x90, 60, 0x06} },
+ { 0.875, 3, {0x80, 60, 0x00} },
+ { 0.875, 3, {0x90, 61, 0x07} },
+ { 1.000, 3, {0x80, 61, 0x00} },
+ { 1.000, 3, {0x90, 60, 0x08} },
+ { 1.125, 3, {0x80, 60, 0x00} },
+ { 1.125, 3, {0x90, 61, 0x09} },
+ { 1.250, 3, {0x80, 61, 0x00} },
+ { 1.250, 3, {0x90, 60, 0x0a} },
+ { 1.375, 3, {0x80, 60, 0x00} },
+ { 1.375, 3, {0x90, 61, 0x0b} },
+ { 1.500, 3, {0x80, 61, 0x00} },
+ { 1.500, 3, {0x90, 60, 0x0c} },
+ { 1.625, 3, {0x80, 60, 0x00} },
+ { 1.625, 3, {0x90, 61, 0x0d} },
+ { 1.750, 3, {0x80, 61, 0x00} },
+ { 1.750, 3, {0x90, 60, 0x0e} },
+ { 1.875, 3, {0x80, 60, 0x00} },
+ { 1.875, 3, {0x90, 61, 0x0f} },
+ { 2.000, 3, {0x80, 61, 0x00} },
+ { 2.000, 3, {0x90, 60, 0x10} },
+ { 2.125, 3, {0x80, 60, 0x00} },
+ { 2.125, 3, {0x90, 61, 0x11} },
+ { 2.250, 3, {0x80, 61, 0x00} },
+ { 2.250, 3, {0x90, 60, 0x12} },
+ { 2.375, 3, {0x80, 60, 0x00} },
+ { 2.375, 3, {0x90, 61, 0x13} },
+ { 2.500, 3, {0x80, 61, 0x00} },
+ { 2.500, 3, {0x90, 60, 0x14} },
+ { 2.625, 3, {0x80, 60, 0x00} },
+ { 2.625, 3, {0x90, 61, 0x15} },
+ { 2.750, 3, {0x80, 61, 0x00} },
+ { 2.750, 3, {0x90, 60, 0x16} },
+ { 2.875, 3, {0x80, 60, 0x00} },
+ { 2.875, 3, {0x90, 61, 0x17} },
+ { 3.000, 3, {0x80, 61, 0x00} },
+ { 3.000, 3, {0x90, 60, 0x18} },
+ { 3.125, 3, {0x80, 60, 0x00} },
+ { 3.125, 3, {0x90, 61, 0x19} },
+ { 3.250, 3, {0x80, 61, 0x00} },
+ { 3.250, 3, {0x90, 60, 0x1a} },
+ { 3.375, 3, {0x80, 60, 0x00} },
+ { 3.375, 3, {0x90, 61, 0x1b} },
+ { 3.500, 3, {0x80, 61, 0x00} },
+ { 3.500, 3, {0x90, 60, 0x1c} },
+ { 3.625, 3, {0x80, 60, 0x00} },
+ { 3.625, 3, {0x90, 61, 0x1d} },
+ { 3.750, 3, {0x80, 61, 0x00} },
+ { 3.750, 3, {0x90, 60, 0x1e} },
+ { 3.875, 3, {0x80, 60, 0x00} },
+ { 3.875, 3, {0x90, 61, 0x1f} },
+ { 4.000, 3, {0x80, 61, 0x00} },
+ { 4.000, 3, {0x90, 60, 0x20} },
+ { 4.125, 3, {0x80, 60, 0x00} },
+ { 4.125, 3, {0x90, 61, 0x21} },
+ { 4.250, 3, {0x80, 61, 0x00} },
+ { 4.250, 3, {0x90, 60, 0x22} },
+ { 4.375, 3, {0x80, 60, 0x00} },
+ { 4.375, 3, {0x90, 61, 0x23} },
+ { 4.500, 3, {0x80, 61, 0x00} },
+ { 4.500, 3, {0x90, 60, 0x24} },
+ { 4.625, 3, {0x80, 60, 0x00} },
+ { 4.625, 3, {0x90, 61, 0x25} },
+ { 4.750, 3, {0x80, 61, 0x00} },
+ { 4.750, 3, {0x90, 60, 0x26} },
+ { 4.875, 3, {0x80, 60, 0x00} },
+ { 4.875, 3, {0x90, 61, 0x27} },
+ { 5.000, 3, {0x80, 61, 0x00} },
+ { 5.000, 3, {0x90, 60, 0x28} },
+ { 5.125, 3, {0x80, 60, 0x00} },
+ { 5.125, 3, {0x90, 61, 0x29} },
+ { 5.250, 3, {0x80, 61, 0x00} },
+ { 5.250, 3, {0x90, 60, 0x2a} },
+ { 5.375, 3, {0x80, 60, 0x00} },
+ { 5.375, 3, {0x90, 61, 0x2b} },
+ { 5.500, 3, {0x80, 61, 0x00} },
+ { 5.500, 3, {0x90, 60, 0x2c} },
+ { 5.625, 3, {0x80, 60, 0x00} },
+ { 5.625, 3, {0x90, 61, 0x2d} },
+ { 5.750, 3, {0x80, 61, 0x00} },
+ { 5.750, 3, {0x90, 60, 0x2e} },
+ { 5.875, 3, {0x80, 60, 0x00} },
+ { 5.875, 3, {0x90, 61, 0x2f} },
+ { 6.000, 3, {0x80, 61, 0x00} },
+ { 6.000, 3, {0x90, 60, 0x30} },
+ { 6.125, 3, {0x80, 60, 0x00} },
+ { 6.125, 3, {0x90, 61, 0x31} },
+ { 6.250, 3, {0x80, 61, 0x00} },
+ { 6.250, 3, {0x90, 60, 0x32} },
+ { 6.375, 3, {0x80, 60, 0x00} },
+ { 6.375, 3, {0x90, 61, 0x33} },
+ { 6.500, 3, {0x80, 61, 0x00} },
+ { 6.500, 3, {0x90, 60, 0x34} },
+ { 6.625, 3, {0x80, 60, 0x00} },
+ { 6.625, 3, {0x90, 61, 0x35} },
+ { 6.750, 3, {0x80, 61, 0x00} },
+ { 6.750, 3, {0x90, 60, 0x36} },
+ { 6.875, 3, {0x80, 60, 0x00} },
+ { 6.875, 3, {0x90, 61, 0x37} },
+ { 7.000, 3, {0x80, 61, 0x00} },
+ { 7.000, 3, {0x90, 60, 0x38} },
+ { 7.125, 3, {0x80, 60, 0x00} },
+ { 7.125, 3, {0x90, 61, 0x39} },
+ { 7.250, 3, {0x80, 61, 0x00} },
+ { 7.250, 3, {0x90, 60, 0x3a} },
+ { 7.375, 3, {0x80, 60, 0x00} },
+ { 7.375, 3, {0x90, 61, 0x3b} },
+ { 7.500, 3, {0x80, 61, 0x00} },
+ { 7.500, 3, {0x90, 60, 0x3c} },
+ { 7.625, 3, {0x80, 60, 0x00} },
+ { 7.625, 3, {0x90, 61, 0x3d} },
+ { 7.750, 3, {0x80, 61, 0x00} },
+ { 7.750, 3, {0x90, 60, 0x3e} },
+ { 7.875, 3, {0x80, 60, 0x00} },
+ { 7.875, 3, {0x90, 61, 0x3f} },
+ { 8.000, 3, {0x80, 61, 0x00} },
+ { 8.000, 3, {0x90, 60, 0x40} },
+ { 8.125, 3, {0x80, 60, 0x00} },
+ { 8.125, 3, {0x90, 61, 0x41} },
+ { 8.250, 3, {0x80, 61, 0x00} },
+ { 8.250, 3, {0x90, 60, 0x42} },
+ { 8.375, 3, {0x80, 60, 0x00} },
+ { 8.375, 3, {0x90, 61, 0x43} },
+ { 8.500, 3, {0x80, 61, 0x00} },
+ { 8.500, 3, {0x90, 60, 0x44} },
+ { 8.625, 3, {0x80, 60, 0x00} },
+ { 8.625, 3, {0x90, 61, 0x45} },
+ { 8.750, 3, {0x80, 61, 0x00} },
+ { 8.750, 3, {0x90, 60, 0x46} },
+ { 8.875, 3, {0x80, 60, 0x00} },
+ { 8.875, 3, {0x90, 61, 0x47} },
+ { 9.000, 3, {0x80, 61, 0x00} },
+ { 9.000, 3, {0x90, 60, 0x48} },
+ { 9.125, 3, {0x80, 60, 0x00} },
+ { 9.125, 3, {0x90, 61, 0x49} },
+ { 9.250, 3, {0x80, 61, 0x00} },
+ { 9.250, 3, {0x90, 60, 0x4a} },
+ { 9.375, 3, {0x80, 60, 0x00} },
+ { 9.375, 3, {0x90, 61, 0x4b} },
+ { 9.500, 3, {0x80, 61, 0x00} },
+ { 9.500, 3, {0x90, 60, 0x4c} },
+ { 9.625, 3, {0x80, 60, 0x00} },
+ { 9.625, 3, {0x90, 61, 0x4d} },
+ { 9.750, 3, {0x80, 61, 0x00} },
+ { 9.750, 3, {0x90, 60, 0x4e} },
+ { 9.875, 3, {0x80, 60, 0x00} },
+ { 9.875, 3, {0x90, 61, 0x4f} },
+ {10.000, 3, {0x80, 61, 0x00} },
+ {10.000, 3, {0x90, 60, 0x50} },
+ {10.125, 3, {0x80, 60, 0x00} },
+ {10.125, 3, {0x90, 61, 0x51} },
+ {10.250, 3, {0x80, 61, 0x00} },
+ {10.250, 3, {0x90, 60, 0x52} },
+ {10.375, 3, {0x80, 60, 0x00} },
+ {10.375, 3, {0x90, 61, 0x53} },
+ {10.500, 3, {0x80, 61, 0x00} },
+ {10.500, 3, {0x90, 60, 0x54} },
+ {10.625, 3, {0x80, 60, 0x00} },
+ {10.625, 3, {0x90, 61, 0x55} },
+ {10.750, 3, {0x80, 61, 0x00} },
+ {10.750, 3, {0x90, 60, 0x56} },
+ {10.875, 3, {0x80, 60, 0x00} },
+ {10.875, 3, {0x90, 61, 0x57} },
+ {11.000, 3, {0x80, 61, 0x00} },
+ {11.000, 3, {0x90, 60, 0x58} },
+ {11.125, 3, {0x80, 60, 0x00} },
+ {11.125, 3, {0x90, 61, 0x59} },
+ {11.250, 3, {0x80, 61, 0x00} },
+ {11.250, 3, {0x90, 60, 0x5a} },
+ {11.375, 3, {0x80, 60, 0x00} },
+ {11.375, 3, {0x90, 61, 0x5b} },
+ {11.500, 3, {0x80, 61, 0x00} },
+ {11.500, 3, {0x90, 60, 0x5c} },
+ {11.625, 3, {0x80, 60, 0x00} },
+ {11.625, 3, {0x90, 61, 0x5d} },
+ {11.750, 3, {0x80, 61, 0x00} },
+ {11.750, 3, {0x90, 60, 0x5e} },
+ {11.875, 3, {0x80, 60, 0x00} },
+ {11.875, 3, {0x90, 61, 0x5f} },
+ {12.000, 3, {0x80, 61, 0x00} },
+ {12.000, 3, {0x90, 60, 0x60} },
+ {12.125, 3, {0x80, 60, 0x00} },
+ {12.125, 3, {0x90, 61, 0x61} },
+ {12.250, 3, {0x80, 61, 0x00} },
+ {12.250, 3, {0x90, 60, 0x62} },
+ {12.375, 3, {0x80, 60, 0x00} },
+ {12.375, 3, {0x90, 61, 0x63} },
+ {12.500, 3, {0x80, 61, 0x00} },
+ {12.500, 3, {0x90, 60, 0x64} },
+ {12.625, 3, {0x80, 60, 0x00} },
+ {12.625, 3, {0x90, 61, 0x65} },
+ {12.750, 3, {0x80, 61, 0x00} },
+ {12.750, 3, {0x90, 60, 0x66} },
+ {12.875, 3, {0x80, 60, 0x00} },
+ {12.875, 3, {0x90, 61, 0x67} },
+ {13.000, 3, {0x80, 61, 0x00} },
+ {13.000, 3, {0x90, 60, 0x68} },
+ {13.125, 3, {0x80, 60, 0x00} },
+ {13.125, 3, {0x90, 61, 0x69} },
+ {13.250, 3, {0x80, 61, 0x00} },
+ {13.250, 3, {0x90, 60, 0x6a} },
+ {13.375, 3, {0x80, 60, 0x00} },
+ {13.375, 3, {0x90, 61, 0x6b} },
+ {13.500, 3, {0x80, 61, 0x00} },
+ {13.500, 3, {0x90, 60, 0x6c} },
+ {13.625, 3, {0x80, 60, 0x00} },
+ {13.625, 3, {0x90, 61, 0x6d} },
+ {13.750, 3, {0x80, 61, 0x00} },
+ {13.750, 3, {0x90, 60, 0x6e} },
+ {13.875, 3, {0x80, 60, 0x00} },
+ {13.875, 3, {0x90, 61, 0x6f} },
+ {14.000, 3, {0x80, 61, 0x00} },
+ {14.000, 3, {0x90, 60, 0x70} },
+ {14.125, 3, {0x80, 60, 0x00} },
+ {14.125, 3, {0x90, 61, 0x71} },
+ {14.250, 3, {0x80, 61, 0x00} },
+ {14.250, 3, {0x90, 60, 0x72} },
+ {14.375, 3, {0x80, 60, 0x00} },
+ {14.375, 3, {0x90, 61, 0x73} },
+ {14.500, 3, {0x80, 61, 0x00} },
+ {14.500, 3, {0x90, 60, 0x74} },
+ {14.625, 3, {0x80, 60, 0x00} },
+ {14.625, 3, {0x90, 61, 0x75} },
+ {14.750, 3, {0x80, 61, 0x00} },
+ {14.750, 3, {0x90, 60, 0x76} },
+ {14.875, 3, {0x80, 60, 0x00} },
+ {14.875, 3, {0x90, 61, 0x77} },
+ {15.000, 3, {0x80, 61, 0x00} },
+ {15.000, 3, {0x90, 60, 0x78} },
+ {15.125, 3, {0x80, 60, 0x00} },
+ {15.125, 3, {0x90, 61, 0x79} },
+ {15.250, 3, {0x80, 61, 0x00} },
+ {15.250, 3, {0x90, 60, 0x7a} },
+ {15.375, 3, {0x80, 60, 0x00} },
+ {15.375, 3, {0x90, 61, 0x7b} },
+ {15.500, 3, {0x80, 61, 0x00} },
+ {15.500, 3, {0x90, 60, 0x7c} },
+ {15.625, 3, {0x80, 60, 0x00} },
+ {15.625, 3, {0x90, 61, 0x7d} },
+ {15.750, 3, {0x80, 61, 0x00} },
+ {15.750, 3, {0x90, 60, 0x7e} },
+ {15.875, 3, {0x80, 60, 0x00} },
+ {15.875, 3, {0x90, 61, 0x7f} },
+ {16.000, 3, {0x80, 61, 0x00} },
+ {16.000, 3, {0xff, 255, 0xff} }, // sentinel
+};
+
+static const MIDISequence s4[] = { // channel1, sustain pedal test
+ { 0.00, 3, {0x90, 64, 0x7f} },
+ { 0.50, 3, {0x80, 64, 0x00} },
+ { 1.00, 3, {0xB0, 0x40, 0x7f} }, // CC64, Sustain on
+ { 1.25, 3, {0x90, 64, 0x7f} },
+ { 1.75, 3, {0x80, 64, 0x00} },
+ { 2.25, 3, {0x90, 66, 0x7f} },
+ { 3.00, 3, {0xB0, 0x40, 0x00} }, // CC64, Sustain off
+ { 3.25, 3, {0x80, 66, 0x00} },
+ { 3.25, 3, {0x90, 64, 0x7f} },
+ { 3.75, 3, {0x80, 64, 0x00} },
+ { 4.00, 3, {0xff, 255, 0xff} }, // sentinel
+};
+
+static const MIDISequence s5[] = { // channel1, CCs only
+ { 0.00, 3, {0xB0, 0x01, 0x00} },
+ { 0.25, 3, {0xB0, 0x01, 0x10} },
+ { 0.50, 3, {0xB0, 0x01, 0x40} },
+ { 0.75, 3, {0xB0, 0x01, 0x7f} },
+ { 1.00, 3, {0xB0, 0x01, 0x60} },
+ { 1.25, 3, {0xB0, 0x01, 0x55} },
+ { 1.50, 3, {0xB0, 0x01, 0x20} },
+ { 1.75, 3, {0xB0, 0x01, 0x1f} },
+ { 2.00, 3, {0xB0, 0x01, 0x1e} },
+ { 2.25, 3, {0xB0, 0x01, 0x1d} },
+ { 2.50, 3, {0xB0, 0x01, 0x1c} },
+ { 2.75, 3, {0xB0, 0x01, 0x1b} },
+ { 3.50, 3, {0xB0, 0x01, 0x00} },
+ { 4.00, 3, {0xB0, 0x01, 0x00} },
+ { 4.25, 3, {0xB0, 0x01, 0x7f} },
+ { 4.50, 3, {0xB0, 0x01, 0x40} },
+ { 4.75, 3, {0xB0, 0x01, 0x40} },
+ { 5.00, 3, {0xff, 255, 0xff} }, // sentinel
+};
+
+
+static const MIDISequence s6[] = { // Keypressure, Aftertouch
+ { 0.00, 3, {0x90, 64, 0x7f} },
+ { 0.25, 3, {0xa0, 64, 0x40} },
+ { 0.50, 3, {0xa0, 64, 0x60} },
+ { 0.75, 3, {0xa0, 64, 0x7f} },
+ { 1.00, 3, {0xa0, 64, 0x7f} },
+ { 1.25, 3, {0xa0, 64, 0x00} },
+ { 1.50, 3, {0x80, 64, 0x00} },
+ { 2.00, 3, {0xff, 255, 0xff} }, // sentinel
+};
+
+
+static const MIDISequence s7[] = { // channel1, nonsense
+ { 0.00, 3, {0x90, 64, 0x7f} }, // note-on
+ { 0.50, 3, {0x90, 64, 0x7f} }, // duplicate note-on
+ { 1.00, 3, {0x80, 64, 0x00} }, // note-off
+ { 1.50, 3, {0x80, 64, 0x00} }, // dup note-off
+ { 2.00, 3, {0x80, 64, 0x00} }, // 3rd note-off
+ { 3.00, 3, {0x90, 66, 0x7f} },
+ { 3.50, 3, {0x90, 66, 0x00} }, // note-on velocity zero
+ { 3.75, 3, {0x80, 66, 0x00} }, // note-off
+ { 4.00, 3, {0xff, 255, 0xff} }, // sentinel
+};
+
+static const MIDISequence s8[] = { // sysex
+ { 0.00, 10, {0xf0, 0x7f, 0x7f, 0x01, 0x01, /*hour + tc */ 0x20, /*min*/ 0x00, /*sec*/ 0x00, /*frame*/ 0x00, 0xf7} }, // 25fps, 00:00:00:00
+ // quarter frames spacing (in samples) at 25fps: SR / (25 * 4)
+ // DummyMidiPort::setup_generator uses 120bpm ie (SR / 2)
+ // hence the spacing is: SR / (25 * 4) / (SR / 2) = 0.2
+ { 1.00, 2, {0xf1, 0x00} },
+ { 1.02, 2, {0xf1, 0x10} },
+ { 1.04, 2, {0xf1, 0x20} },
+ { 1.06, 2, {0xf1, 0x30} },
+ { 1.08, 2, {0xf1, 0x40} },
+ { 1.10, 2, {0xf1, 0x50} },
+ { 1.12, 2, {0xf1, 0x60} },
+ { 1.14, 2, {0xf1, 0x72} },
+
+ { 1.16, 2, {0xf1, 0x02} },
+ { 1.18, 2, {0xf1, 0x10} },
+ { 1.20, 2, {0xf1, 0x20} },
+ { 1.22, 2, {0xf1, 0x30} },
+ { 1.24, 2, {0xf1, 0x40} },
+ { 1.26, 2, {0xf1, 0x50} },
+ { 1.28, 2, {0xf1, 0x60} },
+ { 1.30, 2, {0xf1, 0x72} },
+
+ { 1.32, 2, {0xf1, 0x04} },
+ { 1.34, 2, {0xf1, 0x10} },
+ { 1.36, 2, {0xf1, 0x20} },
+ { 1.38, 2, {0xf1, 0x30} },
+ { 1.40, 2, {0xf1, 0x40} },
+ { 1.42, 2, {0xf1, 0x50} },
+ { 1.43, 2, {0xf1, 0x60} },
+ { 1.46, 2, {0xf1, 0x72} },
+
+ { 1.48, 2, {0xf1, 0x06} },
+ { 1.50, 2, {0xf1, 0x10} },
+ { 1.52, 2, {0xf1, 0x20} },
+ { 1.54, 2, {0xf1, 0x30} },
+ { 1.56, 2, {0xf1, 0x40} },
+ { 1.58, 2, {0xf1, 0x50} },
+ { 1.60, 2, {0xf1, 0x60} },
+ { 1.62, 2, {0xf1, 0x72} },
+
+ { 1.64, 2, {0xf1, 0x08} },
+ { 1.66, 2, {0xf1, 0x10} },
+ { 1.68, 2, {0xf1, 0x20} },
+ { 1.70, 2, {0xf1, 0x30} },
+ { 1.72, 2, {0xf1, 0x40} },
+ { 1.74, 2, {0xf1, 0x50} },
+ { 1.76, 2, {0xf1, 0x60} },
+ { 1.78, 2, {0xf1, 0x72} },
+
+ { 1.80, 2, {0xf1, 0x0a} },
+ { 1.82, 2, {0xf1, 0x10} },
+ { 1.84, 2, {0xf1, 0x20} },
+ { 1.86, 2, {0xf1, 0x30} },
+ { 1.88, 2, {0xf1, 0x40} },
+ { 1.90, 2, {0xf1, 0x50} },
+ { 1.92, 2, {0xf1, 0x60} },
+ { 1.94, 2, {0xf1, 0x72} },
+
+ { 1.96, 2, {0xf1, 0x0c} },
+ { 1.98, 2, {0xf1, 0x10} },
+ { 2.00, 2, {0xf1, 0x20} },
+ { 2.02, 2, {0xf1, 0x30} },
+ { 2.04, 2, {0xf1, 0x40} },
+ { 2.06, 2, {0xf1, 0x50} },
+ { 2.08, 2, {0xf1, 0x60} },
+ { 2.10, 2, {0xf1, 0x72} },
+
+ { 2.12, 2, {0xf1, 0x0e} },
+ { 2.14, 2, {0xf1, 0x10} },
+ { 2.16, 2, {0xf1, 0x20} },
+ { 2.18, 2, {0xf1, 0x30} },
+ { 2.20, 2, {0xf1, 0x40} },
+ { 2.22, 2, {0xf1, 0x50} },
+ { 2.24, 2, {0xf1, 0x60} },
+ { 2.26, 2, {0xf1, 0x72} },
+
+ { 2.28, 2, {0xf1, 0x00} },
+ { 2.30, 2, {0xf1, 0x11} },
+ { 2.32, 2, {0xf1, 0x20} },
+ { 2.34, 2, {0xf1, 0x30} },
+ { 2.36, 2, {0xf1, 0x40} },
+ { 2.38, 2, {0xf1, 0x50} },
+ { 2.40, 2, {0xf1, 0x60} },
+ { 2.42, 2, {0xf1, 0x72} },
+
+ { 2.44, 2, {0xf1, 0x02} },
+ { 2.46, 2, {0xf1, 0x11} },
+ { 2.48, 2, {0xf1, 0x20} },
+ { 2.50, 2, {0xf1, 0x30} },
+ { 2.52, 2, {0xf1, 0x40} },
+ { 2.54, 2, {0xf1, 0x50} },
+ { 2.56, 2, {0xf1, 0x60} },
+ { 2.58, 2, {0xf1, 0x72} },
+
+ { 2.60, 2, {0xf1, 0x04} },
+ { 2.62, 2, {0xf1, 0x11} },
+ { 2.64, 2, {0xf1, 0x20} },
+ { 2.66, 2, {0xf1, 0x30} },
+ { 2.68, 2, {0xf1, 0x40} },
+ { 2.70, 2, {0xf1, 0x50} },
+ { 2.72, 2, {0xf1, 0x60} },
+ { 2.74, 2, {0xf1, 0x72} },
+
+ { 2.76, 2, {0xf1, 0x06} },
+ { 2.78, 2, {0xf1, 0x11} },
+ { 2.80, 2, {0xf1, 0x20} },
+ { 2.82, 2, {0xf1, 0x30} },
+ { 2.84, 2, {0xf1, 0x40} },
+ { 2.86, 2, {0xf1, 0x50} },
+ { 2.88, 2, {0xf1, 0x60} },
+ { 2.90, 2, {0xf1, 0x72} },
+
+ { 2.92, 2, {0xf1, 0x08} },
+ { 2.94, 2, {0xf1, 0x11} },
+ { 2.96, 2, {0xf1, 0x20} },
+ { 2.98, 2, {0xf1, 0x30} },
+ { 3.00, 2, {0xf1, 0x40} },
+ { 3.02, 2, {0xf1, 0x50} },
+ { 3.04, 2, {0xf1, 0x60} },
+ { 3.06, 2, {0xf1, 0x72} },
+
+ { 3.08, 2, {0xf1, 0x01} },
+ { 3.10, 2, {0xf1, 0x10} },
+ { 3.12, 2, {0xf1, 0x21} },
+ { 3.14, 2, {0xf1, 0x30} },
+ { 3.16, 2, {0xf1, 0x40} },
+ { 3.18, 2, {0xf1, 0x50} },
+ { 3.20, 2, {0xf1, 0x60} },
+ { 3.22, 2, {0xf1, 0x72} },
+
+ { 3.24, 2, {0xf1, 0x03} },
+ { 3.26, 2, {0xf1, 0x10} },
+ { 3.28, 2, {0xf1, 0x21} },
+ { 3.30, 2, {0xf1, 0x30} },
+ { 3.32, 2, {0xf1, 0x40} },
+ { 3.34, 2, {0xf1, 0x50} },
+ { 3.36, 2, {0xf1, 0x60} },
+ { 3.38, 2, {0xf1, 0x72} },
+
+ { 3.40, 2, {0xf1, 0x05} },
+ { 3.42, 2, {0xf1, 0x10} },
+ { 3.44, 2, {0xf1, 0x21} },
+ { 3.46, 2, {0xf1, 0x30} },
+ { 3.48, 2, {0xf1, 0x40} },
+ { 3.50, 2, {0xf1, 0x50} },
+ { 3.52, 2, {0xf1, 0x60} },
+ { 3.54, 2, {0xf1, 0x72} },
+
+ { 3.56, 2, {0xf1, 0x07} },
+ { 3.58, 2, {0xf1, 0x10} },
+ { 3.60, 2, {0xf1, 0x21} },
+ { 3.62, 2, {0xf1, 0x30} },
+ { 3.64, 2, {0xf1, 0x40} },
+ { 3.66, 2, {0xf1, 0x50} },
+ { 3.68, 2, {0xf1, 0x60} },
+ { 3.70, 2, {0xf1, 0x72} },
+
+ { 3.72, 2, {0xf1, 0x09} },
+ { 3.74, 2, {0xf1, 0x10} },
+ { 3.76, 2, {0xf1, 0x21} },
+ { 3.78, 2, {0xf1, 0x30} },
+ { 3.80, 2, {0xf1, 0x40} },
+ { 3.82, 2, {0xf1, 0x50} },
+ { 3.84, 2, {0xf1, 0x60} },
+ { 3.86, 2, {0xf1, 0x72} },
+
+ { 3.88, 2, {0xf1, 0x0b} },
+ { 3.90, 2, {0xf1, 0x10} },
+ { 3.92, 2, {0xf1, 0x21} },
+ { 3.94, 2, {0xf1, 0x30} },
+ { 3.96, 2, {0xf1, 0x40} },
+ { 3.98, 2, {0xf1, 0x50} },
+ { 4.00, 2, {0xf1, 0x60} },
+ { 4.02, 2, {0xf1, 0x72} },
+
+ { 4.04, 2, {0xf1, 0x0d} },
+ { 4.06, 2, {0xf1, 0x10} },
+ { 4.08, 2, {0xf1, 0x21} },
+ { 4.10, 2, {0xf1, 0x30} },
+ { 4.12, 2, {0xf1, 0x40} },
+ { 4.14, 2, {0xf1, 0x50} },
+ { 4.16, 2, {0xf1, 0x60} },
+ { 4.18, 2, {0xf1, 0x72} },
+
+ { 4.20, 2, {0xf1, 0x0f} },
+ { 4.22, 2, {0xf1, 0x10} },
+ { 4.24, 2, {0xf1, 0x21} },
+ { 4.26, 2, {0xf1, 0x30} },
+ { 4.28, 2, {0xf1, 0x40} },
+ { 4.30, 2, {0xf1, 0x50} },
+ { 4.32, 2, {0xf1, 0x60} },
+ { 4.34, 2, {0xf1, 0x72} },
+
+ { 4.36, 2, {0xf1, 0x01} },
+ { 4.38, 2, {0xf1, 0x11} },
+ { 4.40, 2, {0xf1, 0x21} },
+ { 4.42, 2, {0xf1, 0x30} },
+ { 4.44, 2, {0xf1, 0x40} },
+ { 4.46, 2, {0xf1, 0x50} },
+ { 4.48, 2, {0xf1, 0x60} },
+ { 4.50, 2, {0xf1, 0x72} },
+
+ { 4.52, 2, {0xf1, 0x03} },
+ { 4.54, 2, {0xf1, 0x11} },
+ { 4.56, 2, {0xf1, 0x21} },
+ { 4.58, 2, {0xf1, 0x30} },
+ { 4.60, 2, {0xf1, 0x40} },
+ { 4.62, 2, {0xf1, 0x50} },
+ { 4.64, 2, {0xf1, 0x60} },
+ { 4.66, 2, {0xf1, 0x72} },
+
+ { 4.68, 2, {0xf1, 0x05} },
+ { 4.70, 2, {0xf1, 0x11} },
+ { 4.72, 2, {0xf1, 0x21} },
+ { 4.74, 2, {0xf1, 0x30} },
+ { 4.76, 2, {0xf1, 0x40} },
+ { 4.78, 2, {0xf1, 0x50} },
+ { 4.80, 2, {0xf1, 0x60} },
+ { 4.82, 2, {0xf1, 0x72} },
+
+ { 4.84, 2, {0xf1, 0x07} },
+ { 4.86, 2, {0xf1, 0x11} },
+ { 4.88, 2, {0xf1, 0x21} },
+ { 4.90, 2, {0xf1, 0x30} },
+ { 4.92, 2, {0xf1, 0x40} },
+ { 4.94, 2, {0xf1, 0x50} },
+ { 4.96, 2, {0xf1, 0x60} },
+ { 4.98, 2, {0xf1, 0x72} },
+
+ { 5.00, 3, {0xff, 255, 0xff} }, // sentinel