Never-Gonna-Give-Beep-Up/gen.py

36 lines
1.1 KiB
Python

with open('nevergonnagiveyouup.ino') as f:
lines = f.readlines()
note_to_freq = {}
tempo = 150
with open('rickroll.sh', 'w') as f:
for line in lines:
if '#define' in line:
split = line.split()
note_to_freq[split[1]] = split[2]
elif 'NOTE' in line:
split = line.split(',')
note = True
for word in split:
word = word.replace(' ', '')
print(word)
if '//' in word or word == '\n':
continue
elif 'NOTE' in word:
f.write(f'beep -f {note_to_freq[word]}')
note = True
elif 'REST' in word:
f.write('sleep')
note = False
else:
d = int(word)
if d < 0:
d /= -1.5
l = (60000 * 4)/tempo/d
if note:
f.write(f' -l {l}\n')
else:
f.write(f' {l/1000}\n')