From ec0f41b5748e6853ebd202fc4eb2ed4b7245782b Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 6 May 2026 21:57:11 +0900 Subject: [PATCH] S3M/MON converters using NOTE_CUT for note-off because of fadeout semantics --- mon2taud.py | 2 +- s3m2taud.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mon2taud.py b/mon2taud.py index 329829b..d83b2cb 100644 --- a/mon2taud.py +++ b/mon2taud.py @@ -132,7 +132,7 @@ def mon_note_to_taud(mon_note: int) -> int: if mon_note == 0: return NOTE_NOP if mon_note == 0x7F: - return NOTE_KEYOFF + return NOTE_CUT val = TAUD_C4 + round((mon_note - MON_NOTE_C4) * 4096.0 / 12.0) return max(1, min(0xFFFD, val)) diff --git a/s3m2taud.py b/s3m2taud.py index edc0cc1..2e778a5 100644 --- a/s3m2taud.py +++ b/s3m2taud.py @@ -226,7 +226,7 @@ def encode_note(s3m_note: int) -> int: if s3m_note == S3M_NOTE_EMPTY: return NOTE_NOP if s3m_note == S3M_NOTE_OFF: - return NOTE_KEYOFF + return NOTE_CUT octave = (s3m_note >> 4) & 0xF pitch = s3m_note & 0xF if pitch > 11: