Generate Audio Song files for Windows (and Amiga Protracker compatible) .mod files.
Just start it and click "Generate". After a moment you can find a new song (each run different melody) in the output folder (where the script is).
Changelog:
Update News (18.03.2026 / Tools)
29 years, 4 month and 7 days ago on a Amiga 2000 computer i have created the original mod. now it is a example source for my new extension for "what ever i am currently developer here" ;-) under "tools" is a converter to convert any instruments of a mod file to a single instrument to use it as a "soul" plugin for new songs. the "soul" plugin is not ready for release yet (until now) but i am still working on it. :-)
Example (tools / modconv) Output:
mod_similari_output.mp4
If you would like to hear some real outputs of the current main state scroll down.. there are some examples..
New in Commit 14b74da (04.03.2026) v6.13):
- Melody Influence selectable under Options (How much of a plugin/preset song should have an influence 8/16/32/64 notes)
The_wildest_dancingqueen_save_the_disco___1022_20260304_070950_key_Cs2.mp4
New in Commit e101607 (02.03.2026) v6.12):
- Hotfix added for a issue with the compatibility with the PT2Clone Project (https://github.com/8bitbubsy/pt2-clone)
- Compiled Windows executable for Windows added (v6.12)
New in Commit 9ad9c31 (01.03.2026) v6.10):
- Added vertical scrollbars for the app window (for monitors with a lower resolution)
- App is starting maximized now
- Added Presets
- Fixed a bug for tracks with multiple drumsets
New in Commit be9f20f (01.03.2026 v6.9):
- Added Presets
- Added Option for Ralph Loop option to ignore Drumsets
- Help System added (in options tab) based upon the Amiga Guide fileformat (incl. viewer for Windows / Linux)
- Bug fixes
Fuer_Elise_Preset__4531_20260301_005441_key_E2.mp4
New in Commit 825e40b (28.02.2026 v6.7):
-
Some Option tweaks
-
Added additional visual themes
-
Minor bug fixes
Note: The classic Version 2.0 is still included (if you dont like "ralph"). To run it just open protracker_mod_choral_generator.py instead of run_linux.sh for Linux or run_windows.bat for Windows.
Example Theme 2 (Amiga ECS look):
A_crazy_dancingqueen_dance_fame_a_phonecall___5251_20260228_235450_key_G2.mp4
New in Commit 825e40b (28.02.2026 v6.6):
- Major changes have been made like:
- Interface Switched from using TkInter to PyQt6
- Theme Support
- Main Program splitted into different engine modules
- Fx Settings added
- Multiple bases / combinations of classical songs as a seed base for the randomize function
- bug fixes
- Setting Ralph Loop as a default :-)
New in Commit 865d1b3 (27.02.2026 v2.0.3):
- Tabs added Song / Samples / Options
- Samples tab let you preview each generated sample, or you could replace it with your own samples
- Ralph-Loop added in options (to let the script try as hard as it can to find a most harmonic / melodic song for a single seed)
- Empty Pattern Option added to the end of each song to make sure its not just stopping if you dont want to loop it
- Added another visulizer like a classical disco light
- Added many more minor options
New in Commit ee77f2e (23.02.2026 v1.8.1):
-
Some work on the harmonize engine
-
Basic drum sets for music styles added
-
Bug fixes
Note: It might be currently better to change the octave span in channel 3 from 3 to 2 .. there is a little bug in the routine.
Another_jungleman_linked_by_the_DJ___5047_20260221_143510_key_A2.mp4
New in Commit da7fe2b (21.02.2026 v1.7.8.4):
- Bug fixes
- Channel Scope switched to show both stereo channels for rendered playback
- Harmonizer extended
- Channel limiter added
- Minor improovments
pure_random_v1784.mp4
New in Commit c65a690 (21.02.2026 v1.7.5):
- Major changes with additional features, tooltips, languages, plugins, instruments, options..
- Bug fixes
New in Commit 88944e6 (19.02.2026 v1.6.6):
- Feature added to use a generated song as a synthetic base for new songs
- Improoved Melody generation
New in Commit afbff2a (18.02.2026 v1.6.5):
- Added Patterns
- Added Instuments
- Added Base Key (optional)
- Bug fixes / improovments
New in Commit e8055ea (05.02.2026 v1.6.3):
- Pattern Preview added
- Metadata and Info Text option added for Melody Plugins
- Buttons to open the Plugin and Output folders (useful for the next Windows executable release)
- Button added to refresh the Melody Plugin listing (for example if you add melody plugins while the app is still running)
- Bugfixes (Pure Random Melody and some other stuff)
v163_pure_random_mode.mp4
New in Commit bab5bc3 (03.02.2026 v1.6.2):
- Plugin Library added (you can add now TXT and/or MID/MIDI Files for own base melodies
- Bugfixes and Improvements added
A_dirty_toilet_went_to_a_busstation___0964_20260203_212641_key_G2.mp4
New in Commit d9dd7f1 (02.02.2026 v1.5.1):
- Selectable Base Song / Random
- Unchecked Options
- Bugfixes
New in Commit 856b706 (01.01.2026 v1.5.0):
- Added option to switch between Spectrum Analyzer and Channel Scope (by clicking on it)
- Improved Spectrum Analyzer graphics
- Bug fixes
New in Commit c27098e (31.12.2025 v1.4.9):
-
Improvements for the Spectrum Analyzer
-
WAV export function added (optional)
-
TXT file export with all parameters / patterns added (optional)
-
Playback backend is running seperated from the main process now
-
Bug fixes
-
Compiled Windows Executable Release Version 1.4.9 added
New in Commit 04fffbd (31.12.2025 v1.4.1):
- New interface with build-in spectrum analyser and play function (after rendering the Amiga Protracker output for your PC).
New in Commit dd96d8b (30.12.2025 v1.3):
- Added the option to select presets from the pattern order field as a pulldown menu (all of the so far testet pattern orders)
- Changed the slowdown effect to the last pattern (if enabled) instead of explicit pattern 5
latest30_12_2025.mp4
New in Commit 78653e3 (30.12.2025 v1.2):
- Added some more instruments to choose (Acoustic Guitar, Flamenco Guitar, Organ, Flute, Oboe)
- Bugfix for the Instruments (all instruments use now the same reference-note to make them more harmonic to the other instruments)
New in Commit 00cc274 (29.12.2025 v1.1):
- Changed the Samples of each of the 4 Protracker channels to different Samples (even if you stay by Piano it will be a different Sample Number to make it easier to change it later).
- Added some different (generated) default instuments (selectable) for each Channel (Piano, Clarinet, Sax, Synth Pad, Violin, Tuba, Bajo, Panflute)
New in Commit c6b427a (28.12.2025):
- Changed default mode from CLI mode to GUI mode
- Changed the Commandlineoption -gui to -nogui to use the console only instead of the GUI
- Added Options in the GUI to change the BPM / Speed of the generated songs
- Added more CLI parameters to alter the bpm / speed using the console
- Some Tests done with different song/pattern orders like 5, 5, 1, 5, 0, 2, 3, 4, 2, 5, 0
example3.mp4
New in Commit d424a19 (27.12.2025):
- Generates more random songnames
New in Commit 5f9ec5e (26.12.2025):
Added (optional) GUI for order editing and generation options (the GUI is disabled by default).
Use "-gui" commandline parameter to use a GUI
Use "-noslowdown" commandline parameter to disable the slowdown to the song ending.
Note: I have extended the default Pattern order a bit but you can change this back in GUI Mode to the previous order if you like.
It was before "0, 1, 2, 3, 2, 4, 5" and now it is "0, 1, 2, 3, 2, 4, 1, 4, 2, 5" (makes each song a bit longer).
Double-click:
run_windows.bat
It creates a .venv, installs dependencies, then launches app.py.
Or use the latest windows executable release (takes a moment to start at first run).
- Make the script executable (once):
chmod +x run_linux.sh- Run:
./run_linux.sh- Playback prefers QtMultimedia. On many distros it needs GStreamer plugins.
- If QtMultimedia cannot play (missing plugins), the app falls back to common system players (paplay / aplay / ffplay) when available.
Typical packages:
Debian/Ubuntu:
sudo apt update
sudo apt install -y python3-venv gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-libav pulseaudio-utils alsa-utilsFedora:
sudo dnf install -y python3-virtualenv gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-libav pulseaudio-utils alsa-utilsIf you get an error about the Qt platform plugin xcb, install your distro's Qt6 XCB dependencies (package names vary; often includes libxcb-cursor0, libxkbcommon-x11-0, etc.).
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
pip install -r requirements.txt
python app.pySome Notes:
The reason for some strange melodic songs is that i dont want the script to get uncreative at all, some uncommon notes are great in a specific context (just delete the worse songs).
How ever i would suggest to play the songs using the Protracker / Noisetracker / StarTrekker (by FLT) on a Amiga Computer or the Protracker 2 Clone / VLC using the Amiga Mod Player extension for Windows 10/11.
btw. i think the best way to just play the generated songs is to use the VLC (VideoLan) Mediaplayer because the generated Piano Sample is generated as a Chiptune like FM Synthesized Sample, most Trackers are interpreting it a bit strange, i use the Trackers for myself only to change the instrument but for pure playback VLC ist doing something a bit different and it sounds better with the original sample (also for a converting the generated mods to mp3).
Known bugs: It happens sometimes that most of the created songs have a strange melody (in gui mode) in that case just close the app and restart it (the reason is that the script have preselected "unbeauty" base-notes for the song generation - in that case the result is opposit to the default with strange sounds).