fix: REAPER playback — D_VOL removed, Ozone filenames corrected, ReaEQ removed, MIDI quantized
- D_VOL: removed from _build_clip() — not valid at REAPER item level - Ozone 12: fixed 21 PLUGIN_REGISTRY entries with correct .vst3 filenames - ReaEQ: removed _calibrate_eq() — built-in plugin format incompatible - MIDI: quantized all notes to 16th grid (120 ticks at 960 PPQ) 298/298 tests. 0 D_VOL, 0 ReaEQ, all notes on grid, Ozone filenames correct.
This commit is contained in:
@@ -378,83 +378,6 @@ class TestCalibrateSends:
|
||||
assert dly.send_level == {}
|
||||
|
||||
|
||||
class TestCalibrateEq:
|
||||
def test_reaeq_plugin_prepended(self):
|
||||
"""_calibrate_eq should prepend ReaEQ with HPF/LPF params to non-return tracks."""
|
||||
from src.calibrator import Calibrator
|
||||
|
||||
song = _make_fixture_song()
|
||||
Calibrator._calibrate_eq(song)
|
||||
|
||||
# Drumloop: HPF 60Hz
|
||||
drum = [t for t in song.tracks if t.name == "Drumloop"][0]
|
||||
assert len(drum.plugins) >= 1
|
||||
eq = drum.plugins[0]
|
||||
assert eq.name == "ReaEQ"
|
||||
assert eq.params[0] == 1
|
||||
assert eq.params[1] == 1 # HPF
|
||||
assert eq.params[2] == 60.0
|
||||
|
||||
# Bass: LPF 300Hz
|
||||
bass = [t for t in song.tracks if t.name == "808 Bass"][0]
|
||||
eq = bass.plugins[0]
|
||||
assert eq.name == "ReaEQ"
|
||||
assert eq.params[1] == 0 # LPF
|
||||
assert eq.params[2] == 300.0
|
||||
|
||||
# Chords: HPF 200Hz
|
||||
chords = [t for t in song.tracks if t.name == "Chords"][0]
|
||||
eq = chords.plugins[0]
|
||||
assert eq.params[1] == 1 # HPF
|
||||
assert eq.params[2] == 200.0
|
||||
|
||||
# Pad: HPF 100Hz
|
||||
pad = [t for t in song.tracks if t.name == "Pad"][0]
|
||||
eq = pad.plugins[0]
|
||||
assert eq.params[1] == 1 # HPF
|
||||
assert eq.params[2] == 100.0
|
||||
|
||||
def test_return_tracks_no_reaeq(self):
|
||||
"""Return tracks should not get ReaEQ plugins."""
|
||||
from src.calibrator import Calibrator
|
||||
|
||||
song = _make_fixture_song()
|
||||
Calibrator._calibrate_eq(song)
|
||||
|
||||
rev = [t for t in song.tracks if t.name == "Reverb"][0]
|
||||
dly = [t for t in song.tracks if t.name == "Delay"][0]
|
||||
assert rev.plugins == []
|
||||
assert dly.plugins == []
|
||||
|
||||
def test_reaeq_index_zero(self):
|
||||
"""ReaEQ must be at index 0 (prepended to existing plugins)."""
|
||||
from src.calibrator import Calibrator
|
||||
|
||||
song = _make_fixture_song()
|
||||
# Add an existing plugin to a track
|
||||
lead = [t for t in song.tracks if t.name == "Lead"][0]
|
||||
lead.plugins = [PluginDef(name="Serum 2", path="Serum2.vst3", index=0)]
|
||||
|
||||
Calibrator._calibrate_eq(song)
|
||||
|
||||
assert len(lead.plugins) == 2
|
||||
assert lead.plugins[0].name == "ReaEQ"
|
||||
assert lead.plugins[0].index == 0
|
||||
assert lead.plugins[1].name == "Serum 2"
|
||||
|
||||
def test_unknown_role_no_reaeq(self):
|
||||
"""Tracks with unknown role should not get ReaEQ."""
|
||||
from src.calibrator import Calibrator
|
||||
|
||||
meta = SongMeta(bpm=95, key="Am")
|
||||
song = SongDefinition(
|
||||
meta=meta,
|
||||
tracks=[TrackDef(name="Vocals", plugins=[])],
|
||||
)
|
||||
Calibrator._calibrate_eq(song)
|
||||
assert song.tracks[0].plugins == []
|
||||
|
||||
|
||||
class TestSwapMasterChain:
|
||||
def test_ozone12_master_chain(self):
|
||||
"""_swap_master_chain should replace master_plugins with Ozone 12 triplet."""
|
||||
@@ -510,9 +433,6 @@ class TestCalibratorApply:
|
||||
# Sends applied
|
||||
assert drum.send_level.get(7) == 0.10
|
||||
|
||||
# EQ applied (ReaEQ present)
|
||||
assert drum.plugins[0].name == "ReaEQ"
|
||||
|
||||
# Master chain upgraded
|
||||
assert song.master_plugins == [
|
||||
"Ozone_12_Equalizer",
|
||||
@@ -520,17 +440,15 @@ class TestCalibratorApply:
|
||||
"Ozone_12_Maximizer",
|
||||
]
|
||||
|
||||
def test_apply_skips_bass_lpf_eq(self):
|
||||
"""Bass track should get LPF, not HPF."""
|
||||
def test_apply_skips_bass_volume(self):
|
||||
"""Bass track should get correct calibrated volume, not EQ."""
|
||||
from src.calibrator import Calibrator
|
||||
|
||||
song = _make_fixture_song()
|
||||
Calibrator.apply(song)
|
||||
|
||||
bass = [t for t in song.tracks if t.name == "808 Bass"][0]
|
||||
eq = bass.plugins[0]
|
||||
assert eq.params[1] == 0 # LPF type
|
||||
assert eq.params[2] == 300.0
|
||||
assert bass.volume == 0.82
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user