#!/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