Skip to content

bwhitman/learnfm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

learnfm

Build the Python & C simulator

cd dx7core
make
./dx7 # a test, will create /tmp/foo.wav with all the patches in order if you want

It will sound like https://soundcloud.com/bwhitman/the-31380-unique-voices-of-the-dx7

To build the python module, first edit the end of pydx7.cc with your location of compact.bin (I will fix this soon, sorry) Then:

python setup.py install # will create a python module called dx7

The python module renders a mono 44,100Hz 16-bit signed int sound from a patch number (0-31379), a midi note, a velocity and a sample length along with the key up sample position.

>>> import dx7
>>> patch_number = 324 
>>> midi_note = 60
>>> velocity = 99
>>> samples = 44100 * 10 
>>> keyup_sample = 44100 * 5 # when to let the key up
>>> data = dx7.render(patch_number, midi_note, velocity, samples, keyup_sample)

Creating your own database

If you want your own patch database, download DX7 sysex patches (I used http://dxsysex.com/ ) and put them in a folder called patches/. Then run

python dx7db.py

Will create a database called compact.bin and names.txt with all of the unique voices from all the banks in the patches (I have 31,380.) The unique-finding-algorithm looks at the data in the voice, not the name. Many voices have different names but the same voice information.

About

A Python Yamaha DX7 module for audio learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages