fix acb_mix
This commit is contained in:
parent
abb4cd24cb
commit
1cc605012d
13
src/acb.js
13
src/acb.js
@ -111,7 +111,17 @@ async function mixAcb(acbPath, key, wavDir, mode, skip) {
|
||||
for (let i = 0; i < acb.CueTable.length; i++) {
|
||||
const Cue = acb.CueTable[i];
|
||||
let samplingRate = 0, channelCount = 0;
|
||||
if (Cue.ReferenceType !== 3) debugger;
|
||||
if (Cue.ReferenceType === 1) {
|
||||
const Waveform = acb.WaveformTable[Cue.ReferenceIndex];
|
||||
const isMemory = Waveform.Streaming === 0;
|
||||
const hcaBuffer = isMemory ? acb.memoryHcas[Waveform.MemoryAwbId] : acb.streamHcas[Waveform.StreamAwbPortNo][Waveform.StreamAwbId];
|
||||
const awbKey = isMemory ? acb.memoryHcas.config.key : acb.streamHcas[Waveform.StreamAwbPortNo].config.key;
|
||||
const name = cueNameMap[i] + '.wav';
|
||||
const wavPath = path.join(wavDir, name);
|
||||
await hca.decodeHcaToWav(hcaBuffer, key, awbKey, wavPath, 1, mode);
|
||||
} else if (Cue.ReferenceType === 2) {
|
||||
console.log(`Unsupport ReferenceType: ${Cue.ReferenceType}`);
|
||||
} else if (Cue.ReferenceType === 3) {
|
||||
const Sequence = acb.SequenceTable[Cue.ReferenceIndex];
|
||||
// Sequence.Type: 0 - Polyphonic, 1 - Sequential, Random, Random No Repeat, Switch, Shuffle Cue, Combo Sequential, Track Transition by Selector
|
||||
const timeline = [];
|
||||
@ -196,6 +206,7 @@ async function mixAcb(acbPath, key, wavDir, mode, skip) {
|
||||
console.log(`Writing ${cueNameMap[i] + '.wav'}...`);
|
||||
await hca.writeWavFile(wavPath, mode, channelCount, samplingRate, pcmData);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.mixAcb = mixAcb;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user