Add startup delay, adjust logging

This commit is contained in:
2025-01-30 04:43:48 -06:00
parent 3cc391d210
commit 3a7c77c3a2

View File

@@ -61,6 +61,7 @@ def main():
parser.add_argument('--bpm',type=float,default=1,help="Multiplier for the BPM. Change if you're running the game at a higher speed") parser.add_argument('--bpm',type=float,default=1,help="Multiplier for the BPM. Change if you're running the game at a higher speed")
parser.add_argument('--iterations',type=int,default=10000,help="Number of iterations of the sequence to run. Defaults to 10,000") parser.add_argument('--iterations',type=int,default=10000,help="Number of iterations of the sequence to run. Defaults to 10,000")
parser.add_argument('--key-delay',type=int,default=60,help="Number of milliseconds to hold each key down for. Defaults to 100. Tune if you're getting dropped inputs or if the program can't keep up") parser.add_argument('--key-delay',type=int,default=60,help="Number of milliseconds to hold each key down for. Defaults to 100. Tune if you're getting dropped inputs or if the program can't keep up")
parser.add_argument('--startup-delay',type=int,default=0,help="Number of milliseconds by which we should \"start early\". Adjust this value if, despite syncing on-beat, the program is late. The program will never be early -- if it feels like it is, it's just WAY late")
args = parser.parse_args() args = parser.parse_args()
# Schedule out our beat interval # Schedule out our beat interval
@@ -71,8 +72,14 @@ def main():
# 119.880 # 119.880
# 119.000 Wicked slow, outpaces in like 4 measures # 119.000 Wicked slow, outpaces in like 4 measures
bpm_constant = 119.880 bpm_constant = 119.880
print(f"Game BPM: {bpm_constant} BPM * {args.bpm}")
beat_interval = 60 / (bpm_constant * args.bpm * 2) beat_interval = 60 / (bpm_constant * args.bpm * 2)
print(f"Beat interval: {beat_interval}") print(f"Beat interval: {beat_interval * 1000}ms per eighth note")
# This sanity check of min() ensures that we'll never delay by more than a
# beat. Honestly, delaying by a beat makes no sense, but delaying by more
# than one makes even less.
startup_delay = min(beat_interval * 2, args.startup_delay / 1000)
print(f"Startup delay: {startup_delay * 1000}ms")
# Set up the environment # Set up the environment
sequence='--------' + '--------'.join(args.song) sequence='--------' + '--------'.join(args.song)
@@ -82,7 +89,7 @@ def main():
# Wait for user confirmation # Wait for user confirmation
input("Press enter on-beat to sync up with Patapon...") input("Press enter on-beat to sync up with Patapon...")
synctime = time.perf_counter() synctime = time.perf_counter() + startup_delay
# Play da notes # Play da notes
while remaining_iterations > 0: while remaining_iterations > 0: