From 5f585a73cf1cb9a0b26c624e0a6ef392a07abdf2 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sun, 8 Oct 2023 03:09:37 -0600 Subject: [PATCH] Fix SMPTE time divisions not being read/written correctly (#275) --- DryWetMidi/Core/TimeDivision/SmpteTimeDivision.cs | 2 +- DryWetMidi/Core/TimeDivision/TimeDivisionFactory.cs | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/DryWetMidi/Core/TimeDivision/SmpteTimeDivision.cs b/DryWetMidi/Core/TimeDivision/SmpteTimeDivision.cs index 0ae6a669f..72a9db00b 100644 --- a/DryWetMidi/Core/TimeDivision/SmpteTimeDivision.cs +++ b/DryWetMidi/Core/TimeDivision/SmpteTimeDivision.cs @@ -79,7 +79,7 @@ public SmpteTimeDivision(SmpteFormat format, byte resolution) internal override short ToInt16() { - return (short)-DataTypesUtilities.Combine((byte)Format, Resolution); + return (short)DataTypesUtilities.Combine((byte)-(byte)Format, Resolution); } /// diff --git a/DryWetMidi/Core/TimeDivision/TimeDivisionFactory.cs b/DryWetMidi/Core/TimeDivision/TimeDivisionFactory.cs index 4f33f4258..86047e322 100644 --- a/DryWetMidi/Core/TimeDivision/TimeDivisionFactory.cs +++ b/DryWetMidi/Core/TimeDivision/TimeDivisionFactory.cs @@ -10,8 +10,7 @@ internal static TimeDivision GetTimeDivision(short division) { if (division < 0) { - division = (short)-division; - return new SmpteTimeDivision((SmpteFormat)division.GetHead(), division.GetTail()); + return new SmpteTimeDivision((SmpteFormat)(-division.GetHead()), division.GetTail()); } return new TicksPerQuarterNoteTimeDivision(division);