📄 mammfcnv.h
字号:
/*******************************************************************************
MAMMFCNV.H
Header file for SMAF for MA-1/MA-2/MA-3 sequencer modele
Version : 1.3.5.0 2002.05.29
Copyright (C) 2001-2002 YAMAHA CORPORATION
*******************************************************************************/
#ifndef _MAMMFCNV_H
#define _MAMMFCNV_H
#define rightbits(n,x) ((x) & ((1 << (n)) - 1))
/*--- Definition of Static Value ---------------------------------------------*/
/* Error Status for Return Value */
#define MMFCNV_ERR_ARGUMENT MASMW_ERROR_ARGUMENT /* -2 */
#define MMFCNV_ERR_RESOUCE MASMW_ERROR_RESOURCE_OVER /* -3 */
#define MMFCNV_ERR_ID MASMW_ERROR_ID /* -4 */
#define MMFCNV_ERR_FILE MASMW_ERROR_FILE /* -16 */
#define MMFCNV_ERR_C_CLASS MASMW_ERROR_CONTENTS_CLASS /* -17 */
#define MMFCNV_ERR_C_TYPE MASMW_ERROR_CONTENTS_TYPE /* -18 */
#define MMFCNV_ERR_SIZE MASMW_ERROR_CHUNK_SIZE /* -19 */
#define MMFCNV_ERR_CHUNK MASMW_ERROR_CHUNK /* -20 */
#define MMFCNV_ERR_TAG MASMW_ERROR_UNMATCHED_TAG /* -21 */
#define MMFCNV_ERR_LENGTH MASMW_ERROR_SHORT_LENGTH /* -22 */
/* Error Status for SMAF check */
#define SMAF_ERR_TYPE 0x01
#define SMAF_ERR_CHUNK 0x02
#define SMAF_ERR_SHORT_LENGTH 0x04
/* Error Status for inner function */
#define F_TRUE MASMW_SUCCESS /* 0 */
#define F_FALSE MASMW_ERROR /* -1 */
/* SMAF Load Mode Flag */
#define SMAF_CHECK 0x01
#define SMAF_REGIST 0x02
#define SMAF_CONTROL 0x04
/* SMAF Format Type */
#define SMAF_TYPE_MA1 0x01
#define SMAF_TYPE_MA2 0x02
#define SMAF_TYPE_MA3 0x04
/* SMAF Contents Class & Type */
#define CONTENTS_CLASS_1 0x00 /* Contents Class 0x00 */
#define CONTENTS_CLASS_2 0x20 /* Contents Class 0x20 */
#define CONTENTS_TYPE_1 0x00 /* Contetns Type 0x00 - 0x0F */
#define CONTENTS_TYPE_2 0x10 /* Contents Type 0x10 - 0x1F */
#define CONTENTS_TYPE_3 0x10 /* Contents Type 0x20 - 0x2F */
#define CONTENTS_TYPE_4 0x30 /* Contents Type 0x30 - 0x4F */
#define CONTENTS_TYPE_5 0x40 /* Contents Type 0x40 - 0x3F */
#define CONTENTS_TYPE_6 0x40 /* Contents Type 0x50 - 0x5F */
/* Evnet Flag */
#define EVENT_SYSTEM_ON 0x0001 /* System ON Event */
#define EVENT_MASTER_VOLUME 0x0002 /* Master Volume Control */
#define EVENT_MONO_MODE_ON 0x0004 /* Mono Mode ON Event */
#define EVENT_MASTER_VOL 0x0020 /* Master Volume Control */
#define EVENT_ENDTIME 0x0040 /* End Time Control */
#define EVENT_BANK_9 0x0080 /* Program Change Channel 9 */
#define EVENT_LED_ON 0x0100 /* LED ON */
#define EVENT_MOTOR_ON 0x0200 /* Motor ON */
#define EVENT_LED_OFF 0x0400 /* LED OFF */
#define EVENT_MOTOR_OFF 0x0800 /* Moter OFF */
#define EVENT_EOS 0x1000 /* End of Sequence */
/* Contents Code Type */
#define CONTENTS_CODE_SJIS 0x00
#define CONTENTS_CODE_LATIN1 0x01
#define CONTENTS_CODE_UTF8 0x23
#define CONTENTS_CODE_BINARY 0xFF
/* Phrase Number */
#define PHRASE_PA 1
#define PHRASE_PB 2
#define PHRASE_PE 3
#define PHRASE_PI 4
#define PHRASE_PK 5
#define PHRASE_PS 6
#define PHRASE_PR 7
/* Sound Driver Create Mode */
#define STANDARD 2
#define HIGH_QUALITY 0
#define CREATE_MODE STANDARD
/* Wave Format Type */
#define MMF_WAVE_BIN_2S_COMP 0x00
#define MMF_WAVE_BIN_OFFSET 0x01
#define MMF_WAVE_ADPCM 0x02
#define MMF_WAVE_4BIT 0x00
#define MMF_WAVE_8BIT 0x01
#define MMF_WAVE_SF_MINIMUM 4000
#define MMF_WAVE_SF_4BIT_MAX 24000
#define MMF_WAVE_SF_8BIT_MAX 12000
/* Channel Type */
#define MMF_CH_TYPE_NORMAL 0x01
#define MMF_CH_TYPE_DRUM 0x02
#define MMF_CH_TYPE_STREAM 0x04
#define MMF_CH_TYPE_MA2 0x08
/* Others */
#define E_C_NORMAL 1 /* Error Check Strength High */
#define E_C_LOOSE 0 /* Error Check Strength Low */
#define ERROR_CHECK_STRENGTH E_C_NORMAL
#define POSITION_OF_CONTENTSTYPE 18
#define SIZE_OF_CHUNKHEADER 8
#define SIZE_OF_CRC 2
#define MMF_FS_BASE 0x576
#define PLAY_TIME_MIN 20 /* Minimum Play Time (MA-3) */
#define CRC_INITIAL 0xF0000000
#define EVLIST_SIZE 10
#define OFFLIST_SIZE 64
#define SEEK_END_FLAG 0xFFFF
#define AUDIO_TRACK_NO 0x10
#define MMF_EVENT_STREAM_ON_MA2 0xFD
#define MMF_EVENT_STREAM_OFF_MA2 0xFE
#define MMF_EVENT_EOS 0xFF
#define DOCODE_SIZE_MINIMUM 9
#define DOCODE_FAILURE 0xFFFFFFFF
/* Default Value */
#define MMF_Bank_No 0x00
#define MMF_Bank_Select_MSB 0x00
#define MMF_Bank_Selsct_LSB 0x00
#define MMF_Program_No 0x00
#define MMF_RPN_MSB 0x7F
#define MMF_RPN_LSB 0x7F
#define MMF_Modulation_Depth 0x00
#define MMF_Channel_Volume 0x64
#define MMF_Channel_Panpot 0x40
#define MMF_Expression 0x7F
#define MMF_Dumper_Hold 0x00
#define MMF_Pitch_Bend_Sensitivity 0x02
#define MMF_Channel_Mode 0x00
#define MMF_Pitch_Bend_MSB 0x40
#define MMF_Pitch_Bend_LSB 0x00
#define MMF_Master_Volume3 0x2D
/*#define MMF_Wave_Panpot 0x40 */
#define MMF_Wave_Panpot 0xFF
/*--- Structure --------------------------------------------------------------*/
typedef struct Phrase{
UINT32 dwSTp; /* Data Offset Start Point */
UINT32 dwSPp; /* Data Offset Stop Point */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -