The AC7 Editor is a program designed to work with Casio AC7 files, which are used to play accompaniment rhythms primarily on Casio CT-X model music keyboards. This program provides the ability to make many different modifications to internal AC7 file settings – some of which can also be modified on the keyboard, but several which can’t.
What this program is not:
It’s not a MIDI music editor. There are plenty of MIDI editors out there, and this is not an attempt to reproduce those.
It’s not a MIDI/AC7 player. Many of the unique Casio rhythm features addressed by this editor would only be audible if played on the keyboard anyway.
It does not convert random MIDI files into Casio AC7 accompaniments.
In fact, this AC7 editor may more appropriately be called an AC7 “tuner”, since it is primarily aimed at providing an easy way to change many of the settings in an AC7 file, but not necessarily notes in the musical tracks. In doing so, it takes advantage of a common characteristic of most AC7 files (and for that matter, most other types of music style files), which is that accompaniments frequently use the same Tone (voice) in the same “Part” across the variations. For example, a given part may contain a certain guitar “sound”, and that sound remains the same across several or all variations, even though specific rhythmic or performance details within the tracks can vary widely. And generally, many of the mixer settings for that part, like Volume, Reverb, and so on, are also set the same across variations. That’s certainly not always the case, but it is much more common than not.
So rather than try to provide a user interface that requires individual tweaking of all of the many settings across each and every variation, which can be very tedious (as anyone who has done it on the keyboard knows), this breaks down the accompaniment into “Part/Tone” groups, comprised of groups of variations that use the same Tone within the same Part, and provides edit functions for those. That may be a little hard to visualize until one sees the information that is presented in a list in the main dialog, and then it becomes more intuitive. The variation “mask” on each line shows the specific variations in which each Part/Tone group is used. Based on personal practical experience, this method provides an easy, effective, and most especially efficient, way to fine-tune the sound and performance of an AC7 file.
This version of the program is optimized for use with CT-X3000 and CT-X5000 keyboards, but also provides some support for CT-X700/800, specifically with regards to the Tone and Drum Kit lists supported on those keyboards. (changed via a setting in the Preferences dialog). It also provides limited support for non-CTX keyboards (see later section on non-CTX support). What follows is a summary of what this program can do, marking those editing functions that are not accessible on the keyboard with an ‘*’.
Selecting a Part/Tone group to edit on the main screen allows the user to make the following changes:
Modify Tone and Mixer settings (Volume, Pan, Reverb, Chorus, and Delay). Mixer values and the Tone itself can be changed for that group. *This also introduces access to audio filter functions that are built into the keyboard (for example, low-pass, treble-shelf, and so on), which enables further tuning of instrument sounds.
*Shift track notes by one or two octaves, up or down, or add a “mirror” set of notes one or two octaves up or down (non-drum parts only). The mirror notes can be used to create effects like a draw bar on an organ, or to replicate a 12-string guitar.
Replace specified drum notes with a different note, or *set up a substitution to a different note in another kit (drum parts only).
Make track-specific changes, including *shifting the range of note velocities, changing the Breakpoint, or *setting Low/High limits for notes (the keyboard automatically raises or drops notes by an octave to keep them within these Limit values).
*Create and define DSPs for parts in an accompaniment (up to 2). This provides full configuration information with all named effects and parameters for each effect type.
In addition, the editor provides methods to:
Change the internal Rhythm name (as shown in the keyboard display) and the default tempo. The default tempo of a rhythm can be activated on the keyboard by pressing the up and down tempo buttons simultaneously.
*View a high-level summary of the track content of an AC7
*Browse a folder of AC7 files, showing some basic AC7 information for each, with 1-click selection to open for editing
*Import a Style file. This is actually a very complex process due to significant differences between the keyboard architectures and capabilities. The methods, which have been developed over a period of time, are not perfect (more of a “best fit”), but in general seem to work pretty well. There are always exceptions, especially with newer keyboard Styles, which contain more features that are simply not compatible for conversion.
*Export a 10/12 part AC7 file to a 6-part (useful for CT-X700/800 keyboards), with the ability to choose which specific content to include
*Export a 12-part AC7 (an AC7 that contains 2 intro/ending variations, typically from higher-end MZ keyboards or imported Styles) into two 10-part AC7 files containing intro/endings 1 and 2, respectively.
*Change tracks in the AC7 to make them editable on the keyboard (‘Recorded’ versus ‘Fixed’), with some keyboard-imposed limitations.
*Change the Intro/Ending of an accompaniment to fade in or out, respectively, using either the existing Intro/Ending tracks, or alternatively using a Variation part with the ability to repeat.
The editor is written in a language called ooRexx. This language was chosen primarily based on personal familiarity, some very powerful Object-Oriented language capabilities, and really easy debug. However, it means that this program depends on the installation of two runtime packages. One is the base runtime execution environment, and the second is a GUI dialog manager extension, which unfortunately only runs on Windows. These two packages need to be installed before the program can run. Fortunately, they are relatively small and take very little in the way of system resources. These self-installing packages are available at the following links, or can be found simply by going to Sourceforge.net and searching on “ooRexx”:
Note: For now, be sure to use the 4.2.0 version of ooRexx and the 4.2.4 version of ooDialog
\==>Base runtime package -- download the windows.X86_32 or ...X86_64 package as appropriate (be careful not to select a MacOS or Linux package):
https://sourceforge.net/projects/oorexx/files/oorexx/4.2.0/
or here is the direct download link for X64:
https://sourceforge.net/projects/oorexx/files/oorexx/4.2.0/ooRexx-4.2.0.windows.x86_64.exe/download
\==>Dialog manager (again, choose the appropriate 32/64 package)
https://sourceforge.net/projects/oorexx/files/ooDialog/4.2.4%20%28preview%29/
or here is the direct download link for X64:
Install the base package first, and then the Dialog manager extension. When installing the above packages, it is fine to simply decline or disable every option, if desired, since none of the optional features are needed to run this program. Most of them are only useful for running multiple ooRexx programs simultaneously, or doing actual ooRexx development.
The editor package itself includes only 3 files – the executable, a configuration text file (remap.txt) which is used for guiding Style conversions (really only needed if importing Style files), and this document. The first two files should be placed in the same folder, but that can be wherever one chooses on their computer (for example, C:\Casio).
The program can simply be run from a Windows command line window by typing:
“ooDialog.exe <path>\AC7Editor.rex”</path>
However, a better approach is to create a simple clickable program icon to launch the program (highly recommended!), which can be defined with a Windows shortcut as follows:
On the Windows Desktop, right-click and create a new shortcut. Point it at the ooDialog.exe (not ooDialog.com!) program in the ooRexx installation folder. Typically this would be “C:\Program Files\ooRexx\ooDialog.exe”. Continue and name the shortcut “AC7Editor”
Right click on the new shortcut icon on the Desktop, and select Properties
At the end of the Target string, add a space and the full path to the AC7Editor.rex file, in whichever folder it was installed. For example, it might say:
“C:\Program Files\ooRexx\ooDialog.exe C:\Casio\AC7Editor.rex”)
Change the “Start in” string to the folder containing the AC7Editor file and the remap.txt file (for example, C:\Casio)
Click OK, and that’s it. A double-click on the icon should launch the program. This shortcut can be left on desktop or copied to another folder, or it can be pinned to the Start menu or Taskbar, wherever it is the most convenient.
Main Window: The main dialog window shows (once an AC7 file has been loaded) the general contents of the AC7 rhythm, broken into manageable groups defined by where the same Part (Percussion, Drum, Bass, Chord 1-5) is assigned the same Tone. Often (but not always), the same Tone may used in the same Part across all Variations (Intro, Ending, Variations and Fills 1-4), but that is not a requirement, so on the right in each line is an abbreviated list of Variations which shows where that Tone/Part combination is used. This list is of the form I11223344EIE, where:
the first “I” represents the primary Introduction
“11” represents Variation and Fill 1, “22’ the second Variation/Fill, and so on
the first “E” represents the primary Ending
the “IE” at the end represents an added feature in the AC7 file format which can hold a secondary Introduction and Ending. This is only used on the higher-end keyboards like the MZ series. While this secondary Intro/Ending cannot be used directly on the CT-X series, it is included in this editor’s functions. The Export function can be used to save two alternate versions of a Rhythm file which contain Intro/Ending 1 and Intro/Ending 2, respectively.
If a column in the abbreviated list has only a period (‘.’) in it, then this Part/Tone combination is not used in that Variation.
For each Part/Tone group, there is also a Volume value shown. While the volume mixer setting in each Variation can actually be set differently, it is much more typical that for the same Part/Tone, the volume is set exactly the same. If there are any differences, the volume value shown is the maximum value across all relevant Variations, but it will have an asterisk (‘*’) after it. Volume changes are done by adjusting that maximum volume setting, and any lesser volume values are changed in proportion automatically. If needed, however, all these mixer-related values can be adjusted individually on the keyboard.
Lastly, there is a DSP column, which refers to the CT-X built-in Digital Signal Processor capabilities. A Rhythm can utilize up to 2 DSPs in its playback, but that is the limit. In this column, the following letters are listed:
N: there is no DSP associated with this Part/Tone group
T: the Tone used in this Tone/Part group has a built-in DSP definition associated with it. Tones that have built-in DSPs can be found in the Tone List in the Casio CT-X Appendix PDF file. Unless this DSP is disabled (see next), it counts as one of the two DSPs available.
D: in the editor, the DSP for a given Part/Tone group can be Disabled (presumably because it uses a DSP Tone), and this is how it will be indicated in the main dialog.
Y: this Part/Tone group has a user-defined DSP associated with it that is part of the Rhythm AC7 file definition. The editor provides the menus to create these.
M: rarely, this indication shows that the DSP settings within this Part/Group are set a little differently. While they are usually set the same across all Variations, some built-in rhythms have them set slightly differently. Oddly enough, in those cases it doesn’t seem like the differences are enough to change the sound, but perhaps may have just been set slightly different by accident. In any case, this editor applies DSP settings consistently within a Part/Tone group.
With regards to the use of DSPs, here are some important things to know:
In AC7 Rhythm files, generally try to avoid the use of Tones with built-in DSPs (“DSP Tones”). This is not always easy, especially with organs and guitars, most of which are DSP Tones. However, if no additional manually-defined DSPs are being added, then one or two may be OK.
If there is a need to use a DSP Tone, but the DSP effect doesn’t necessarily need to be active as part of the Rhythm, use the editor to disable that DSP effect so it won’t count against the limit of 2.
If DSP Tones are used, try to use the same Tone for the same Part across all Variations. Certain problems (DSP “drop-out”) can occur when switching Variations, if doing so causes a new DSP Tone to be loaded – even if the DSP is disabled! But if the same Tone is used consistently across Variations (which means no “new” DSP Tone ever needs to get loaded when switching Variations), this doesn’t seem to be a problem.
To edit any Part/Tone group from the main window, simply click on that line, and a new Properties dialog will open.
On the main window, the internal file name (as displayed on the keyboard) can be modified, as well as the default tempo. These changes are applied whenever the AC7 file is saved (or exported). The Time Signature cannot be changed because it is tightly aligned with the way notes were originally recorded in the tracks, so arbitrarily changing that value by itself would serve little purpose, and would more likely cause problems.
Properties Dialog: This is where most of the editing function is found, in a “Property Sheet” format. Notice there are tabs along the top to select different editing functions:
Tone and Mixer Settings, which allow the editing of Tones and Mixer values, as well as application of EQ filters (for non-drum parts only) to this Part/Tone group to modify the instrument sound. Note that most of the time, the Mixer settings are set the same across included variations. But if they are set slightly differently across variations, the maximum values are presented, and when applied the individual settings in each variation are changed in proportion to the change in that maximum value. When changing the tone, a search filter mechanism is provided to make it much easier to find the desired tone. Simply enter part of a Tone name and click on “Apply”, and the Tone list will show only the Tones which contain that search string. Click “Clear” to remove the filter and show the whole list again.
For non-drum parts, up to two audio equalization filters can be applied to the tone. These include the types of filters typically found in audio workstation software, such as low-pass, high-pass, bass-shelf, treble-shelf, band-pass (wide), band-EQ (boost/cut), and notch filter. General explanations of these types of filters and how they work can easily be found on the Internet.
Depending on whether the Part/Tone group is a Percussion/Drum part or not, the next tab will be Octave Shift/Add Settings (non-drum) or Drum Remapping (drum). Octave Shift/Add provides a way to shift melody notes up or down in octave increments, or add a set of mirror notes, either above or below the current notes, also in octave increments. Drum Remapping provides two different kinds of remapping functions. One simply allows all instances of an individual drum note to be changed to a different note within the same kit. The other uses a special feature of the keyboard in which all instances of a particular drum note in the current kit are instead redirected to play a substitute sound from a completely different drum kit. This feature is designed for exceptional cases where a particular sound is not available in the Drum Kit (Tone) currently being used. There is also an option to delete all instances of a particular drum note, but keep in mind that this cannot be undone.
Track Settings, which provides functions to:
Proportionally shift the range of note velocities in the tracks of this Part/Tone group
Change the Breakpoint (for non-drum parts only), which is where the accompaniment “breaks” or “drops down” an octave as chords are played upward from the key of C
Change the upper and lower note limits (for non-drum parts only), which is where notes that get transposed outside this range during normal keyboard play will automatically be raised or lowered an octave to “nudge” them back into this allowed range (kind of similar to the way different chords can be played on the same set of frets on a guitar).
DSP settings, which can create a limited set of defined DSPs (up to 2) for Parts in the Rhythm. DSP definitions are basically as they appear in the CT-X manual. A DSP consists of up to 4 effects modules (each one can be any of the 28 effects listed in the manual), applied in a particular order, each with their own set of tuning parameters. This function also provides a method to save a DSP definition under an assigned name (stored in the INI file with other program preferences) and recall it later, making it easy to reuse favorites and copy DSPs from one accompaniment to another.
Import function: This program has the ability to read in Style files, and attempt to convert them into the AC7 structure. Please note that this function definitely has some limits, especially with regard to Style files from newer keyboards, as they tend to use functions and features which have no equivalent in the Casio. The whole discussion of the differences between Style and AC7 capabilities is pretty deeply technical, not to mention a somewhat philosophical (sometimes a design can become so over-engineered that its flexibility becomes a disadvantage). Also, there are some very poorly-formed Style files out there, which mostly come from a variety of 3rd-party sources, and the old saying of “Garbage-in, Garbage-out” applies. So this conversion is strictly “best-can-do”, and may or may not be sufficient to provide successful conversions in all cases.
Importing a properly structured MIDI file (Version 1.2 and above): The program now includes the ability to select a MIDI file with the Import function, and import it much like a Style file. But it is important to understand that the import of MIDI files will ONLY work when the MIDI is properly structured according to the following rules. Trying to import a general MIDI music file will not produce any usable results. However, it should be possible to create an importable file using almost any MIDI editor, and of course content can be copied from other MIDI files to help create the tracks. Obviously, some knowledge of MIDI terminology, content, and editing will make this task considerably easier. Here are the rules:
Export function: Currently this only supports the export of AC7 files in slightly altered forms. One major difference between the CT-X700/800 keyboards and the CT-X3000/5000 keyboards is the number of main Variations supported (2 versus 4, respectively). One function of the Export dialog is to create an AC7 that is appropriate for low-end keyboards, which only contain an Intro, Variation/Fill 1, Variation/Fill 2, and Ending. This is done by selecting the desired parts from a larger AC7 that supports 4 main Variations (and possibly a second Intro/Ending).
The other export function is available when an AC7 contains an extra, second Intro/Ending, and will export two AC7 files containing Intro/Ending 1 and Intro/Ending 2, respectively.
Other useful functions: In addition to the above, the editor provides functions to:
Show a listing of the AC7 files in a selected folder, including the following core AC7 data for each: Internal Rhythm name, default tempo, number of variations, and time signature. A single click on any file will open it for editing.
Show a summary listing of all the tracks in an AC7 file, with some useful relevant information for each.
Provide access to Advanced Settings on the AC7 tracks, including the ability to set the Chord Conversion Table value (with or without F-Root, which forces the track to play the root note when changing chords, which is very useful for Bass tracks), the Inversion value, the Retrigger value, and the Chord Sync value. The last setting is almost exclusively used for special Versatile Tone tracks that play sound effects (notes of C7 or above), to keep the sound effects from changing when playing different chords.
The “Unlock” tool changes ‘Fixed’ tracks in the AC7 file to a ‘Recorded’ status, making those tracks editable on the keyboard. However, this change is limited to Variation/Parts which contain one, and only one, music track. In the Introductions/Endings of built-in rhythms, one often finds some Parts which contain alternative Major and Minor tracks. Which track version plays is determined by the type of chord being played by the user. Although multi-track Parts provide some nice playback variety on CT-X keyboards, there is no functional support in the keyboard for creating or editing such multi-track Parts. Changing these tracks to ‘Recorded’ not only fails to make them editable, but it can actually cause problems, so the tool leaves these as ‘Fixed’ while changing the ones it can. Note that the unlock function modifies the in-editor copy of the AC7, so it must be saved for these changes to be applied to the AC7 file.
The Remix/Merge tool (Version 1.2 and above) provides the ability to remix the variations in an AC7 file (for example, swap Var1 and Var2), or optionally to select another AC7 file and “merge in” variations from that file into the AC7 in the editor. For variations to merge properly, the current AC7 and selected AC7 must have the same Time Signature (4/4, 3/4, etc.). The changes apply to the current AC7 image in the editor, which must be saved to an AC7 file to make the changes permanent. Note that the keyboard places limits on the number of measures in accompaniment patterns (up to 16 for Intros, Endings, and Variations, up to 2 for Fill-Ins), but in practice it doesn’t seem to matter if the AC7 defines more than that, so there are currently no such limits enforced by this function.
Change the Intro and/or Ending of an AC7 file to have a fade-in or fade-out effect, respectively, and save it as a new copy. The fade can be applied to the existing Intro/Ending tracks, or optionally the current Intro or Ending can be replaced with a faded version of one of the main Variations, with multiple repetitions if necessary. This can be especially useful when using accompaniments for performances, where it may be preferable to end a song by having it fade out (while simultaneously using an expression pedal to fade out the panel Tones), instead of playing the “canned” instrumental ending.
Note that to modify how an AC7 is faded, it is best to always start again from the original AC7 file, and re-apply the fade with different parameters. Don’t edit an already-faded version of an AC7 file and try to apply a second fade to it, because that would result in the fades being “multiplied”, and would produce undesirable effects. That is why the fade tool results in the export of an altered copy of the AC7 file, without applying any of these changes directly to the in-editor version of the file.
Set program Preferences (see next section)
In the Preferences dialog under the Tools menu, default folders can be defined for various operations (Open, Save, Import, Export). This can save a lot of folder navigation. For example, Style files for importing may be found in one folder (the Import dir), and converted AC7s could be saved to another folder used by the Casio Data Manager (the Export dir), where they could be downloaded and tested immediately). Once the AC7 has been “tuned up” and is considered done, it could be saved to another folder (the Save dir). However, even if these default folders are not defined, the program does remember the “last used” folder for each operation (although not currently over program restarts).
The default folders, along with other persistent settings, are saved in an “AC7Editor.ini” file, which is automatically created in the same folder as the program, the first time the program is run. Other options include a CT-X700/800 mode (with only the subset of tones, and tone numbering, supported on those models), and an option to enable/disable the floating bubble “Tool Tips” over dialog controls.
A new option in the Preferences dialog is a third mode choice for non-CTX keyboards. When run in this mode, the program will look for an alternative external “patch” file (also specified in the Preferences) that contains descriptive records for the other keyboard’s Tones and Drums. These records basically provide:
The MIDI Bank and Program Change numbers for each named Tone, as well as a DSP indicator for Tones that have built-in DSP definitions
Definitions of Drum kits based on their Program Change number, followed by a listing of drum kit sounds for each note (0-127)
The download package includes an example file for the PX-560 keyboard that includes further details on the syntax. Of course, files for other keyboards could be developed. When in non-CTX mode, this alternate patch will be loaded on startup and checked for basic syntax, reporting any errors that are found.
Non-CTX mode also disables some CTX-only features in the program, including Tone EQ settings, and Drum Substitution settings.