fix: musical content — 808 timing, chord voicings, melody range, pad arpeggiation, Ozone paths

- 808 bass: fixed note positions to beat 1.0 per bar (i-iv-i-V, 1.5 beat duration)
- Chords: 4-note 7th voicings (Am7, F7, C7, G7) instead of 2-note intervals
- Lead: constrained to 8-semitone range, pentatonic scale
- Pad: arpeggiated eighth-notes instead of static 2-note drones
- Ozone 12: fixed .vst3 filename paths in Calibrator
- Delta-encoding: fixed cumulative timing drift in _build_midi_source() with CC events

298/298 tests pass.
This commit is contained in:
renato97
2026-05-04 01:30:19 -03:00
parent 623af69483
commit 33bb08270d
11 changed files with 4827 additions and 1018 deletions

View File

@@ -77,9 +77,10 @@ def _resolve_chord_tones(
intervals = [0, 4, 7]
tones: set[int] = set()
for oct_shift in (-12, 0, 12):
for iv in intervals:
tones.add(root + iv + oct_shift)
# Constrain to single octave (oct_shift=0 only) to keep melodies coherent.
# Expanding to ±1 octave creates 2+ octave jumps in the arch contour.
for iv in intervals:
tones.add(root + iv)
return tones