Categories

Turbocharging Yamaha-format styles

Styles are great additions to Yamaha keyboards. They make it possible for players with moderate ability to create good sounding songs. On the other hand, standard style files have several limitations. Like MIDI files, they are constrained to support all hardware designed over a span of 40 years. The challenge for improving styles is to make changes in a manner that preserves back-compatibility.

There are 10s of thousands of Yamaha-format style files available on the Internet. Unfortunately, they are far from user friendly. The standard file has an arcane binary format that is difficult to decipher, even for a computer programmer. Many styles are sandbagged so that they perform well only on a specific keyboard. The major drawback is that it is difficult, if not impossible, for a musician to control the content.

Over several years, we have worked to make style files more accessible. One effort is the development of PureStyle, an organized binary style format that conforms to MIDI standards and is compatible with all Yamaha keyboards. The second effort is the development of a program to allow non-technical users to modify the content of style files. The program started with the unimposing name of Style Voice Optimizer. Then, it’s main function was to enable user control over the instrument voices of style MIDI channels. In this way, users could change the sound of styles and optimize voices for their keyboards. Since then, we have added many features.

With expanding features, the program name changed to Style Optimizer and finally to Style Master. This article describes a new program feature that removes a major limitation of style files.

Standard styles are cast in concrete. You can choose from a maximum of four main loops, three introductions, three endings and six fill measures, all similar in content. On most instruments, it is impossible to switch styles in the middle of a piece without breaking the flow of the music. In this case, what do you do if a style has nice Main loops but a lame Intro or Ending? Or how can you play a medley? The latest version of Style Master offers a solution. With it, you can assemble a composite style with sections you add from different styles. In other words, the style could include Main sections for four different styles and three independent intro/ending choices.

To be realistic, the creation of a composite style takes some planning and effort. I’ll go through the procedure so you can decide if it’s a feature you can use. I’ll assume you have a basic knowledge of the style format. For the example, I picked two source styles that differed widely in style and instrumentation — one designated KarachiDance (KarachiDance_120_4-4_ps.sty) and the other BachPrelude (BachPrelude_80_4-4_ps.sty).

Step 1. Load the files in Style Master and save them with the options shown in Fig. 1. The files should be saved in a working directory — we’ll call it c:\temp. The program generates a file in PureStyle format. The options have the following effects:

General MIDI compliant Only GM commands are included, no XG specifications. This creates a file that may be distributed and then optimized for individual keyboards.

Tempo clear. Remove any tempo change messages that may occur in the sections (e.g., ritardandos in Endings). In this case, the sections will play correctly if the baseline tempo of the style is changed.

Keyboard compatible. Add dummy information so that the style will work when loaded on a Yamaha keyboard. This directive is not necessary for use in software like the Accompaniment Machine.

Percussion channel compress. This directive moves any percussion events from Channel 08h to Channel 09h. This is necessary if you are playing the style on a computer using a soundfont.

Include section voices. Check this if you want different instrumentation for different sections. Otherwise, the standard instrument selection is recorded in the SInt section of the file and is applied to all sections. In the example, I’ll illustrate how the sound of style sections can differ markedly.

Step 2. Make two sub-directories in the working directory to hold the MIDI file sets created from the style sections, c:\temp\Karachi and c:\temp\bach. Create a third directory for the combined style, c:\temp\backinkarachi.

Figure 2. File structure for making a combination style.

Step 3. Reload each source style in Style Master, click Export and choose the appropriate sub-directory. Figure 2 shows the contents of the directories. The program creates one standard MIDI file per section of the source style. (Note: it’s coincidental that the two styles in Fig. 2 have the same set of sections.)

Step 4. Preview the source styles in Style Master to determine which ones you want to keep. Copy these to the combined directory. You may need to change some names to avoid overlap. A map like this is helpful:

Step 5. Click the Import button in Style Master and point to the directory c:\temp\backinkarachi. The program immediately loads the represented sections and builds a style. Many background operations occur to ensure that the different sections play at a consistent tempo.

Step 6. At this point, you can try out the style sections and save the combined PureStyle file. The combination technique has been tested on the Accompaniment Machine, and the resulting file should be compatible with any Yamaha keyboard. If you would like to make a test on your hardware, this zip file contains the original and combined styles: Download style demo.

There are some limitations. Changes of instrumentation made in Style Master affect only the standard voices messages recorded in the SInt section. In creating a combined style, the standard voices are determined when importing the MainA section. Changes made in Style Master do not affect voice messages that occur in individual sections. Therefore, you should make any desired changes to the source style channel voices before exporting them. Finally, the current versions of Style Master and the Accompaniment Machine require that the source styles have the same time signature. Future versions will address this issue.