Build Fix
ci / checks (push) Failing after 1h18m29s

This commit is contained in:
khodowany
2026-09-25 09:35:09 -05:00
parent 07559ad74c
commit 17326dbf56
34 changed files with 283 additions and 3723 deletions
+5 -5
View File
@@ -13,7 +13,7 @@ from generator.model import TYPE_LENGTHS, fraction, rational
from generator import pitch
SAMPLE_RATE = 48000
PROFILE = 'soft-struck-1'
PROFILE = 'soft-struck'
MAX_EVENTS = 1000000
class PlaybackUnavailable(ValueError):
@@ -145,7 +145,7 @@ def compile_timeline(document: dict) -> dict:
if len(events) > MAX_EVENTS:
raise PlaybackUnavailable('playback exceeds one million tone events')
events.sort(key=lambda e: (fraction(e['onset']), e['id']))
return {'version': 1, 'available': True, 'duration': rational(absolute + sum(insertions.values(), Fraction())), 'events': events}
return {'available': True, 'duration': rational(absolute + sum(insertions.values(), Fraction())), 'events': events}
def write_pcm(path: Path, values) -> str:
samples = array('h', (round(max(-1, min(1, sample)) * 32767) for sample in values))
@@ -193,13 +193,13 @@ def compile_tree(root: Path) -> None:
used[tone['id']] = tone
playback.update({'samples': list(used.values()), 'release': release, 'profile': PROFILE})
except PlaybackUnavailable as error:
playback = {'version': 1, 'available': False, 'reason': str(error)}
playback = {'available': False, 'reason': str(error)}
document['playback'] = playback
path.write_text(json.dumps(document, indent=2, ensure_ascii=False) + '\n', encoding='utf-8')
def validate_assets(playback: dict, root: Path, cache: dict | None = None) -> None:
if playback.get('version') != 1 or type(playback.get('available')) is not bool:
raise ValueError('invalid playback manifest version/availability')
if not isinstance(playback, dict) or type(playback.get('available')) is not bool:
raise ValueError('playback manifest requires boolean availability')
if not playback['available']:
if not isinstance(playback.get('reason'), str) or not playback['reason']:
raise ValueError('unavailable playback must explain why')