blob: fdc10dd56dd200eafd8daee30bf371b6f8dc5b06 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/usr/bin/fish -c python beepemu2 | play -r 100000 -t s16 -
import math
import struct
import sys
def saw(t):
t = t % 1
if t < 0.25:
return 4*t
elif t < 0.75:
return 2-4*t
else:
return 4*t-4
t,s = 0,0
flag = ''
flags = {}
with open("megalovania.sh") as f:
for x in f.read().split():
if x == 'beep':
pass
elif x[0] == '-':
flag = x[1]
else:
flags[flag] = int(x)
if flag == 'l' and x != '-l':
t += flags['D']
while s < t:
sys.stdout.buffer.write(struct.pack('h', 0))
s += 1/100
flags['D'] = 0
t += flags['l']
while s < t:
sys.stdout.buffer.write(struct.pack('h', int(math.e**(-flags['f']/500)*2**14*saw(flags['f']*s/1000))))
s += 1/100
|