2010/10/30

使用Matlab讀取Wave檔案中的Cue point的label名稱

任務目標:讀取並修改cue的label


Cue list的Label名稱


由上圖可以看到,由於在切割Onset的過程中的刪刪減減
造成Cue point的label名稱不連續,
因此,希望可藉由Matlab來解決這個問題,
首先,初步要先能夠從wave檔案中讀取label名稱


Offset Size Description Value
0x00 4 Chunk ID "labl" (0x6C61626C)
0x04 4 Chunk Data Size depends on contained text
0x08 4 Cue Point ID 0 - 0xFFFFFFFF
0x0c



Text

而label的格式如上表,每個label名稱都以labl為開頭
0x00 ~ 0x03:'labl'
0x04 ~ 0x07:接下來的資料長度(從0x08這個位置開始)
0x08 ~ 0x0c:對應到cue point的編號
0x0d ~ 資料長度-1:label名稱


label讀取已經實作完成,
下一步是要執行label的修改
直接修改0x0c開始的名稱是沒問題
但若直接修改Cue point id 可能會造成錯誤
所以可能cue point那邊的資料,ID也要跟著修改

Offset Size Description Value
0x00 4 ID unique identification value
0x04 4 Position play order position
0x08 4 Data Chunk ID RIFF ID of corresponding data chunk
0x0c 4 Chunk Start Byte Offset of Data Chunk *
0x10 4 Block Start Byte Offset to sample of First Channel
0x14 4 Sample Offset Byte Offset to sample byte of First Channel

Cue Point Format

沒有留言:

張貼留言