esq1 is a Python module used to generate and edit patches for the Ensoniq ESQ-1 synthesizer.
Python
Switch branches/tags
Nothing to show
Permalink
Failed to load latest commit information.
.gitignore Initial commit. Jul 4, 2012
LICENSE Add license. Jul 4, 2012
README.md Add README.md. Jul 4, 2012
esq1.py store lfo's mod source in the correct order (closes #1) Feb 13, 2016
example.py Replace print statement with print function (for Python 3). Feb 6, 2013
tests.py
tribel.syx Initial commit. Jul 4, 2012

README.md

Version 1.0

esq1

By Stuart Keith.

esq1 is a Python module used to generate and edit patches for the Ensoniq ESQ-1 synthesizer. The patches can be read from and written to SYSEX files, either in single program dump mode (one patch) or all program dump mode (40 patches).

Each parameter, section (an envelope, LFO, etc), or the entire patch can be randomized.

See example.py for usage.

This module was inspired by Noah Vawter's 'Ensoniq PCB Code and Data Structure C code', which gave me a far better idea of how the PCB data was stored than the ESQ-1 manual.

Thanks to Rainer Buchty's Section Ensoniq for hosting the ESQ-1 manual.

Note

The ESQ-1 manual is incorrect regarding the order of bytes in the LFO section.

The manual specifies (in Appendix 6, 'Program Control Block Structure', under 'Low Frequency Oscillators'):

1   2   3   4   5   6   7   8
M1  M0  LFO Frequency.........
M3  M2  Level 1...............
W1  W0  Level 2...............

It is actually:

1   2   3   4   5   6   7   8
W1  W0  LFO Frequency.........
M1  M0  Level 1...............
M3  M2  Level 2...............