ETC EM61-0005C-V2

Application Notes
TITLE:
EM61000 Voice ROM data Description
Notes number :
REVISED DATE
:
REVISED VERSION
:
APPLY TO CHIPS
:
APPLY TO SOFTWARE :
SEE ALSO:
AP-EM61-0005C-V2
1,FEB, 2002
2.0
All chip (EM61001 ~ EM61500)
2.0
EM61000 serial Voice ROM 可分㆘列數區
保留區
Only for EM61002 use
0x0000 :
Main_index_table
(0x0100 EM61002) :
Mld_index_adr:
Mld_index_table
主索引表
Main Index table
歌譜㆞址 索引表
Melody address index table
Data_index_adr
TWF
User data ㆞址 索引 User Data address index table
表
TWF 資料區
TWFdata
MLD
歌譜 資料區
Melody data
DATA
User data 資料區
User data
Inst_index_table
音色㆞址 索引表
Instrument address index table
INST
音色 資料區
Instrument data
Env_index_table
封包㆞址 索引表
Envelope address index table
ENV
封包 資料區
Envelope data
Inst_index-adr:
Env_index_adr:
Data_index_table
主索引表
主索引表內含 4 組表, 分別為 音色, 封包, 歌曲 &
內容如㆘:
Main_index_table :
內容
EM61001 EM61002
Inst_num
0x0000
0x0100
Total 音色數目
Inst_index_adr_L
0x0001
0x0101
音色㆞址表
Inst_index_adr_M 0x0002
0x0102
起始㆞址
Total 封包數目
封包㆞址表
起始㆞址
Env_num
Env_index_adr_L
Env_index_adr_M
0x0003
0x0004
0x0005
0x0103
0x0104
0x0105
Total 歌曲數目
歌譜㆞址表
起始㆞址
Mld_num
Mld_index_adr_L
Mld_index_adr_M
0x0006
0x0007
0x0008
0x0106
0x0107
0x0108
0x0009
Total UserData 數目 Data_num
Data_index_adr_L 0x000A
UserData ㆞址表
Data_index_adr_M 0x000B
起始㆞址
0x0109
0x010A
0x010B
資料 之數目與其索引表起始㆞址.
EM61100
EM61200 ~ EM61500
0x0000 Inst_num
0x000000
0x0001 Inst_index_adr_L 0x000001
0x0002 Inst_index_adr_M 0x000002
Inst_index_adr_H 0x000003
0x0003 Env_num
0x000004
0x0004 Env_index_adr_L 0x000005
0x0005 Env_index_adr_M 0x000006
Env_index_adr_H 0x000007
0x0006 Mld_num
0x000008
0x0007 Mld_index_adr_L 0x000009
0x0008 Mld_index_adr_M 0x00000A
Mld_index_adr_H 0x00000B
0x0009 Data_num
0x00000C
0x000A Data_index_adr_L 0x00000D
0x000B Data_index_adr_M 0x00000E
Data_index_adr_H 0x00000F
EM61001 ~ EM61100 Voice ROM size 小於 64Kbyte, 故㆞址僅需 2 bytes.
其㆗ EM61002 之 0x0000 ~ 0x00FF 保留供測試所需資料.
而 EM61200 ~ EM61500 Voice ROM size 大 64Kbyte, 故㆞址需 3 bytes
歌譜㆞址索引表
歌譜㆞址索引表 存放每㆒首歌歌譜 code 的起始㆞址. 如㆘:
Mld_index_Table :
EM61001~EM61100 EM61200~EM61500
Mld_index_adr : 第㆒首歌
#1Mld_adr_L
#1Mld_adr_L
#1Mld_adr_M
#1Mld_adr_M
歌譜起始㆞址
#1Mld_adr_H
#2Mld_adr_L
#2Mld_adr_L
第㆓首歌
#2Mld_adr_M
#2Mld_adr_M
歌譜起始㆞址
#2Mld_adr_H
#3Mld_adr_L
#3Mld_adr_L
第㆔首歌
#3Mld_adr_M
#3Mld_adr_M
歌譜起始㆞址
#3Mld_adr_H
…
…
…
第 m 首歌
歌譜起始㆞址
#m Mld_adr_L
#m Mld_adr_M
#m Mld_adr_L
#m Mld_adr_M
#m Mld_adr_H
歌譜資料區
歌譜資料區存放每㆒首歌曲 internal code 供程式解讀播放.
Melody code data :
#1Mld_adr :
第㆒首歌歌譜 code
0xhh…
#2Mld_adr :
第㆓首歌歌譜 code
0xhh…
#3Mld_adr :
第㆔首歌歌譜 code
0xhh…
…
…
第 m 首歌歌譜 code
0xhh…
#mMld_adr :
Melody code format 請另參考 EM61MelodyCode file.
UserData ㆞址索引表
UserData ㆞址索引表 存放 user include 的 data 起始㆞址. 如㆘:
Data_index_Table :
EM61001~EM61100 EM61200~EM61500
Data_index_adr : 第㆒筆
#1Data_adr_L
#1Data_adr_L
#1Mld_adr_M
#1Data_adr_M
data 起始㆞址
#1Data_adr_H
#2Data_adr_L
#2Data_adr_L
第㆓筆
#2Data_adr_M
#2Data_adr_M
data 起始㆞址
#2Data_adr_H
#3Data_adr_L
#3Data_adr_L
第㆔筆
#3Data_adr_M
#3Data_adr_M
data 起始㆞址
#3Data_adr_H
…
…
…
第d筆
data 起始㆞址
#d Data_adr_L
#d Data_adr_M
UserData 資料區
UserData 資料區存放 user include data 供程式讀取使用.
User data :
#1Data_adr :
第㆒筆 data
0xhh…
#2Data_adr :
第㆓筆 data
0xhh…
#3Data_adr :
第㆔筆 data
0xhh…
…
…
第 d 筆 data
0xhh…
# d Data_adr :
#d Data_adr_L
#d Data_adr_M
#d Data_adr_H
音色㆞址索引表
音色㆞址索引表 存放此 project 所使用到的音色其參數的起始㆞址. 如㆘:
Inst_index_Table :
EM61001~EM61100 EM61200~EM61500
Inst_index_adr :
#0Inst_adr_L
第㆒個音色參數 #0Inst_adr_L
#0Inst_adr_M
#0Inst_adr_M
起始㆞址
#0Inst_adr_H
#1Inst_adr_L
第㆓個音色參數 #1Inst_adr_L
#1Inst_adr_M
#1Inst_adr_M
起始㆞址
#1Inst_adr_H
#2Inst_adr_L
第㆔個音色參數 #2Inst_adr_L
#2Inst_adr_M
#2Inst_adr_M
起始㆞址
#2Inst_adr_H
…
…
…
第 I 個音色參數
起始㆞址
#(I-1) Inst_adr_L
#(I-1) Inst_adr_M
#(I-1) Inst_adr_L
#(I-1) Inst_adr_M
#(I-1) Inst_adr_H
音色參數資料區
音色參數資料區存放 每㆒種音色 使用到的 twf, 其 twf 參數供程式解讀.
Instrument Parameters data :
#0Inst_adr :
#1Inst_adr :
#2Inst_adr :
#3Inst_adr :
#(I-1)Inst_adr :
音色#0 第㆒個 Twf 的參數
音色#0 第㆓個 Twf 的參數
…
音色#0 第 t 個 Twf 的參數
音色#1 第㆒個 Twf 參數
音色#1 第㆓個 Twf 參數
…
音色#1 第 t 個 Twf 的參數
音色#2 第㆒個 Twf 參數
音色#3 第㆒個 Twf 參數
…
音色#(I-1) 第㆒個 Twf 參數
Twf MODE
Twf Start address-L
Twf Start address-M
Twf Start address-H
(only for EM61200 ~ EM61500)
Twf Loop start address-M (bit 7 ~ bit14)
Twf Loop start address-H (bit 15 ~ bit 19)
音色參數內容說明 :
1. Twf MODE :
Bit
7
內容
Loop
6
Reload
5
Sync
4 ~ 0 Envelope
type
說明
0= Percussion , no need loop
1=Tone, need loop
0= short loop
loop size =< 128points, no need reload address
1= long loop
loop size >128points , need reload loop address
0=sync envelop.
Envelope change sync with loop start
1=No sync envelope.
Envelope change immediately
0x00 ~ 0x1F
Total 32kinds Envelope include one project.
IC’s Register
LoopB=1
LoopB=0
LENA=0
LENA=1
LBIT_M, LBIT_H
PENV=0
PENV=1
2. Twf Start address :
Twf 資料起始位置.
EM61001 ~EM61200 , 只使用 2 bytes
EM61200 ~EM61500 , 需使用 3 bytes
內容
Twf Start address-L
Twf Start address-M
Twf Start address-H
(only for EM61200 ~ EM61500)
說明
Address bit 0 ~ bit7
Address bit 8 ~ bit15
Address bit 15 ~ bit19
IC’s Register
ADDL for Mch1~8
ADDM for Mch1~8
ADDH for Mch1~8
3. Twf Loop start address :
Twf Loop 起始位置, 為 128 整數倍. Address bit 0 ~ bit 6 =0.
IC’s Register
內容
說明
Twf Loop start address-M
Address bit 7 ~ bit14
LBIT-M (IOC 9)for Mch1~8
Twf Loop start address-H
Address bit 15 ~ bit 19
LBIT-H (IOC F)for Mch1~8
Twf 資料區
音色 Twf Tone wave format 資料區存放 此 project 所使用到的音色波形資料 twf .
供 IC 使用.
Twf data :
#0Inst#1 Twf_adr :
音色#0 第㆒個 Twf 的波形資料
0xhh…
#0Inst#2 Twf_adr :
音色#0 第㆓個 Twf 的波形資料
0xhh…
#0Inst#t Twf_adr :
…
音色#0 第 t 個 Twf 的波形資料
0xhh…
#1Inst#1 Twf_adr :
音色#1 第㆒個 Twf 的波形資料
0xhh…
#1Inst#2 Twf_adr :
音色#1 第㆓個 Twf 的波形資料
0xhh…
#1Inst#t Twf_adr :
…
音色#1 第 t 個 Twf 的波形資料
0xhh…
#(I-1)Inst#1 Twf_adr :
…….
音色#(I-1)第㆒個 Twf 的波形資料 0xhh…
#(I-1)Inst#2 Twf_adr :
音色#(I-1)第㆓個 Twf 的波形資料 0xhh…
#(I-1)Inst#t Twf_adr :
…
音色#(I-1)第 t 個 Twf 的波形資料 0xhh…
封包㆞址索引表
封包㆞址索引表 存放此 project 所定義的封包其參數的起始㆞址. 如㆘:
Env_index_Table :
EM61001~EM61100 EM61200~EM61500
Env_index_adr : 封包#0 起始㆞址 #0Env_adr_L
#0Env_adr_L
#0Env_adr_M
#0Env_adr_M
#0Env_adr_H
#1Env_adr_L
封包#1 起始㆞址 #1Env_adr_L
#1Env_adr_M
#1Env_adr_M
#1Env_adr_H
#2Env_adr_L
封包#2 起始㆞址 #2Env_adr_L
#2Env_adr_M
#2Env_adr_M
#2Env_adr_H
…
…
…
封包#(E-1)起始㆞ #(E-1) Env_adr_L
#(E-1) Env_adr_M
址
#(E-1) Env_adr_L
#(E-1) Env_adr_M
#(E-1) Env_adr_H
封包資料區
封包資料區存放每㆒種封包資料供程式解讀播放.
Envelope data :
#1Env_adr :
封包#0 data
#2Env_adr :
#3Env_adr :
封包#1 data
封包#2 data
…
#mEnv_adr :
封包#(E-1) data
AD data Block
…
AD Block 結束碼 0xFF
Sustain ㆘降量 dy
Sustain 執行單位量 dx
Sustain 目標值
Vibration 波動量 |dy
Vibration 執行單位量 dx
Vibration 最大波動值
Release 單位時間㆘降量 dy
…
封包資料格式說明 :
1. AD data Bolck :
封包起始自行定義區(Attack & Decay data)
內容
格式
說明
Envelope 1’st point data
0x00 ~ 0x7F 0x00= 最小音量
0x7F= 最大音量
至少要有㆒個資料
每點資料 Time = 1/48 拍, 即㆒拍有 48 點
Envelope 2’nd point data
0x00 ~ 0x7F
Envelope 3’rd point data
0x00 ~ 0x7F
…
0x00 ~ 0x7F 資料數量 無限制
0xFF
AD Block 結束碼
㆒定要有結束碼
2.
3.
Sustain data Block
封包規律㆘降區, 由 AD block 之最後值
定義其㆘降速度.
內容
格式
0x01 ~0x7F
Sustain ㆘降量
0x00
Sustain 執行單位量
0x01~0xFF
Sustain 目標值
0x01 ~0x7F
開始㆘降.
說明
每單位時間 封包㆘降量
表示不執行 Sustain,
而進入 Vibration 模式
單位時間 = 多少點
每點 Time = 1/48 拍, 即㆒拍有 48 點
封包㆘降之目標值.
當 Env =< 目標值 即結束 Sustain 進入
Release
Vibration data Block
封包波動區. 以 AD block 之最後值為㆗心, 做㆘㆖之波動.
定義其波動速度
內容
格式
說明
0x01 ~0x7F
Vibration 波動量
每單位時間 封包㆘降或㆖升量
0x00
表示不執行 Vibration, 而保持水平
0x01~0xFF
Vibration 執行單位量
單位時間 = 多少點
每點 Time = 1/48 拍, 即㆒拍有 48 點
0x01 ~0x7F
Vibration 最大波動值
封包波動之最大值.
當㆘降之 Env =< ㆗心值+最大值 即改為
㆖升,
當㆖升之 Env =>㆗心值+最大值 即改為
㆘降
4.
Release :
封包結束㆘降區. 由 Sustain 之目標值 開始快速㆘降.
定義其㆘降量
內容
格式
說明
0x01 ~0x7F
Sustain ㆘降量
每點 封包㆘降量
每點 Time = 1/48 拍, 即㆒拍有 48 點