Skip to content

Commit b76f7b4

Browse files
committed
implement sample finetune setting
1 parent 03103ae commit b76f7b4

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

modplayer.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ function ModPlayer(mod, rate) {
116116
channels[chan] = {
117117
playing: false,
118118
sample: mod.samples[0],
119+
finetune: 0,
119120
volume: 0,
120121
volumeDelta: 0,
121122
periodDelta: 0,
@@ -135,10 +136,11 @@ function ModPlayer(mod, rate) {
135136
if (note.sample != 0) {
136137
channels[chan].sample = mod.samples[note.sample - 1];
137138
channels[chan].volume = channels[chan].sample.volume;
139+
channels[chan].finetune = channels[chan].sample.finetune;
138140
}
139141
if (note.period != 0) {
140-
channels[chan].ticksPerSample = note.period * 2;
141142
channels[chan].noteNumber = ModPeriodToNoteNumber[note.period];
143+
channels[chan].ticksPerSample = ModPeriodTable[channels[chan].finetune][channels[chan].noteNumber] * 2;
142144
}
143145
}
144146
if (note.effect != 0 || note.effectParameter != 0) {
@@ -238,7 +240,7 @@ function ModPlayer(mod, rate) {
238240
if (channels[chan].arpeggioActive) {
239241
channels[chan].arpeggioCounter++;
240242
var noteNumber = channels[chan].arpeggioNotes[channels[chan].arpeggioCounter % 3];
241-
channels[chan].ticksPerSample = ModPeriodTable[0][noteNumber] * 2;
243+
channels[chan].ticksPerSample = ModPeriodTable[channels[chan].finetune][noteNumber] * 2;
242244
}
243245
}
244246

0 commit comments

Comments
 (0)