📄 matable.h
字号:
/****************************************************************************
*
* Copyright (C) 2002-2003 YAMAHA CORPORATION. All rights reserved.
*
* Module : matable.h
*
* Description : table of data for MA SMW
*
* Version : 2.0.5 2003.06.04
*
****************************************************************************/
#ifndef __MATABLE_H__
#define __MATABLE_H__
/* for Create */
static const UINT32 ma_resmode_chnum[6] = { 1, 16, 16, 16, 16, 16 };
static const UINT32 ma_resmode_fmnum[2][6] = {
{ 0, 16, 32, 32, 32, 32 }, /* 2OP */
{ 0, 16, 16, 16, 16, 16 } /* 4OP */
};
static const UINT32 ma_resmode_wtnum[6] = { 0, 16, 8, 16, 16, 32 };
static const UINT32 ma_resmode_rbnum[6] = { 0, 8, 8, 8, 8, 8 };
static const UINT32 ma_resmode_hvnum[6] = { 1, 0, 0, 0, 0, 0 };
static const UINT8 ma_resmode_dvamode[6] = { 0, 1, 0, 1, 0, 0 };
static const UINT8 ma_resmode_melmode[6] = { 0, 0, 2, 1, 0, 0 };
static const UINT8 ma_resmode_drmmode[6] = { 0, 0, 2, 1, 0, 0 };
static const UINT32 ma_resmode_fm_minslot[6] =
{ 0, 0, 0, 0, 0, 0 };
static const UINT32 ma_resmode_wt_minslot[6] =
{ 32, 32, 32, 32, 32, 32 };
static const UINT32 ma_resmode_fm_maxslot[2][6] =
{
{ 0, 15, 31, 31, 31, 31 }, /* 2OP */
{ 0, 15, 15, 15, 15, 15 } /* 4OP */
};
static const UINT32 ma_resmode_wt_maxslot[6] =
{ 0, 47, 39, 47, 47, 63 };
static const UINT32 ma_resmode_chmap[6] =
{ 0x00010000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF };
static const UINT32 ma_resmode_fmmap[2][6] =
{
{ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }, /* 2OP */
{ 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF } /* 4OP */
};
static const UINT32 ma_resmode_wtmap[6] =
{ 0x00000000, 0x0000FFFF, 0x000000FF, 0x0000FFFF, 0x0000FFFF, 0xFFFFFFFF };
static const UINT32 ma_resmode_stmap[6] =
{ 0x00000000, 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000000 };
static const UINT32 ma_resmode_hvmap[6] =
{ 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
static const UINT32 ma_resmode_rbmap[6] =
{ 0x00000000, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF };
/* dB table */
static const UINT8 ab20Log40Log_table[128] =
{
0, 0, 16, 20, 23, 25, 28, 30, /* 0- 7 */
32, 34, 36, 38, 39, 40, 43, 44, /* 8- 15 */
45, 46, 48, 49, 51, 52, 54, 54, /* 16- 23 */
55, 57, 57, 58, 60, 60, 62, 64, /* 24- 31 */
64, 66, 66, 67, 67, 69, 69, 69, /* 32- 39 */
71, 71, 74, 74, 76, 76, 76, 78, /* 40- 47 */
78, 78, 80, 80, 80, 82, 82, 82, /* 48- 55 */
85, 85, 85, 87, 87, 87, 90, 90, /* 56- 63 */
90, 90, 93, 93, 93, 93, 95, 95, /* 64- 71 */
95, 95, 98, 98, 98, 98, 101, 101, /* 72- 79 */
101, 101, 101, 104, 104, 104, 104, 104, /* 80- 87 */
107, 107, 107, 107, 107, 110, 110, 110, /* 88- 95 */
110, 110, 110, 113, 113, 113, 113, 113, /* 96-103 */
116, 116, 116, 116, 116, 116, 120, 120, /* 104-111 */
120, 120, 120, 120, 120, 123, 123, 123, /* 112-119 */
123, 123, 123, 123, 127, 127, 127, 127 /* 120-127 */
};
static const UINT8 db_table[128] =
{
192, 168, 144, 130, 120, 112, 106, 101, /* 0- 7 */
96, 92, 88, 85, 82, 79, 77, 74, /* 8- 15 */
72, 70, 68, 66, 64, 63, 61, 59, /* 16- 23 */
58, 56, 55, 54, 53, 51, 50, 49, /* 24- 31 */
48, 47, 46, 45, 44, 43, 42, 41, /* 32- 39 */
40, 39, 38, 38, 37, 36, 35, 35, /* 40- 47 */
34, 33, 32, 32, 31, 30, 30, 29, /* 48- 55 */
28, 28, 27, 27, 26, 25, 25, 24, /* 56- 63 */
24, 23, 23, 22, 22, 21, 21, 20, /* 64- 71 */
20, 19, 19, 18, 18, 17, 17, 16, /* 72- 79 */
16, 16, 15, 15, 14, 14, 14, 13, /* 80- 87 */
13, 12, 12, 12, 11, 11, 10, 10, /* 88- 95 */
10, 9, 9, 9, 8, 8, 8, 7, /* 96-103 */
7, 7, 6, 6, 6, 5, 5, 5, /* 104-111 */
4, 4, 4, 3, 3, 3, 3, 2, /* 112-119 */
2, 2, 1, 1, 1, 1, 0, 0 /* 120-127 */
};
/* volume table */
static const UINT8 vol_table[193] =
{
127, 123, 120, 116, 113, 110, 107, 104,
101, 98, 95, 93, 90, 87, 85, 82,
80, 78, 76, 74, 71, 69, 67, 66,
64, 62, 60, 58, 57, 55, 54, 52,
51, 49, 48, 46, 45, 44, 43, 41,
40, 39, 38, 37, 36, 35, 34, 33,
32, 31, 30, 29, 28, 28, 27, 26,
25, 25, 24, 23, 23, 22, 21, 21,
20, 20, 19, 18, 18, 17, 17, 16,
16, 16, 15, 15, 14, 14, 13, 13,
13, 12, 12, 12, 11, 11, 11, 10,
10, 10, 10, 9, 9, 9, 8, 8,
8, 8, 8, 7, 7, 7, 7, 7,
6, 6, 6, 6, 6, 6, 5, 5,
5, 5, 5, 5, 5, 4, 4, 4,
4, 4, 4, 4, 4, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
0
};
/*
7 6 5 4 3 2 1 0
+-------+-------+-------+-------+-------+-------+-------+-------+
| MS_S (H) |
+-------+-------+-------+-------+-------+-------+-------+-------+
+-------+-------+-------+-------+-------+-------+-------+-------+
| MA_S (L) | "0" | "0" |
+-------+-------+-------+-------+-------+-------+-------+-------+
*/
static const UINT16 ma_timebase[17] = { /* 1ms, ..., 17ms */
0x0E68, 0x1CCC, 0x2B34, 0x3998, 0x4800, 0x5668, 0x64CC, 0x7334, 0x8198,
0x9000, 0x9E68, 0xACCC, 0xBB34, 0xC998, 0xD800, 0xE668, 0xF4CC
};
/* FM Block & Fnum */
/*------------------------------------------------------------------------------------*/
/* WT Block Table */
/*------------------------------------------------------------------------------------*/
static const UINT32 gdBlockTable[64] =
{
0, 0, 1, 1, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5
};
/*------------------------------------------------------------------------------------*/
/* FM pitch Tables for MA-5 */
/*------------------------------------------------------------------------------------*/
static const UINT32 gdMa5FmBlock100[128] =
{
0x00B3, 0x00BD, 0x00C8, 0x00D4, 0x00E1, 0x00EE, 0x00FD, 0x010C,
0x011C, 0x012C, 0x013E, 0x0151, 0x0165, 0x017A, 0x0191, 0x01A9,
0x01C2, 0x01DD, 0x01F9, 0x0217, 0x0237, 0x0259, 0x027C, 0x02A2,
0x02CA, 0x02F5, 0x0322, 0x0352, 0x0384, 0x03BA, 0x03F2, 0x0617,
0x0637, 0x0658, 0x067C, 0x06A2, 0x06CA, 0x06F5, 0x0722, 0x0751,
0x0784, 0x07B9, 0x07F2, 0x0A17, 0x0A37, 0x0A58, 0x0A7C, 0x0AA2,
0x0ACA, 0x0AF5, 0x0B22, 0x0B51, 0x0B84, 0x0BB9, 0x0BF2, 0x0E17,
0x0E37, 0x0E58, 0x0E7C, 0x0EA2, 0x0ECA, 0x0EF4, 0x0F21, 0x0F51,
0x0F84, 0x0FB9, 0x0FF2, 0x1217, 0x1237, 0x1258, 0x127C, 0x12A2,
0x12CA, 0x12F4, 0x1321, 0x1351, 0x1384, 0x13B9, 0x13F2, 0x1617,
0x1637, 0x1658, 0x167C, 0x16A2, 0x16CA, 0x16F4, 0x1721, 0x1751,
0x1784, 0x17B9, 0x17F2, 0x1A17, 0x1A37, 0x1A58, 0x1A7C, 0x1AA2,
0x1ACA, 0x1AF4, 0x1B21, 0x1B51, 0x1B84, 0x1BB9, 0x1BF2, 0x1E17,
0x1E37, 0x1E58, 0x1E7C, 0x1EA2, 0x1ECA, 0x1EF4, 0x1F21, 0x1F51,
0x1F84, 0x1FB9, 0x1FF2, 0x1E17, 0x1E37, 0x1E58, 0x1E7C, 0x1EA2,
0x1ECA, 0x1EF4, 0x1F21, 0x1F51, 0x1F84, 0x1FB9, 0x1FF2, 0x1E17
};
static const UINT32 gdMa5FmBlock50a[128] =
{
0x0627, 0x0637, 0x0647, 0x0658, 0x066A, 0x067C, 0x068F, 0x06A2,
0x06B6, 0x06CA, 0x06DF, 0x06F5, 0x070B, 0x0722, 0x0739, 0x0751,
0x076A, 0x0784, 0x079E, 0x07B9, 0x07D5, 0x07F2, 0x0A08, 0x0A17,
0x0A27, 0x0A37, 0x0A47, 0x0A58, 0x0A6A, 0x0A7C, 0x0A8F, 0x0AA2,
0x0AB6, 0x0ACA, 0x0ADF, 0x0AF5, 0x0B0B, 0x0B22, 0x0B39, 0x0B51,
0x0B6A, 0x0B84, 0x0B9E, 0x0BB9, 0x0BD5, 0x0BF2, 0x0E08, 0x0E17,
0x0E26, 0x0E37, 0x0E47, 0x0E58, 0x0E6A, 0x0E7C, 0x0E8F, 0x0EA2,
0x0EB6, 0x0ECA, 0x0EDF, 0x0EF4, 0x0F0B, 0x0F21, 0x0F39, 0x0F51,
0x0F6A, 0x0F84, 0x0F9E, 0x0FB9, 0x0FD5, 0x0FF2, 0x1207, 0x1217,
0x1226, 0x1237, 0x1247, 0x1258, 0x126A, 0x127C, 0x128F, 0x12A2,
0x12B6, 0x12CA, 0x12DF, 0x12F4, 0x130B, 0x1321, 0x1339, 0x1351,
0x136A, 0x1384, 0x139E, 0x13B9, 0x13D5, 0x13F2, 0x1607, 0x1617,
0x1626, 0x1637, 0x1647, 0x1658, 0x166A, 0x167C, 0x168F, 0x16A2,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -