Patcher: arnoldasr's mods as extended_bpm, phasemeter, rgb_waveform

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Thiemo TizianiandClaude Opus 5.5 committed 2026-10-18 23:49:49 +02:00
1 parent 7dbb4ec6f8
commit 429c9ab8fc
3 files changed
+19 -20

No files matched your search

+6 -7
View File
@@ -26,7 +26,7 @@ choose, as a new C900NXS.UPD for the player's own USB update.
The mods come from the CDJ900NXSVirtual checkout next to this folder
(--repo): mods/patch_cdj900nxs.py, which also needs arnoldasr's checkout in
mods/cdj900nxs/upstream for his mods (code, utility, overview).
mods/cdj900nxs/upstream for his mods (extended_bpm, phasemeter, rgb_waveform).
"""
import argparse
import os
@@ -38,9 +38,8 @@ sys.path.insert(0, HERE)
import upd # noqa: E402
DEFAULT_REPO = os.path.join(os.path.dirname(HERE), 'CDJ900NXSVirtual')
UPSTREAM_MODS = ('code', 'utility', 'overview')
NEEDS = {'utility': 'code', # the PHASE METER switch chooses the code mod's meter
'hotcuekeys': 'cuecolours', # the hot cues the keys play are read by cuecolours
UPSTREAM_MODS = ('extended_bpm', 'phasemeter', 'rgb_waveform')
NEEDS = {'hotcuekeys': 'cuecolours', # the hot cues the keys play are read by cuecolours
'beatjump': 'hotcuekeys'} # hotcuekeys' engine makes the jumps
LABEL = '1.32'
# not ticked at the start of the list, and why
@@ -148,7 +147,7 @@ def choose(mods):
for i, (name, what, ok, why) in enumerate(mods):
mark = '[x]' if name in chosen else ('[ ]' if ok else ' - ')
cursor = '>' if i == at else ' '
text = '%s %s %-11s %s' % (cursor, mark, name, what if ok else why)
text = '%s %s %-13s %s' % (cursor, mark, name, what if ok else why)
sys.stdout.write('\x1b[2K' + ('\x1b[7m%s\x1b[0m' % text if i == at else text)[:200] + '\n')
need = ', '.join('%s needs %s' % kv for kv in NEEDS.items())
sys.stdout.write('\x1b[2K (%s)\n\x1b[2K\n' % need)
@@ -181,7 +180,7 @@ def choose_by_number(mods):
print('\n Mods (all usable ones without known faults are ticked):')
for i, (name, what, ok, why) in enumerate(mods, 1):
mark = '[x]' if name in chosen else ('[ ]' if ok else ' - ')
print(' %d %s %-11s %s' % (i, mark, name, what if ok else why))
print(' %d %s %-13s %s' % (i, mark, name, what if ok else why))
answer = input(' Numbers to tick/untick (e.g. 1 3), enter to go on, q to quit: ').strip()
if not answer:
break
@@ -264,7 +263,7 @@ def main(argv=None):
mods = available(patcher, args.repo)
if args.list:
for name, what, ok, why in mods:
print('%-11s %s%s' % (name, what, '' if ok else ' (%s)' % why))
print('%-13s %s%s' % (name, what, '' if ok else ' (%s)' % why))
return 0
if not args.stock:
ap.error('give the official C900NXS.UPD')