Skip to content

Commit

Permalink
update midiseq.d
Browse files Browse the repository at this point in the history
  • Loading branch information
ZILtoid1991 committed Jul 25, 2023
1 parent d5008bb commit 5f0ea38
Showing 1 changed file with 29 additions and 10 deletions.
39 changes: 29 additions & 10 deletions pixelperfectengine/src/pixelperfectengine/audio/base/midiseq.d
Original file line number Diff line number Diff line change
Expand Up @@ -123,17 +123,36 @@ public class SequencerM1 : Sequencer {
* track = The track number, in case if a tempo change event happens.
*/
protected final void setTimeDiv(uint usecPerQNote, size_t track = 0) @nogc @safe pure nothrow {
if (src.headerChunk.division.getFormat == 0) {
usecPerTic[track] = usecPerQNote / src.headerChunk.division.getTicksPerQuarterNote();
if (src.headerChunk.trackFormat == TrackFormat.simultaneous) {
if (src.headerChunk.division.getFormat == 0) {
for (int t ; t < usecPerTic.length ; t++)
usecPerTic[t] = usecPerQNote / src.headerChunk.division.getTicksPerQuarterNote();
} else {
switch (src.headerChunk.division.getNegativeSMPTEFormat()) {
case -29:
for (int t ; t < usecPerTic.length ; t++)
usecPerTic[t] = cast(uint)(29.97 * src.headerChunk.division.getTicksPerFrame());
break;
default:
for (int t ; t < usecPerTic.length ; t++)
usecPerTic[t] = cast(uint)(-1 * src.headerChunk.division.getNegativeSMPTEFormat() *
src.headerChunk.division.getTicksPerFrame());
break;
}
}
} else {
switch (src.headerChunk.division.getNegativeSMPTEFormat()) {
case -29:
usecPerTic[track] = cast(uint)(29.97 * src.headerChunk.division.getTicksPerFrame());
break;
default:
usecPerTic[track] = cast(uint)(-1 * src.headerChunk.division.getNegativeSMPTEFormat() *
src.headerChunk.division.getTicksPerFrame());
break;
if (src.headerChunk.division.getFormat == 0) {
usecPerTic[track] = usecPerQNote / src.headerChunk.division.getTicksPerQuarterNote();
} else {
switch (src.headerChunk.division.getNegativeSMPTEFormat()) {
case -29:
usecPerTic[track] = cast(uint)(29.97 * src.headerChunk.division.getTicksPerFrame());
break;
default:
usecPerTic[track] = cast(uint)(-1 * src.headerChunk.division.getNegativeSMPTEFormat() *
src.headerChunk.division.getTicksPerFrame());
break;
}
}
}
}
Expand Down

0 comments on commit 5f0ea38

Please sign in to comment.