diff options
| author | robojumper <robojumper@gmail.com> | 2025-05-26 01:49:31 +0200 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2025-05-26 01:49:31 +0200 |
| commit | c62d985bde15e5304e6b050082ed04ac1b16c5c7 (patch) | |
| tree | c9fa76ea3867ea71dd6d33589e29f43ae4ea8cbd /src/nw4r | |
| parent | 913b135a0fa7282848f94dd590e736c47d662fce (diff) | |
snd_SeqTrack OK
Diffstat (limited to 'src/nw4r')
| -rw-r--r-- | src/nw4r/snd/snd_MmlParser.cpp | 2 | ||||
| -rw-r--r-- | src/nw4r/snd/snd_SeqTrack.cpp | 17 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/nw4r/snd/snd_MmlParser.cpp b/src/nw4r/snd/snd_MmlParser.cpp index 56fe73b2..18b4537a 100644 --- a/src/nw4r/snd/snd_MmlParser.cpp +++ b/src/nw4r/snd/snd_MmlParser.cpp @@ -410,7 +410,7 @@ void MmlParser::CommandProc(MmlSeqTrack *track, u32 command, s32 commandArg1, break; case MML_SET_PITCH_BEND: - trackParam.pitchBend = commandArg1; + trackParam.pitchBend.SetTarget(commandArg1, commandArg2); break; case MML_SET_BEND_RANGE: diff --git a/src/nw4r/snd/snd_SeqTrack.cpp b/src/nw4r/snd/snd_SeqTrack.cpp index 81b2cb69..217925e6 100644 --- a/src/nw4r/snd/snd_SeqTrack.cpp +++ b/src/nw4r/snd/snd_SeqTrack.cpp @@ -83,7 +83,7 @@ void SeqTrack::InitParam() mParserTrackParam.surroundPan.InitValue(0); mParserTrackParam.volume2 = 127; mParserTrackParam.velocityRange = 127; - mParserTrackParam.pitchBend = 0; + mParserTrackParam.pitchBend.InitValue(0); mParserTrackParam.bendRange = DEFAULT_BENDRANGE; mParserTrackParam.initPan = 0; mParserTrackParam.transpose = 0; @@ -172,6 +172,7 @@ int SeqTrack::ParseNextTick(bool doNoteOn) mParserTrackParam.volume.Update(); mParserTrackParam.pan.Update(); mParserTrackParam.surroundPan.Update(); + mParserTrackParam.pitchBend.Update(); if (mParserTrackParam.noteFinishWait) { @@ -277,7 +278,7 @@ void SeqTrack::UpdateChannelParam() volume *= mSeqPlayer->GetVolume(); f32 pitch = - mParserTrackParam.pitchBend / 128.0f * mParserTrackParam.bendRange; + mParserTrackParam.pitchBend.GetValue() / 128.0f * mParserTrackParam.bendRange; f32 pitchRatio = 1.0f; pitchRatio *= mSeqPlayer->GetPitch(); @@ -339,13 +340,17 @@ void SeqTrack::UpdateChannelParam() channel->SetOutputLine(mSeqPlayer->GetOutputLine()); channel->SetMainOutVolume(mSeqPlayer->GetMainOutVolume()); channel->SetMainSend(mainSend); - + for (int i = 0; i < AUX_BUS_NUM; i++) { AuxBus bus = static_cast<AuxBus>(i); channel->SetFxSend(bus, fxSend[i]); } + for (int i = 0; i < 4; i++) { + channel->SetRemoteOutVolume(i, mSeqPlayer->GetRemoteOutVolume(i)); + } + for (int i = 0; i < mSeqPlayer->GetVoiceOutCount(); i++) channel->SetVoiceOutParam(i, mSeqPlayer->GetVoiceOutParam(i)); @@ -500,8 +505,14 @@ void SeqTrack::SetModSpeed(f32 modSpeed) mParserTrackParam.lfoParam.speed = modSpeed; } +#if 0 // SeqTrack::GetTrackVariable? maybe both? DECOMP_FORCE(NW4RAssertHeaderClampedLValue_String(varNo)); +#endif + +void SeqTrack::SetTrackVariable(int variable, s16 value) { + mTrackVariable[variable] = value; +} s16 volatile *SeqTrack::GetVariablePtr(int varNo) { |
