PySynth is a suite of simple music synthesizers and helper scripts written in Python 3. It is based on a synth script I found on the Web and then modified for my purposes. The goal is not to produce many different sounds, but to have scripts that can turn ABC notation or MIDI files into a WAV file without too much tinkering.
There are nine PySynth variants now: PySynth A, the oldest variant, only needs Python itself, and sounds somewhat like a cross between a flute and organ. PySynth B is more complex in sound and needs NumPy. It is supposed to be a little closer to a piano. No competition for Pianoteq of course, but a reasonable fit for keyboard music. PySynth E is similar, but an FM-synthesized e-piano so it sounds much brighter than B (slightly DX7 e-piano-like; I used the DX7 presets in hexter as a basis). PySynth S is more comparable to a guitar, banjo, or harpsichord, depending on note length and pitch. PySynth C, D, and P are subtractive synths, reminiscent of 1970s analog synthesizer voices.
The synthesizers are all monophonic, i.e. they can only play one note at a time. (Although successive notes can overlap in PySynth B and S, but not A.) However, two or more output files can be mixed together…
Polymeter is a MIDI sequencer for music that’s in multiple prime meters (1, 2, 3, 5, 7, 11, etc.) simultaneously. Each track has its own loop length, and when the lengths differ, the tracks “slip” (or shift phase) relative to each other. The resulting interference pattern is sufficiently intricate that variations similar to the embellishments of a live performer can be generated algorithmically.
Multitrack step sequencer for polymeter
Each track has its own loop length
Any number of tracks, of any length
Full clipboard support (copy/cut/paste)
Unlimited undo and redo for all edits
Multiple tracks can be edited at once
Optionally shows current position within each track
Drag reordering of tracks
Exports a MIDI file
Join adjacent steps to make tied notes
Recording of live arrangement
Editing of arrangement on timeline
Inter-track modulation of mute, note, velocity, duration, position, and more
Live performance view with full screen mode
Recursive modulation (modulation of modulation) for mute and position