#!/usr/bin/env python2 from math import * from PIL import Image import sys def array(type, name, data): data = list(data) print "const %s %s[] = {" % (type, name) print " " + ", ".join(str(int(x)) for x in data) print "}; // " + str(len(data)) + " bytes\n" def musicbox(x): a = 2*pi/1024 * x #return sin(a) #return sin(a)*0.7 + sin(a/256*238) * 0.1 + sin(a/238*256) * 0.1 + sin(a*2) * 0.1 return sin(a)*0.8 + sin(a*4) * 0.1 array("int8_t", "wave_musicbox", (musicbox(x) * 127 for x in range(0, 1024))) img = Image.open("adsr1.png") data = img.getdata() env = [] for x in range(0, img.size[0]): val = 0 while val < 255: d = data[val * img.size[0] + x] if d[0] < 128: break val += 1 env.append(128 - val / 2) env[len(env) - 1] = 0 array("int8_t", "env_musicbox", env)