Skip to content

Banana71/DX7Sheet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DX7 Voice Data Sheet Generator

A Python script that generates human-readable data sheets from Yamaha DX7 32-voice SysEx files (.syx). This tool is perfect for archiving, sharing, or manually re-entering patches into a hardware synthesizer or a software editor like Dexed.


💡THE SOLUTION

I wanted a simple, universal solution to this problem. The goal was to find a pure text-based method to share patches that bypasses file upload restrictions entirely.

This script converts a binary SysEx file into a clean, human-readable text data sheet.

  • It's just text. You can copy and paste the entire data sheet directly into a Reddit comment or any other text field.

  • It's safe and accessible. No one has to download a file, which removes security concerns and extra steps.

  • It's universal. Anyone can read the parameters and manually enter them into their hardware or VST.

  • Auto-detects banks: Scans the current directory for all available .syx files and presents them for selection.

  • Generates detailed data sheets: Creates a complete data sheet for the chosen patch.

  • Organized output: Saves the data sheet as a .txt file in an automatically created subfolder named Sheet.

  • Authentic formatting: Formats all parameters to match the DX7's display logic.

  • Print-optimized: The layout is designed to fit on a single A4 page.


⚙️ Requirements

  • Python 3.x

🚀 How to Use

Operation is fully interactive in the console; no command-line arguments are needed.

  1. Prepare Your Files: Place the script (dx7sheet.py), the batch file (start.bat for Windows), and your .syx bank files all in the same folder.

  2. Run the Script:

    • Windows (Recommended): Simply double-click the start.bat file.
    • Other Systems (or manually): Open a terminal or command prompt, navigate to the script's folder, and run the command python dx7sheet.py.
  3. Select a File The script lists all available .syx files. Enter the number of the file you want to load.

  4. Select Operation Mode The script will ask you to choose a mode:

    • [1] Batch Export: Automatically converts ALL 32 voices of the bank into individual text files.
    • [2] Single Patch: Lists all voice names. You select one specific number, and it generates the sheet for that sound only.
  5. Result The generated text files are saved in a subfolder named Sheet. ◦ Example filename: 01_Piano 1.txt

Example Workflow

Here is what the process looks like in the console:

--- DX7 Voice Data Sheet Generator  ---
Available SysEx files:
-----------------------------------
  01: Mirage_33to64.syx
-----------------------------------
Which file to load? (1-1): 1

File loaded successfully.
Choose operation mode:
  1: Export ALL 32 patches (Batch)
  2: Export SINGLE patch (Interactive)
Selection (1 or 2): 2
--------------------------------------------------
  01: Wave Bass     02: Davie504
  03: Rhodes        04: Rhodes
  05: PostSynth     06: FarAway
  07: BNIT VOICE    08: Cave Noise
  09: HeavenLA      10: HeavenB
  11: HeavenC       12: Fanta
  13: Fanta         14: Fanta
  15: I-71KOKUBO    16: I-71KOKUBO
  17: I-71KOKUBO    18: I-71KOKUBO
  19: I-71KOKUBO    20: I-71KOKUBO
  21: I-71KOKUBO    22: I-71KOKUBO
  23: 60s Square    24: A3ir Raid
  25: SeikoMeloA    26: SeikoMeloB
  27: Real Angel    28: SID-Chip
  29: SID-Chip      30:
  31:     32:
--------------------------------------------------
Select patch number (1-32): 10

--- Data sheet generated! ---
==============================================================
          DX7 VOICE DATA SHEET by SOUNDPLANTAGE.COM
==============================================================
Voice #10: HeavenB               Bank: Mirage_33to64.syx
==============================================================
ALGORITHM: 3    FEEDBACK: 0    TRANSPOSE: 0
--------------------------------------------------------------
PARAM          OP1     OP2     OP3     OP4     OP5     OP6
--------------------------------------------------------------
OSC MODE       FIX     RATIO   RATIO   FIX     FIX     RATIO
COARSE         0       1.0     2.0     0       3       4.0
FINE (FREQ)    1.70Hz  1.04    2.26    1.35Hz  2630Hz  4.08
DETUNE         +3      +0      +0      +0      +0      +0
--------------------------------------------------------------
AMP MOD SENS   0       0       0       0       0       0
VEL SENS       1       0       0       1       0       0
OUT LEVEL      71      87      80      70      82      84
--------------------------------------------------------------
BREAK POINT    A-1     D1      G#4     A-1     D1      G#4
L DEPTH        0       0       0       0       0       0
R DEPTH        0       40      23      0       23      28
L CURVE        -LIN    -LIN    -LIN    -LIN    -LIN    -LIN
R CURVE        -LIN    -EXP    -LIN    -LIN    -EXP    -LIN
RATE SCALING   0       0       0       0       0       0
--------------------------------------------------------------
EG LEVEL 1     95      99      99      95      99      99
EG LEVEL 2     99      99      99      99      99      99
EG LEVEL 3     86      94      99      84      93      99
EG LEVEL 4     0       0       0       0       0       0

EG RATE 1      81      76      71      81      76      71
EG RATE 2      35      99      61      33      99      61
EG RATE 3      29      16      8       37      11      8
EG RATE 4      44      9       6       46      5       10
==============================================================
                   LFO, PITCH EG & SYNC
==============================================================
LFO WAVE: TRIANGLE   SPEED: 28    DELAY: 3
PMD: 27         AMD: 0       P MOD SENS: 1
LFO SYNC: ON        OSC SYNC: OFF
--------------------------------------------------------------
PITCH EG LEVEL: L1=50  L2=50  L3=50  L4=50
PITCH EG RATE : R1=99  R2=99  R3=99  R4=99
==============================================================

Saved as: 'Sheet\HavenB.txt'

The Motivation Behind the Script

Many online communities for synthesizer enthusiasts, like subreddits, are fantastic places to share knowledge and sounds. However, a common frustration is that most of these platforms don't allow users to upload files like .syx or .zip directly in their replies. This makes it difficult to share a DX7 patch with someone who is asking for a specific sound.

I wanted a simple, universal solution to this problem. The goal was to find a pure text-based method to share patches that bypasses file upload restrictions entirely.

This script is the result. It converts a binary SysEx file into a clean, human-readable text data sheet. This format is perfect for online forums because:

It's just text. You can copy and paste the entire data sheet directly into a Reddit comment or any other text field.

It's safe and accessible. No one has to download a file, which removes security concerns and extra steps like unzipping.

It's universal. Anyone can read the parameters and manually enter them into their hardware DX7 or a software VST like Dexed to perfectly replicate the sound.

This project was created to provide a simple and effective tool for the DX7 community to easily share patches without barriers.

LICENSE DX7 Voice Data Sheet Generator (dx7sheet.py) Copyright (c) 2025 Peter Berghoff / Soundplantage

All rights reserved.

This software is provided for private and personal use only. You may use, modify, and study this code for your own projects, but you may not sell, or publish it — in whole or in part — without explicit written permission from the author.

This tool is part of the Soundplantage project ecosystem.

Use at your own risk.

About

Batch-converts Yamaha DX7 32-voice SysEx files (.syx) into readable parameter sheets.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors