⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matable.h

📁 是一个手机功能的模拟程序
💻 H
📖 第 1 页 / 共 5 页
字号:
/****************************************************************************
 *
 *		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 + -