const uint8_t YM2612::lfoDividers[8] = { 108, 77, 71, 67, 62, 44, 8, 5, }; const uint8_t YM2612::vibratos[8][16] = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0}, {0, 0, 1, 2, 2, 2, 3, 4, 4, 3, 2, 2, 2, 1, 0, 0}, {0, 0, 2, 3, 4, 4, 5, 6, 6, 5, 4, 4, 3, 2, 0, 0}, {0, 0, 4, 6, 8, 8,10,12,12,10, 8, 8, 6, 4, 0, 0}, {0, 0, 8,12,16,16,20,24,24,20,16,16,12, 8, 0, 0}, }; const uint8_t YM2612::tremolos[4] = { 7, 3, 1, 0, }; const uint8_t YM2612::detunes[3][8] = { { 5, 6, 6, 7, 8, 8, 9, 10}, {11, 12, 13, 14, 16, 17, 18, 20}, {16, 17, 19, 20, 22, 24, 26, 28}, }; const YM2612::EnvelopeRate YM2612::envelopeRates[16] = { 11, {0x00000000, 0x00000000, 0x01010101, 0x01010101}, 10, {0x01010101, 0x01010101, 0x01110111, 0x01110111}, 9, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 8, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 7, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 6, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 5, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 4, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 3, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 2, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 1, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 0, {0x01010101, 0x01011101, 0x01110111, 0x01111111}, 0, {0x11111111, 0x11121112, 0x12121212, 0x12221222}, 0, {0x22222222, 0x22242224, 0x24242424, 0x24442444}, 0, {0x44444444, 0x44484448, 0x48484848, 0x48884888}, 0, {0x88888888, 0x88888888, 0x88888888, 0x88888888}, };