#!/usr/bin/python # song11.py # create a techno song # i1 is a general drum # you pick the amplitude, pitch, and noise to get the right instrument # i2 is an electric keyboard # you pick the amplitude, pitch, and wobble and it handles the attack. iSongLength = 88 # 1:28 long iFade = 3 # 3 second fade out iBPM = 150 # main beats per minute # loud base from 0.4 - 117 iTime = 0 # initialize time while iTime < iSongLength - iFade: iTime += 60.0 / iBPM print 'i1 ', iTime, ' 0.1 20000 60 0.03' #loop # finish with 3 sec fade out iCount = 0 # counter gives volume while iTime < iSongLength: iTime += 60.0 / iBPM iCount += 60.0 / iBPM print 'i1 ', iTime, ' 0.1 ', 20000-(iCount/iFade)*20000, ' 60 0.03' #loop # cymbal to break up the beat at 150 bpm between beats iTime = 0.5 * 60.0 / iBPM while iTime < iSongLength: iTime += 60.0 / iBPM print 'i1 ', iTime, ' 0.2 10000 360 0.3' #loop #last cymbal is a crash, half strength, longer, noisier print 'i1 ', iTime, ' 0.6 5000 360 0.6' # keyboard gives us just a little thing to use, err is it melody? # first 30% of the song is a thing to get people started.. # 1212 ... 11 .. 2122 iTime = 2 * 60.0 / iBPM while iTime < 0.3 * iSongLength: iTime += 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 360 0.3' iTime += 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 460 0.3' iTime += 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 360 0.3' iTime += 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 460 0.3' iTime += 3 * 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 660 0.3' iTime += 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 660 0.3' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 460 0.3' iTime += 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 660 0.3' iTime += 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 460 0.3' iTime += 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 460 0.3' iTime += 2 * 60.0 / iBPM #loop # 30%-end of the song is a slower part.. # 1234 23434 113 003 iKey0 = 260 iKey1 = 360 iKey2 = 460 iKey3 = 560 iKey4 = 760 while iTime < iSongLength - iFade: iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.6 10000 ', iKey1, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey2, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 ', iKey3, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey4, ' 0.1' iTime += 4 * 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 ', iKey2, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 ', iKey3, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey4, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 ', iKey3, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey4, ' 0.1' iTime += 4 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey1, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey1, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.3 10000 ', iKey3, ' 0.1' iTime += 4 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey0, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey0, ' 0.1' iTime += 2 * 60.0 / iBPM print 'i2 ', iTime, ' 0.2 10000 ', iKey3, ' 0.1' iTime += 2 * 60.0 / iBPM #loop