summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-05-26 01:49:31 +0200
committerrobojumper <robojumper@gmail.com>2025-05-26 01:49:31 +0200
commitc62d985bde15e5304e6b050082ed04ac1b16c5c7 (patch)
treec9fa76ea3867ea71dd6d33589e29f43ae4ea8cbd /src
parent913b135a0fa7282848f94dd590e736c47d662fce (diff)
snd_SeqTrack OK
Diffstat (limited to 'src')
-rw-r--r--src/nw4r/snd/snd_MmlParser.cpp2
-rw-r--r--src/nw4r/snd/snd_SeqTrack.cpp17
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)
{