Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
doc
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

TX81Z Programmer

https://mgregory22.me/tx81z/programmer.html

This is an MS-Windows software editor for the 1987 Yamaha TX81Z synthesizer module.

The TX81Z Programmer was originally released on May 25, 2005. I originally released it as $20 shareware, but now I've decided to release it as open source under the GNU Public License version 2.

This code was originally written on Visual C++ 6. I now have it configured to compile on VS2015 Community Edition.

Software Dependencies

File Layout

  • Directories:
    • doc/ - docs and HTML Help file project
    • setup/ - installer project
    • src/ - executable project
    • src/wnd/ - application windows created using CreateWindow
    • src/dlg/ - application windows created using CreateDialog (ie they have a dialog resource, which is usually made with the dialog editor)
    • src/ctrl/ - custom dialog controls
    • src/msg/ - general code library (linked list, files, paths, error handling, random numbers, string processing, etc.)
    • src/gui/ - general gui library
    • src/midi/ - low-level MIDI library (send sysex message, etc.)
  • Files:
    • src/prog.h - global constants
    • src/prog.c - global procedures and WinMain(), which creates the main window
    • src/wnd/mainWnd.c - main window
    • src/tx81z.c - high-level TX81Z-specific MIDI library (send voice, etc.)
    • src/freqratios.c - tables of oscillator frequencies
    • src/tx81z_init.c - tables of init data
    • src/tx81z_meta.c - structures for representing the TX81Z's internal state

Conventions

  • Each .c file contains 8 sections. The first 6 sections declare what's in the file:
    • Global Constants
    • Global Procedures
    • Global Variables
    • Unit (file scope) Constants
    • Unit Procedures
    • Unit Variables
  • The next 2 sections are:
    • Global Procedure definitions
    • Unit Procedure definitions
  • The global declaration sections are duplicated from the header files. I did this to make it easy to browse the contents of the file and jump from declaration to definition in Vim. It's probably not that useful in Visual Studio.
  • A global identifier is composed of the name of the module, an underscore, and the procedure name.
  • A unit identifier is similar but begins with a two letter lowercase abbreviation.
  • The files freqratios.c, tx81z_inits.c, and tx81z_meta.c are #included by other .c files where they belong (just to get them out of my face), so they are not included in the project.

About

An editor for the Yamaha TX81Z synthesizer module (Windows)

Resources

License

Packages

No packages published

Languages