These are MIDI/project files/sheet music for remixing Eulerbeats. Everything is ripped from their on-chain(!!) audio generation code.
Big thanks to the Eulerbeats team for creating a great project. Ape strong
For me, just opening index.html
does not work, I have to run
python -m http.server
or similar.
The Eulerbeats smart contract address is
0x8754F54074400CE745a7CEddC928FB1b7E985eD6
.
To call the read functions on the contract is pretty easy on Etherscan.
scriptCount()
shows that the script is chunked into 4 parts. So calling
getScriptAtIndex(i)
for i=0,1,2,3
gives us 4 tx hashes, which we can plug
into Etherscan. The code is contained in the input data of these 4 tx
(make sure to view in UTF-8).
The seeds I just found on OpenSea but there is probably a faster way such as filtering
for all of the mintOriginal
events.
Maybe it would have been easiest to just use Audio-To-MIDI in Ableton, but I wanted to be precise. When you play a track with the generator script, it console logs Gibberish code which plays the audio. I didn't see an off-the-shelf solution to convert Gibberish to MIDI, so I hacked together some JS to convert the note arrays into MIDI.
The console log also shows the synth settings and how the reverb and chorus is hooked up.
node export.js
will write all 27 MIDI files to the current directory.
I have Ableton files ready made in the Ableton/
folder. For other DAWs, synths can be set up
according to synthinfo.txt
which I dumped from synthinfo.js
. The numbers are scaled in weird multiples of 44100 though.
TODO: clarify this.
TODO: Create the pwm
waveform (the horn-sounding one - think this can just be done in Operator). Improve the reverb if possible.
LP01 LP02 LP03 LP04 LP05 LP06 LP07 LP08 LP09 LP10 LP11 LP12 LP13 LP14 LP15 LP16 LP17 LP18 LP19 LP20 LP21 LP22 LP23 LP24 LP25 LP26 LP27