diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-09 17:43:12 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-09 17:43:12 +0100 |
| commit | 4f51332be0ee1a046fdc03514d32fe31cf7b61a8 (patch) | |
| tree | cfcee2627be6b6af4185d24c5a0049f331b0c5d2 /convert_track.py | |
| parent | d5f78a4c2e7b626a492643efd62ddeb394276722 (diff) | |
docs: Update documentation and clean up obsolete files
- Add Task #76: External library size measurement
- Update hot-reload documentation across README, HOWTO, PROJECT_CONTEXT
- Update test count: 36/36 passing (100%)
- Remove completed analysis files from root
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'convert_track.py')
| -rw-r--r-- | convert_track.py | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/convert_track.py b/convert_track.py deleted file mode 100644 index ec9d62c..0000000 --- a/convert_track.py +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env python3 -"""Convert .track files from beat-based to unit-less timing.""" - -import re -import sys - -def convert_beat_to_unit(beat_str): - """Convert beat value to unit-less (beat / 4).""" - beat = float(beat_str) - unit = beat / 4.0 - return f"{unit:.2f}" - -def process_line(line): - """Process a single line, converting beat values.""" - line = line.rstrip('\n') - - # Skip comments and empty lines - if not line.strip() or line.strip().startswith('#'): - return line - - # PATTERN line - add LENGTH 1.0 - if line.strip().startswith('PATTERN '): - # Check if LENGTH already exists - if ' LENGTH ' in line: - return line - parts = line.split() - if len(parts) >= 2: - return f"PATTERN {parts[1]} LENGTH 1.0" - return line - - # Event line (starts with a number) - match = re.match(r'^(\s*)([0-9.]+),\s*(.+)$', line) - if match: - indent, beat_str, rest = match.groups() - unit_str = convert_beat_to_unit(beat_str) - return f"{indent}{unit_str}, {rest}" - - return line - -def main(): - if len(sys.argv) != 3: - print(f"Usage: {sys.argv[0]} <input.track> <output.track>") - sys.exit(1) - - input_file = sys.argv[1] - output_file = sys.argv[2] - - with open(input_file, 'r') as f: - lines = f.readlines() - - # Add header comment about timing - output_lines = [] - output_lines.append("# Enhanced Demo Track - Progressive buildup with varied percussion\n") - output_lines.append("# Features acceleration/deceleration with diverse samples and melodic progression\n") - output_lines.append("#\n") - output_lines.append("# TIMING: Unit-less (1 unit = 4 beats at 120 BPM = 2 seconds)\n") - output_lines.append("# Pattern events use unit-less time (0.0-1.0 for 4-beat pattern)\n") - output_lines.append("# Score triggers use unit-less time\n") - - # Skip old header lines - start_idx = 0 - for i, line in enumerate(lines): - if line.strip() and not line.strip().startswith('#'): - start_idx = i - break - - # Process rest of file - for line in lines[start_idx:]: - output_lines.append(process_line(line) + '\n') - - with open(output_file, 'w') as f: - f.writelines(output_lines) - - print(f"Converted {input_file} -> {output_file}") - -if __name__ == '__main__': - main() |
