You are on page 1of 71

Accompaniment Machine 4.

0
Instruction Manual

KBD-Infinity
WebSite: https://www.kbd-infinity.com
EMail: manager@kbd-infinity.com

1
Contents
1 Introduction 4
1.1 What is a style? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Functions of AMac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 AMac organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Autosequence 9
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Style controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Sequence structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Building a sequence with a text editor . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Editing sequences in AMac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Playing and saving accompaniments . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.7 Recording an accompaniment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.9 Defining melody voices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.10 Autosequence window settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.11 Popup menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3 Performance 29
3.1 Quick introduction: playing a song . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Style controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 Guiding the style root and chord . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.1 Yamaha easy-chord system . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.2 KBDI system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.3 Full chord system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.4 Casio chord system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Operation sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5 Defining melody voices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.6 Settings, real-time events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.7 Songs and sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.8 Recording a performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4 Style organizer 43
4.1 Style basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Organizing styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.1 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.2 Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.3 Popup menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3 Previewing styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5 MIDI player 49
5.1 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3 Building playlists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.4 Playing MIDI files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2
6 Voice laboratory 52
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.2 MIDI voice basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.3 Building a new voice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.4 Fine-tuning the voice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.5 Saving and loading voice sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.6 Extended bank voices and drum sets . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.7 Capturing voice parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.8 The MIDI voice file specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.9 Voice files from INS data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

7 Techniques 65
7.1 Connecting Yamaha keyboards to a computer . . . . . . . . . . . . . . . . . . . . . 65
7.2 MIDI audio output to the computer . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.3 Making USB drive letters the same on all your computers . . . . . . . . . . . . . . 67
7.4 Installing the ConText text editor . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3
1 Introduction

Figure 1: Accompaniment Machine interface, AutoSequence window.

TheAccompaniment Machine (AMac) is an easy-to-use program that lets you create


professional-sounding custom accompaniments to any song, even if you have no experience
in composing and arranging. AMac is a valuable resource for vocalists, instrumental soloist,
choirs, singing groups and keyboardists. The key is the program’s ability to access the thousands
of Yamaha-format1 accompaniment styles available on the Internet – virtual backup bands for
your performances.
Following chapters give detailed information on how to use AMac for different functions.
This chapter gives a quick idea of what the program does. Section 1.1 addresses the important
question: what is a style? Section 1.2 describes how AMac can be applied to your accompani-
ment requirements while Sect. 1.3 shows how the program is organized to meet the applications.

1.1 What is a style?


Styles are the core resource for the Accompaniment Machine. Conceptually, styles are the
automatic accompaniment templates included on digital keyboards from Yamaha and other
manufacturers. Physically, a style is a binary file that contains special MIDI sections to define
musical content and other information to tell how to decipher it. A digital keyboard generally
has a built-in set of 100-200 styles that the user chooses with buttons. Yamaha-format styles
have been developed for decades and constitute the largest and most diverse available set.
AMac recognizes all such style files and can play them on any keyboard.
1
KBD-Infinity is not affiliated with the Yamaha Corporation.

4
Chapter 4 gives details on the structure of style files. For now, it is sufficient to recognize
that the MIDI section of a style file consists of a sequence of short musical phrases (one or a
few measures) called sections. A full section set includes the following entries:

Intro A, Intro B, Intro C


Main A, Main B, Main C, Main D
Ending A, Ending B, Ending C
Fill in AA, Fill in AB, Fill in BB, Fill in BA, Fill in CC, Fill in DD

Individual styles may not contain all sections.


Sections of the type Intro are intended to play once and then to segue into a Main section.
Main sections loop continuously pending a signal. An Ending plays once and then stops the
sequence. Harmonic changes introduce variety when playing Main sections. There are also
several variants of each type of section. Generally, the accompaniment becomes more intense
(e.g., richer orchestration, more complex rhythms,...) proceeding from Main A to Main D. The
Fill In sections provide transitions between the Main sections. A typical song may follow the
sequence IntroA → Main A → Fill In AB → Main B → Ending B. When styles are played
directly on a digital keyboard, the performer must press buttons to signal section changes.
AMac controls these changes automatically.

1.2 Functions of AMac


First, let’s review the different ways you might use AMac. This will motivate a discussion
of how the program is organized. Figure 2 shows how AMac is utilized in the AutoSequence
mode. In this case, the program (represented by the computer on the left) automatically creates
a MIDI stream that represents the complete accompaniment, including chord and style section
changes. In Mode A at the top, the MIDI stream is converted to an audio signal within the
computer and then sent to the computer speakers or a seperate sound system. In Mode B, the
conversion is performed by an external synthesizer, like a digital keyboard. Modes A and B are
useful to provide accompaniments for vocalists, singing groups or solo instrument performances.
Modes C and D apply to a keyboard soloists. It is important to recognize that the synthe-
sizer of a digital keyboard can respond to MIDI signals from multiple sources. The physical keys
of the keyboard are one possible source. The keys are connected to the synthesizer when the
digital keyboard is set to LocalON. In Mode C, the synthesizer receives signals from two sources
– the accompaniment from AMac and a melody performance from the keyboard. There is
no conflict because the accompaniment is transmitted on MIDI channels 08h-0Fh and the key
signals transmit on MIDI channel 00h2 . In this case, all the functions of the keyboard (such as
voice settings, arpeggios, pitch wheel,...) are available to the performer. At the same time, the
performer must generate all the notes of the melody.
In Mode D, AMac helps with the melody. This option is useful beginning performers.
In this case, the key signals do not connect directly to the synthesizer (LocalOFF ). Instead,
they are ported to AMac through the MIDI out port. AMac processes the signals, creating
multiple instrument sounds and adding automatic harmony. In this way, the performer can
create a rich group sound by pressing a single key on the keyboard.
Figure 3 shows the other option (Mode E ), the AMac Performance mode. This mode
is similar to the auto-accompaniment feature on many digital keyboards. In this case, the
2
Other low numbered channels may be used for certain keyboard voice choices

5
Figure 2: Using AMac in the AutoSequence mode.

6
Figure 3: Using AMac in the Performance mode (keyboard auto-accompaniment).

performer plays a melody with the right hand on the upper keys (above a split note) and
guides the harmony of the accompaniment with left-hand finger combinations. The difference
is that AMac is auto-accompaniment on steroids. The program supports advanced automatic
features and lets you choose from thousand of styles. As shown in Fig. 3, AMac analyzes three
types of signals from the keys to generate a MIDI stream that includes both the melody and
the accompaniment.

7
Figure 4: Window navigation buttons

1.3 AMac organization


Amac has five functional windows. You can move between them by clicking the buttons shown
in Fig. 4. The windows have the following functions:

AutoSequence. This window controls the main program functions: creating, arrang-
ing and playing automatic accompaniments. The AutoSequence window is employed for
Modes A, B, C and D of Fig. 2.

Performance. Play in an enahnced auto-accompaniment mode found on many digital


keyboards (Mode E of Fig. 3).

Style organizer. Find the right style for an accompaniment and organize your collection.

MIDI player. Play sequences of MIDI and karaoke files for background music or to fill
in between sets.

Voice laboratory. Experiment with MIDI settings to create custom melody voices and
save the results. The Voice Laboratory is useful if you are performing on a keyboard in
Modes D or E.

Following chapters discuss each window in turn. Each chapter starts with a quick introduction
followed by detailed reference information.

8
2 Autosequence
2.1 Introduction
The Autosequence window controls one of the main program functions: creating, arranging
and playing accompaniments. A song accompaniment is a synchronized data sequence of chord
changes and control messages that performs all the functions of a backup group. The Accom-
panient Machine occupies a position midway between two extremes:

A recording where you have no control over the sound and must buy media for each song.

A composition using a digital workstation where you supply all the musical content.

The first option is quick but inflexible, while the second option requires a great deal of musical
expertise and time. With the Accompaniment Machine, you can build custom accompani-
ments for any song using style files, musical building blocks. There are thousands available, so
you can always find a good match to any popular song. The building process requires only a
moderate amount of work and modest composition skills.
Let’s start with a quick introduction to the Autosequence window. If you are using a
keyboard, make sure the drivers are installed and it is connected to the computer. Turn on
the keyboard and run AMac. If necessary, click the AutoSequence button to go to the window
shown in Fig. 1. The first step is to choose the MIDI ports. Click the Change port button to
open the dialog of Fig. 5. An output device is required to hear the accompaniment. An input
device is needed if you want to play a melody on a keyboard (Modes D and E ). The keyboard is
usually the only input device available, but there may be multiple output devices. The choice
Microsoft GS wavetable synth is available on all Windows computers. It is a rudimentary
program to convert the MIDI note numbers to audio signals and to send them to the computer
soundcard. If possible, you would pick a keyboard as the output device because it has a better
synthesizer. Select the devices and exit the dialog. AMac saves the choices when you exit the
program. It attempts to restore the device settings the next time it runs.
Click the Load accompaniment button. In a first-time run of AMac, the file selector points
to the default resource directory

c:\Users\UserName\Documents\AccompanimentMachine\Demo

Subsequently, the program points to the last directory you accessed. As a demonstration,
choose the file WeThreeKings.ACC (an accompaniment for the well-known Christmas song).
Three classes of information become available:

Parameters for a Yamaha-format style file appear at center-left. For the example, the
tempo is 160 quarter notes per minute and the time signature is 3/4.

The listbox in the center shows the sequence. It consists of chord changes, style section
changes and control operations organized by measure and beat.

9
Figure 5: Dialog to set the MIDI input and output devices

Melody voice information appears on the right. These settings apply if you are performing
on a connected keyboard. They have no effect if you are playing an accompaniment for
an instrumental or vocal performance (Modes A and B ).

Note that all the information, including the complete binary style data, w contained in the
accompaniment file. In other words, only a single file is required for a performance.
Click the Start/Stop button to run the accompaniment. Observe the sequence listbox as
AMac scrolls through the operations. The current style section, chord, measure number and
beat are displayed at the top. Run the accompaniment to the end or press the Esc key to stop
it. Let’s learn some features of the sequence. The top operations start IntroB with the guiding
chord of Emin. IntroB is four measures long, and we want to settle into the MainB section for
four measures before starting the melody. Therefore, we start IntroB at measure number -7.
With this choice, the apperance of 0 in the Measure text field provides a cue. The performer
starts the melody at measure 1. Scroll down to the TempoSet operations at measure 16. They
implement the fermata before the chorus, dropping the tempo to 130 for one measure. Scroll
down to the end of the first verse at Measure 32. There are two operations:

MainC
AltVoice

At this point, the accompaniment changes to the MainC style variant and switches the melody
to the alternate voice set. The following opearations occur at the end of the piece:

MainB
StyleVolume 0.7
EndingB

10
AMac changes back to the MainB style variant and drops the volume for a gentle transition
into the EndingB section.
The two critical components of accompaniments are styles and sequences. Styles are already
prepared. Your task is to choose an appropriate one and (optionally) to tune it to your syn-
thesizer. On the other hand, you create sequences from guitar chords, lead sheets, fakebooks
or your ear. A sequence is specified by a simple text file. To see what the file looks like, click
the Save sequence button. Write the file WeThreeKings.ASQ to a convenient location and open
it with a text editor3 . Here’s the beginning of the file:

* AMac Sequence
* Accompaniment machine
* KBD-Infinity, Albuquerque New Mexico

* Meas Beat Operation


* ==========================
-7 0 E min
-7 0 IntroB
-3 0 MainB
-3 0 E min
3 0 B 7
4 0 E min
7 0 B 7
8 0 E min
...

There are three types of data lines: comments, operations and chord changes. Comment lines
start with an asterisk (*). They are optional and ignored by AMac. Operations and chord
changes are organized by measures and beats. Operations include shifts between all available
style sections, tempo changes, volume changes and fades. Chord changes specify a root and a
chord type. There are 31 chord types to choose from (Sect.2.3).
Finally, if you have a keyboard connected, press a key. You will hear the primary melody
voice, two oboes harmonizing in Emin (the initial chord of the accompaniment). Click the Alt
voices check box and press a key again. The alternate voice includes a bassoon in three part
harmony for a stronger sound on the second verse. Start the accompaniment and press some
keys. Note that the melody voice harmony follows the current chord.

2.2 Style controls


Click the New Acc button to clear the display. AMac sets up a simple default sequence.
An accompaniment requires a Yamaha-format style. Therefore, the first step in building an
accompaniment song is to load a style. It’s not necessary to find the perfect style at the
beginning – it can always be changed. Style controls are located in the Style group at the left-
center of the window. Click the Load style button to find a style file and place it in memory.
We have included a library of styles in the folder KeyboardStyleSet in the Demo directory4 .
AMac shows the time signature and default tempo. For a quick preview, click the Start/Stop
button. If you want detailed information about the sections of the currently-loaded style, click
3
If you are using NotePad, we’ll talk about better freeware alternatives in Sect. 2.4.
4
License purchasers receive access to a library of over 5000 styles, tested and optimized for use with AMac.

11
the blue button with the bass clef to go to the Style Organizer window. You can then return to
the Autosequence window without a loss of information5 . Use the Export style button to save
the style associated with the current accompaniment as a standard style file. You can then
work on it with the Style Voice Optimizer and reload it into the accompaniment.
Clicking the Equalizer button opens the dialog of Fig. 22. Use the sliders to balance the
components of the style for the right sound. Note that the equalizer works while a sequence is
playing, so you can hear the changes in real time. The settings are preserved when you save an
accompaniment file. Sect. 4.3 gives detailed information on the Equalizer. You can also change
the global Volume of the style (relative to the melody voices). Use the arrows to change the
Tempo. The tan/brown object next to the Tempo control is the Tempo indicator . When active,
it shows the current tempo setting. It is useful for synchronization when you want to play a
melody pickup before starting the style. To toggle operation, press the F9 key.

2.3 Sequence structure


An AMac sequence is a set of changes in chords, style section and other musical properties
arranged in chronological order. The time of an event is given by a measure and beat number.
The starting value of the measure number may be any negative or positive integer number.
We’ll discuss how to choose a starting number later. The beat numbers in a measure are 0,1,2
for 3/4 time and 0,1,2,3 for 4/4 time6 . There are two types of events: chords and operations.
We’ll start with chords:
A chord event has the following structure:

MeasNum BeatNum Root ChordType

Entries on data lines are separated by one or more spaces or tabs. A chord event indicates that
AMac should shift notes in the style from the basic CMaj7 structure to represent a different
root and chord type. The quantities MeasNum and BeatNum are integers, while Root and
ChordType are short character strings. The root string may be one of the following options:

A A# Bb B C C# Db D D# Eb E F F# Gb G G# Ab

The pound sign (#) represents a sharp and the letter b represents a flat. Although the program
does not differentiate case, flatted values are easier to read using an upper case letter followed
by a lowercase b.
AMac recognizes the 31 chord types shown in Fig. 6. Chord type strings in a data line
must correspond exactly to those shown (although the letter case is not significant). Here are
examples of chord data lines:

32 0 C Maj
32 3 F# min7

When the sequence reaches measure 32, the program shifts the style harmony to CMaj at the
measure start. On the fourth beat of the measure, the style notes are shifted to F#min7.
5
If you change the style while in the Style Organizer window, it will appear as the loaded style in the
Performance window.
6
Time intervals smaller than a beat are not supported because rapid changes of the entire accompaniment
usually sound artificial

12
Figure 6: Chord types recognized by AMac. The keyboard symbols show the notes of the non-
inverted chords with root C. The standard string representations are shown below the symbols.

The second type of event is an operation, with the structure

MeasNum BeatNum Operation [Parameter]

The quantity Operation is a string while the optional Parameter is a real number (e.g., 4,
2.5,...). The first group of operations controls style section changes:

MainA, MainB, MainC, MainD. Start a style loop section. The style switches to the
specified section and plays it in a continuous loop until the next operation event. [No
parameter]

IntroA, IntroB, IntroC. Introductions are intended to be played once, followed by a


Main type section. [No parameter]

EndingA, EndingB, Ending. Ending sections play once, and then the program stops the
sequence. [No parameter]

FillAA, FillAB, FillBB, FillBA, FillCC, FillDD. The program plays the single-
measure section and then proceeds to the next sequence entry. [No parameter]

Break AA, Break BB. The programs plays the single-measure section and then proceeds
to the next sequence entry. These operations seldom appear in styles, but are included
for completeness [No parameter]

Style section operations must appear at the beginning of a measure (Beat 0). If a specified
section is not included in the style file, AMac substitutes a related available one.

13
The second operation group enables measures with an irregular number of beats. These
operations must also occur at Beat 0:

OneBeat. One beat measure. Use this command or the following two to play a song
where a measure has an irregular number of beats. In response to the command, AMac
plays one beat of the current style and then continues with the regular pattern. The
operation should occur during a Main section. As an example, use this operation if there
is a 5/4 measure in a 4/4 song. In response, AMac plays one beat of a measure and then
continues the normal four-beat pattern. [No parameter]
TwoBeat. Two beat measure. AMac plays two beats of the current style and then
continues with the regular pattern. For example, use this operation if a 4/4 song has a
two-beat or six-beat measure. [No parameter]
ThreeBeat. Three beat measure. The program plays three beats of the current style and
then continues with the regular pattern. [No parameter]

The third group of general operations may appear anywhere in a measure:

StopStyle. AMac stops the style immediately (the program does not wait until a mea-
sure end). The parameter gives the stop decay time, TStop (in seconds). The program
accepts fractional time values (e.g., 2.6 seconds). If the stop time is greater than 0.0, then
the program holds the currently playing style notes and smoothly fades them over time
TStop. This feature is useful to avoid an abrupt termination of a song. For example,
suppose the last note of a style ends abruptly with a MIDI NoteOff signal. You can
make a more natural sounding ending by placing a Stop style operation with T Stop ∼ = 3.0
seconds in the last beat of the Ending section. For a simple general-purpose ending, stop
a Main section on beat 0.
FadeOut. Start a fade as the accompaniment continues to play. AMac lowers the system
volume of the output device and stops the accompaniment when the volume reaches zero.
The volume of both melody and style channels is reduced. The parameter is the fade
time in seconds.
SysVolume. The operation lowers the volume of all MIDI channels (melody and style).
A parameter value of 0.5 reduces the volume by 50%. To control dynamics, set the style
and voice volumes at the highest desired level and introduce attenuation factors with this
command.
MelVolume. The operation sets the relative volume of melody channels. The parameter
is a number between 0.0 and 1.0.
StyleVolume. The operation sets the relative volume of style channels. The parameter
is a number between 0.0 and 1.0.
TempoSet. Use this operation to set an absolute tempo. The parameter is the desired
tempo in quarter notes per minute.
TempoChange. Use this operation to make a relative change in the present value of the
tempo. The parameter may have the range 0.2 to 5.0. A value of 2.0 doubles the tempo
while a value 0.5 halves it.

14
AltVoice. Use the operation once to switch to the alternate set of voices discussed in
Sect. 2.9. Use the operation again to return to the normal voice set. As an example, with
this feature you can use a completely different set of voices for the second verse of a song.
Note that accompaniments always start with the normal voice set.

Mark. Add a performance cue in the sequence list. The parameter is a string of any
length. The string may include spaces.

2.4 Building a sequence with a text editor


You make the sequences for AMac. On the positive side, this allows you to build an accompa-
niment for any song in the universe. On the negative side, you must do some work. Fortunately,
it’s not a lot of work. A verse of a typical song has about 30 measures with an average of one
chord change per measure. Notating 30 chord changes takes about 10 minutes. The second
verse is simply a matter of copying-and-pasting the sequence – it takes almost no time. So, if
you feel that ten minutes is a short time to devote to creating an accompaniment, then you’ll
enjoy the Accompaniment Machine.
There are two ways to make a sequence:

Write the data lines in a text file.

Use the sequence-editing dialog in the AMac Autosequence Window.

Generally, it more efficient to work initially with a good text editor. This blog article describes
how to obtain the powerful freeware ConText editor and how to add syntax highlighting for
AMac sequences:

kbd-infinity.com/kbd-infinity-blog/creating-amac-sequences-with-the-context-text-editor/

We’ll use ConText in the discussion of this section. Figure 7 shows a the display. With syntax
highlighting, comments are italicized, operations are shown in bold red, chord roots in bold
blue and chord types in bold green.
You can create sequences and accompaniments from guitar chords or lead sheets. Fakebooks
(collections of lead sheets) are an excellent data source. Thousands of songs in a variety of
genres are available at moderate cost in the series published by Hal Leonard Corporation.
You can also download extensive free collections in PDF format from the Internet. Figure 8
shows a lead sheet example. The data include the melody line, chords and often lyrics. For
creating accompaniments, we are interested in the chords written above the lines. In the
example, measure numbers are conveniently included (otherwise, you may want to pencil them
in). We’ll use the measure numbers as written, although we could choose a different system.
The important information is measure number differences, not the absolute values.
The score starts with three measures in CMaj to indicate an introduction. The melody starts
in measure 4. We’re going to use the two-measure IntroA section of a style. Accordingly, we’ll
start the style introduction in measure 2. As shown in Table 1, we enter the Intro operation
followed by the CMaj chord at beat 0 of measure 2. There is one event per line. For delimiters
(the breaks between the measure number, beat number and other information), you can use
any number of spaces or tabs. We continue with a list of the chords shown in Fig. 8. You
can infer the beat numbers of chords from the position of their symbols in the score measures

15
Figure 7: Beginning of a sequence displayed in the ConText editor.

16
Figure 8: Notation in a fakebook or lead sheet.

(Fig. 8).The AMac chord set (Fig. 6) represents most of the chord types that you will find in
fakebooks. If not, you can always find a good substitute. The first chord change to Emin occurs
on beat 1 of measure 4, the second change to FMaj on beat 2 of measure 4. Note in Table 1
that AMac assumes a major chord if the chord type string is missing.
Skipping ahead to end of the song, the fakebook has a written-out ending with several chord
changes and melody flourishes. We’ll be using EndingB of the style instead. We include one
measure in MainA of the final note in CMaj to return to the tonic and then start EndingB at
the beginning of measure 67. The final StopStyle operation is included to correct a common
problem of styles. Many styles end with a simple MIDI AllNotesOff signal that gives an abrupt
unnatural termination. The StopStyle command with parameter 5.0 sustains the final note of
the ending at measure 69, beat 0, with a continuous fade of duration 5.0 seconds. The result is
a satifying, smooth termination.
It probable that you will make some mistakes writing out the sequence. This is not a
problem because AMac features extensive syntax and error checking. When you have finished
writing a sequence draft, click the Load seq button in the AutoSequence window. AMac checks
the file on entry and reports errors detected along with the line number in the sequence file.
Checks include uncognized chord types, measures out of order, large gaps in measure number
and simultaneous chord operations.
Don’t hesitate to make chord changes if the sound isn’t right. Even commercial fakebooks
have errors. Furthermore, chords that may sound great on a guitar may clash when applied to
the instrument group of a particular style. Some choices of chords may even give MIDI streams
that exceed the polyphony of your synthesizer. Most of the time, you can correct a problem by
simplifying a chord. For example, you might change Fmin7 11 to Fmin7 or G7 to G.

17
Table 1: Beginning and end of the sequence for the example of Fig. 8

* AMac Sequence
* Accompaniment machine
* KBD-Infinity, Albuquerque New Mexico

* Meas Beat Operation


* ==========================
2 0 IntroA
2 0 C
4 0 Mark Begin melody
4 0 MainA
4 1 E min
4 2 F
5 0 D 7
5 2 G
6 0 F
6 2 G 7
7 0 C
8 2 F
...
65 2 G 7
66 0 C
67 0 EndingB
69 0 StopStyle 5

18
To conclude, there are two important constraints on the structure of a sequence:

The first event in a sequence must be a style section operation (e.g., IntroA, MainC,...)
to start the style and AMac timing.

You must actively stop an accompaniment; otherwise, it continues indefinitely. The final
operation should be either StopStyle, FadeOut or Ending.

2.5 Editing sequences in AMac


You can create sequences or make small changes directly within AMac. The advantage of
working within the program (rather than in a text editor) is that you can check the changes
immediately. An effective mode is to write a draft sequence in an editor and then to tune it in
AMac.
To build a sequence from scratch, click the New seq button. AMac clears the sequence
list and opens the sequence editing dialog of Fig. 9. For an existing sequence, double-click an
event in the list to modify it in the edit dialog. Within the dialog, you can create or change
one or more events. Use the Measure text field and arrows to set the measure number. Set the
beat with the Beat text field and arrows. The Chord/Operation radio buttons determine the
available options in the popup menus at the top:

Chord. The Root menu shows the choice of the chord root and the Chord menu shows
the 31 chord types. Choose an entry from each menu to populate the text fields. If the
Chord textbox is empty, AMac sets the chord type to Maj.

Operation. The left menu (Operation) shows the set of available operations and the right
menu (Parameter ) is inactive. Choose an operation and type the parameter (if applicable)
in the Parameter textbox. The parameters of the following operations are single numbers:
StopStyle, FadeOut, SysVolume, MelVolume, StyleVolume, TempoSet and TempoChange.
The parameter of the Mark operation is a character string.

There are three options when the event definition is complete:

Record entry and exit. Add the event to the sequence list and exit the dialog. This
option is useful for editing single events in an existing sequence.

Record: goto next. Add the event to the sequence. Remain in the dialog and prepare
for the next entry. This option is useful for building a sequence from scratch.

Cancel and exit. Close the dialog, making no addition to the sequence list.

There are also editing operations that may be applied directly to the sequence list. To view
the menu, be sure that the sequence editing dialog is closed and right-click the mouse with the
cursor inside the sequence listbox. Figure 10 shows the options.

Edit selected entry. If a single event is selected, open the edit dialog. This is an
alternative to double-clicking the event.

Insert entry below. If a single event is selected, duplicate it below and enter the edit
dialog.

19
Figure 9: Dialog to create and to modify sequence events.

Delete selected. Removes one or more selected events.

Copy selected. Stores one or more selected events in the program memory. Combined
copy/paste operations are useful to duplicate a chord sequence for a second verse.

Cut selected. Removes one or more selected events and stores them in the program
memory.

Paste below section. Pastes stored events below the selected event. The command
appears in the menu only if the program memory contains a selection.

Shift measure number. Shifts the measure numbers of the selected events by a positive
or negative value. This operation would be necessary, for example, if you copied and
pasted a sequence block to define a second verse.

Undo last operation. Restore the sequence list to its state before the last editing
operation. The command appears in the menu only if the sequence has been changed.

Check sequence. Checks the current sequence list and reports any syntax or structural
errors.

The buttons below the sequence listbox have the following functions:

New seq. Clear the sequence listbox and open the edit dialog to create events.

Load seq. Load a sequence file (.ASQ), either created with a text editor or saved from a
previous session. Error checking is performed during the load.

Save seq. Save a sequence in the standard ASQ text format.

20
Figure 10: Popup menu: editing operations on the sequence list.

2.6 Playing and saving accompaniments


To review, an accompaniment consists of a style and a sequence of operations. The sequence tells
how to play the style. These two components are required to run an accompaniment. Optionally,
you can add voice information if you are performing a melody on an attached keyboard. The
three parts of an accompaniment are grouped in separate areas of the AutoSequence window
(Fig. 1): styles on the left, sequences in the center and voices on the right. There are three
ways in AMac to define the active accompaniment :

Click the New acc button to 1) clear the current style, 2) clear the voice list and 3) create
a default sequence that plays MainA for six measures and then stops. You must load a
style to hear sounds. You can then click Load seq to load a prepared sequence or build
the sequence with the internal editor.

Use the Load acc button or press F6 to load a saved accompaniment.

If a program of accompaniment files is loaded (the list box at lower center), use the Next
Acc, Prev Acc or First Acc buttons to select a file automatically. We’ll discuss programs
in Sect. 2.8.

If a style and a sequence are defined, click the Start/Stop button to run the accompani-
ment. If no event in the sequence list is selected, AMac starts at the beginning. Select and
highlight an event to start in the middle of the sequence. This option is useful for practice
or sequence editing. AMac steps through the sequence events, showing the current measure,
beat, chord and style section. Click the Start/Stop button again or press the Esc key to stop
the accompaniment. Otherwise, it runs through to the end.
If a keyboard is attached and defined as the MIDI input port, you can start and pause
the sequence using a control key on the keyboard. Section 2.10 describes how to set the
key. Combining this feature with automatic program advancement (Sect. 2.8), this means that
keyboardists can play medleys or entire sets without removing their hands from the keyboard.
Press the Pause button (or the control key) to suspend the sequence. Press the button or
the key again to restore playback. The Pause function should be used for practice and sequence
tuning, not in a performance. MIDI notes are discrete events. If a note is cut in the middle, it
will not be restored when the sequence restarts, sometimes giving a discontinuity in the sound.
If you want a break at the begining or in the middle of an accompaniment, a better approach
is to add dummy measures to the sequence with SysVolume equal to 0.0. For example, these

21
Table 2: Accompaniment file contents

Header – current program parameters


Style tempo
Style volume
Style base chord
Style highest root note
Style chord transposition
Style harmonic restart
LocalOn/LocalOff
Sequence
Codes and parameters for all operations
Voices
If defined, settings for 1-6 voices as set in the Tune voice
dialog
Harmony status for standard and alternate voices
Style
Style equalizer settings
Complete style information

operations silence an accompaniment running in MainC for four measures during a melody
solo:

28 0 Mark Begin solo


28 0 StyleVolume 0.0
32 0 Mark End solo
32 0 MainC
32 0 StyleVolume 1.0

The MainC operation ensures that the style restarts at the beginning of the multi-measure
MainC section.
The buttons at the lower-left control saving and loading accompaniment files. To save
the current accompaniment information, type a name that will be used as the file prefix in
the textbox and then click the Save Acc button. The file is assigned a name of the form
AccName.ACC. Table 2 shows the information recorded in the binary file. The implication is
that the accompaniment file contains all information necessary for a performance. Use the Load
Acc button to restore a saved style.

2.7 Recording an accompaniment


Accompaniments consist of strings of MIDI events. AMac can record the events in standard
MIDI files. This feature is useful if you want to play the accompaniment on a keyboard without
a connected computer. To make a recording, click the Arm recorder button or the F7 key.
AMac activates the armed signal to show that is ready to record MIDI events. Start the
accompaniment and let it play through. Click the Arm recorder button again when you are
finished. Then click the Save recording button to write a file. Go to the Player window (Sect. 5)

22
Figure 11: Program controls and the program listbox.

if you want to check the recording. The program records events in a single MIDI track (Type
0 file).
With regard to timing, there is no need to worry about when to start the accompaniment
after clicking the Arm recorder button. No information is recorded until the program detects a
NoteOn event from either the program or the keyboard if you are working in Mode D of Fig. 2.
In this case, AMac sets the start time and shifts events so that the measures in the saved MIDI
file always start at the beginning of style measures, even if you play a melody pickup7

2.8 Programs
A program is a collection of accompaniments for practice sessions or performances. The current
set of accompaniments appears in the listbox at bottom-center (Fig. 11). There are two ways
to create a program:

Work within AMac, using the command buttons shown in Fig. 11.

Write a program file directly with a text editor.

To make a program within AMac, load each accompaniment and press the Acc to Prog button
to add it to the program list. You can change the order of entries in the list by dragging them.
You can also add more accompaniments later. To remove an entry, select an accompaniment
and press the Del key. When the list is complete, use the Save Prog button to create a file
(ProgName.APG). Use the Load Prog button or the F5 key to load a saved program into memory.
To work with a text editor, create a file with a name of the form ProgName.APG. This
example illustrates the simple format:
* Accompaniment Machine program file
C:\MUSICRESOURCES\PERFORMANCE\AMacAccompaniments\Standards\Yesterday.ACC
C:\MUSICRESOURCES\PERFORMANCE\AMacAccompaniments\Standards\JustInTime.ACC#
C:\MUSICRESOURCES\PERFORMANCE\AMacAccompaniments\Standards\BerniesTune.ACC#
C:\MUSICRESOURCES\PERFORMANCE\AMacAccompaniments\Standards\IveGotYouUnderMySkin.ACC
C:\MUSICRESOURCES\PERFORMANCE\AMacAccompaniments\Latin\AFelicidade.ACC
C:\MUSICRESOURCES\PERFORMANCE\AMacAccompaniments\Latin\AguasDeMarco.ACC
C:\MUSICRESOURCES\PERFORMANCE\AMacAccompaniments\Latin\GirlFromIpanema.ACC

The content represents the program of Fig. 11. The first comment line is required. It marks
the file as a valid AMac program. It is followed by any number of data lines giving the full
path to the accompaniment file.
7
AMac does not record melody notes in Mode C of Fig. 2 because the MIDI signals from the keyboard do
not pass through the computer.

23
The buttons nearest the program listbox (and their function key equivalents) are used during
a performance. Click the First Acc button or press F4 to load the accompaniment at the top of
the list. Double-click an entry in the listbox to start in the middle of the program. Thereafter,
press the Next Acc button (or the F2 key) to load the next accompaniment in the sequence.
Press the Prev song button for a reprise. In some circumstances (such as a performance) you
may want an accompaniment to load when the previous one finishes. In this case, activate the
check box of the previous accompaniment. In this way, you can play a sequence of any number
of accompaniments. In a program file, a pound symbol (#) is added at the end of a data line
to indicate a checked entry.
It is important to recognize that a program file does not contain the contents of the included
accompaniment files. Rather, it is a list of absolute paths to the files. To use a program, the
accompaniment files must be present in their original directories. Here is safe procedure to
make sure all resources are available for a performance:

Set aside a USB stick specifically for your performances.

On the drive, create a directory with an identifying name for each performance.

Copy the accompaniment files you will use in a performance to the appropriate directory.

Create a program file and save it in the root directory of the USB drive.

In this way, you can carry your accompaniment resources with you and even use them on a
different computers.

2.9 Defining melody voices


The material in this section applies if you are using Mode D of Fig. 2. In this case, MIDI
input signals representing your melody performance are received by AMac. The program can
transform the signals, generating multiple voice settings with auto-harmony, and add them to
the MIDI output stream. AMac has many options for defining melody voices. The program
supports three simultaneous instrument voices, either in unison, at octave displacements or in
harmony. You can define two independent voice sets and switch between them in a song. Voice
controls are collected in the Voice group on the right-hand side of the Autosequence window
(Fig. 1). The three voices of the standard set are shown in Fig. 12. Voice0 is transmitted to
MIDI channel 00h of the synthesizer, Voice1 to channel 01h and Voice2 to channel 02h. Click
on a voice name to make it active. The active voice name is shown in bold letters. To work on
the alternate voice set, activate the Alternate voices checkbox.
There are two ways to set the properties of the active voice:

Load a voice file following the procedure described in Chap. 6. Then double-click one of
the entries in the listbox at bottom-right to transfer its parameters.

Create a voice from scratch by clicking the Adjust current voice button.

To employ voices that you have created in the Voice Laboratory, use the Load voice file button
to load one or more files (FName.MDV). Then, double-click on one of the entries to load its
parameters into the active voice. If the voice settings are not ideal for the song, you can tune
them by clicking the Adjust current voice button. AMac displays a dialog with the same

24
Figure 12: Tune active voice dialog called from the Autosequence window.

controls as the voice laboratory (Fig. 12). As parameters are changed, the external synthesizer
is updated so you can hear the effect by playing notes on the keyboard. Anything may be
changed, including the voice name and the GM instrument. The active voice is updated when
you exit the dialog. Note that these changes affect only the voice in the accompaniment. They
do not modify the loaded voice file. The settings are recorded when you save an accompaniment
file.
To create a voice from scratch, make an undefined voice active then click the Adjust current
voice button. To delete a voice, make it active and then use the Remove voice button.. Finally,
you can save the full set of standard and alternate voice definitions in standard voice file format
(Sect. 6.5) with the Save voice set command.
When the Harmony checkboxes to the right of voices 01h and 02h are unchecked, the voices
play in unison. (In other words, channels 00h, 01h and 02h receive the same MIDI signals). To
add octave displacements, make a voice active and then click the Adjust active voice button.
Set the Octave control in the dialog.
To use harmony, the primary voice (00h) must be defined. If a single Harmony checkbox is
active, AMac plays the corresponding voice with duet harmony (with notes of voice 01h lower
than those of voice 00h). Harmonic displacements depend on the current root and chord of
the style. If both harmony checkboxes are active, the program produces trio harmony with the
notes of Voicer 01h lower than those of voice 00h, and the notes of voice 02h lower than those
of voice 01h. The same rules apply to the alternate voice set.
A final note if you are using Mode C of Fig. 2 where the keys of the keyboard are directly
connected to the synthesizer. In this case, AMac supplies only the accompaniment. The
diagram in the figure shows that there should be no MIDI input to the computer, but sometimes
an input port is automatically created through a USB connection. Be sure all melody voices
are set to Undefined. In this case, AMac adds no MIDI signals that could conflict with the
direct signals from the keys.

25
Figure 13: Settings dialog in the AutoSequence window.

2.10 Autosequence window settings


You can set parameters to control program operation and the interpretation of a particular
accompaniment. Click the Settings button at upper-right to bring up the dialog of Fig. 13.
General program controls are at the top. The Local ON checkbox controls whether AMac
sends a LocalOff or LocalOn signal to an attached keyboard. Check the box to operate in Mode
C of Fig. 2 and uncheck it to operate in Mode D. Next, you can set up a control key to start
accompaniments from the keyboard – it functions in either Mode C or D. The key is usually the
lowest or highest one on the keyboard. To define it, click the Set control note button. The green
indicator shows the program is in sensing mode. Press the desired key. AMac displays the
note value and exits sensing mode. The global settings are saved when you exit the program.
Similarly, you can set a split key. The location is usually at the bottom of the melody range.
If the box Suppress below split point is checked, the program does not respond to any keys below
the split point (with the exception of the control key). This prevents unwanted noises if your
left hand rests on the keyboard while your right hand is playing a melody in Mode D. You can
even simulate activity with your left hand to make your performance look more active. If the
box is unchecked, the program responds to all keys./indexsplit key
Other items control how the accompaniment is performed. The Initial chord setting is useful
when you are using harmonic voices in Mode D and the melody starts before the accompaniment.
Normally, the style root and chord type determines the displacements of harmony voices. If the
style is not playing, you must supply the initial chord information. This information is saved
in the accompaniment file.

26
In the Style chord transposition group, radio buttons define two options:

Maintain chord structure. In this option, AMac plays style chords following the exact
patterns of Fig. 6. In other words, the notes of a C7 chord are raised four MIDI notes to
play an E7 chord. Chords sound progressively higher until the root reaches the Highest
root note. With the default value F ♯, chord patterns are transposed down an octave for
roots in the range G-B.

Maintain note range. The program introduces octave transpositions so that chord
notes occupy about the same range for all roots.

The first option gives strong chord changes and is suitable for up-tempo songs. The second
option gives a smoother sound and is appropriate for gentle or romantic songs.
Some background is necessary to understand the final parameter, Harmony restart. The
setting comes into play only when melody-voice harmony is active in Mode D. The issue arises
from the nature of MIDI – notes don’t simply stop, they must be actively turned off. If a
note shifts pitch, the old note must be turned off and the new one turned on. Suppose you
are holding the note C in the melody (Voice 00h) and you change the harmony from CMaj to
F7. The notes for Voices 01h and 02h must be corrected for the new harmony. Old notes are
always turned off. If Harmony restart is active, then new calculated note values for Voices 01h
and 02h appropriate to F7 are turned on. This works well for continuous-tone instruments like
organs and flutes. Problems arise with instruments that have a sharp attack and strong decay
like pianos and guitars. Your synthesizer plays the loud attack every time a note turns on. This
could produce jarring sounds during subtle chord shifts. For these types of instruments, it is
best not to restart the note. In summary, here is the rule:

The Harmony restart checkbox should be active for instruments with sustained melody
voices like organs, violins, trumpets and flutes.

Uncheck the box for percussive or plucked melody instruments like pianos, guitars and
harps.

Finally, the items at the bottom control the metronome function. Metronome beats are
useful for practicing songs with complex or syncopated styles. Use the checkbox to turn the
function on or off. The metronome is synchronized to the style. It plays a loud note on the first
beat of a measure and softer notes on the other beats. The Note textbox controls the pitch
of the sound. Set the type of sound with the instrument popup menu. Metronome notes are
transmitted on MIDI channel 07h and are not included in MIDI recordings (Sect. 2.7).

27
2.11 Popup menu
We saw in Sect. 2.5 that right-clicking the mouse with the cursor inside the sequence listbox
brings up the sequence editing popup menu. The main popup menu appears if you right-click
anywhere else in the program window. It has the following entries:

Metronome off/Metronome on. Click this option to toggle the metronome described
in the previous section.

Tempo signal off/Tempo signal on. Toggle operation of the tempo flasher in the
Style portion of the program window. The indicator follows the current setting in the
Tempo text field. It helps in choosing a good tempo and is useful to synchronize a melody
pickup.

Clear program list. Delete all items in the program list. The program no longer
responds to commands like Next acc or advances automatically to the next program
item.

Copy primary to alternate voices. Copies the primary voice settings (if defined) to
the alternate voice settings. The alternate settings can then be modified to achieve a
different sound.

Show autosequence commands. Shows a short list of the available commands for the
sequences.

Accompaniment Machine manual. Open this document in your default PDF reader.

KBD-Infinity home page. Open your default browser and go to our home page to
contact us.

28
3 Performance
In the Performance window (Fig. 14), AMac expands the auto-accompaniment features found
on many digital keyboards. It implements Mode E of Fig. 3. There are several reasons to use
AMac for this application rather than the built-in functions of the keyboard:

You have instant access to thousands of styles without transferring them to the keyboard.

The internal routines of digital keyboards often access only a small subset of available
style sections.

You can pre-define operation sequences (section changes, fades,...) controlled by a single
control key. This method is much more reliable than hunting for buttons on the keyboard
panel during a performance.

You can build an unlimited library of performance setups. AMac saves all information
in song files (voices, control sequences, styles,...)

The following section gives a brief introduction. Section 3.2 describes the functions of
controls in the Style group at the left-center of Fig. 14. Section 3.3 discusses fingering options
for guiding the root and chords of the style to match the harmonies of the song. Section 3.4
covers operation sequences, a list of style section changes and other real-time performance
options that you set up before performing a song. The changes are implemented by pressing a
single keyboard control key. Section 3.5 covers the controls on the right-hand side of Fig. 14
for melody voice creation. You can define three simultaneous voices, either in unison, octave or
harmony. Section 3.6 discusses parameters that control program options (e.g., the control and
split keys). Section 3.7 reviews the controls of the Song/Set group on the lower-left in Fig. 14.
Finally, Sect. 3.8 describes how to make MIDI recordings of your AMac performances.

3.1 Quick introduction: playing a song


This section illustrates the role of AMac as a real-time performance assistant. Click the Load
song button and choose the selection BallinTheJack.ASG in the default directory. AMac loads
the following information:

The style associated with the song (left-hand side).

The sequence of operations implemented by the control key on your keyboard (center).

Voice settings for the melody (right-hand side). In this case, the first verse is played in
harmony on the organ, and the second verse is played by a tenor saxophone with organ
harmony.

The program sends information on the synthesizer voice setups to your keyboard when the
song is loaded. Press a key on your keyboard in the melody section above the split note –
you should hear organ notes in harmony. Next, click the Start/Stop button in the Style group

29
Figure 14: Screenshot of the Performance window.

Figure 15: Song example: Ballin’ The Jack (Jim Burris, Chris Smith)

30
on the right-hand side. When the style starts, play a few melody notes. Click the Start/Stop
button or press the Escape key to stop the style.
To begin, we’ll test the left-hand functions. Signal a G7 chord using keys below the split
point following your fingering system of choice. As directed by the operation sequence, the
program starts the six-measure IntroB section of the style. The Measure field in the Style
group gives a countdown. Introduction sections automatically go the next sequence operation
when complete. In this case, the program plays the MainB section continuously, waiting for the
next control operation. Press the control key that you defined for your keyboard once. AMac
completes any pending measure beats of MainB and then switches to the single-measure FillDD.
After this measure, the program executes the AltVoice command. This operation changes the
melody voices and does not affect the bass sound. The program automcatically proceeds to
MainC. Press the control key one more time at the end of the second verse to hear EndingB.
The final step is to play a complete song. Figure 15 gives the song score in lead-sheet
format. The sequence is set up for playing the song twice. The solo in the first verse is played
by an organ, the second verse by an alto saxophone. Both verses have an organ harmony. The
red circles designate points to press the control key to advanced the sequence. High circles
designate actions on the first verse and low circles the second. To review, you play the song
through after the six measure introduction. At the first ending, press the keyboard control
key to signal the FillDD section. During this section, press the control key again to switch to
the alternate voice set. After playing the song a second time, press the control key to signal
EndingB. While practicing the song, you probably don’t want to repeat the introduction ending
every time. To skip the introduction, select the sequence operation MainB and signal a G7
chord to start.

3.2 Style controls


A song must be associated with a Yamaha-format style. Therefore, the first step in building
a song is to load a style. It’s not necessary to find the perfect style at the beginning – it can
always be changed later. Style commands are located in the Style group at the left-center of the
window. Use the Load style button to find a style file and place it in memory. AMac shows the
time signature and default tempo. For a quick preview, click on the Start/Stop button. If you
want detailed information about the sections of the currently-loaded style, click the blue button
with the bass clef to go to the Style Preview window. You can then return to the Performance
window without a loss of information8 . Use the Export style command in the popup menu to
save the style associated with the current song as a standard style file. You can then work on
it with the Style Voice Optimizer and reload it into the song.
The Equalizer was described in Sect. 4.3. Clicking the button opens the dialog of Fig. 22.
Use the sliders to balance the components of the style for the right sound. The settings are
recorded when you save a song. You can also change the global Volume of the style (relative
to the melody). To change the Tempo, type a new value (in quarter notes per minute) in the
text field.. The tan object next to the Tempo control is the Tempo indicator . When active,
it shows the default tempo of the currently-loaded style. It is useful for synchronization when
you want to play a melody pickup before starting the style. To toggle operation, use the entry
in the popup menu or press the F9 key.
8
If you load a different style while in the Style Preview window, it will appear as the loaded style in the
Performance window.

31
3.3 Guiding the style root and chord
When performing a piece using styles, the function of your left hand is to signal the harmony of
style notes. The required information is 1) the chord root note and 2) the chord type. AMac
supports four fingering systems.

3.3.1 Yamaha easy-chord system


The easy-chord system for Yamaha keyboards makes it relatively simple to lead styles harmon-
ically. When accompaniment is active, pressing a single key in the bass region of the keyboard
(below the split point) shifts the notes of the style so that they correspond to the major chord
of the key note. For example, press a G key below the split point to specify a GMaj chord.
Other chords are formed by simultaneously pressing additional keys below the root key. The
following rules are standard on Yamaha keyboards:

Press the root key and the next lower white key to define a 7 (seventh) chord.

Press the root key and the next lower black key for a min (minor) chord.

Press the root key and both the next lower white and black keys for min7 (minor seventh)
chord.

AMac augments the system with two additional common chords:

Press the root key and the next two lower white keys to define a Maj7 (major seventh)
chord.

Press the root key and the next two lowest black keys for a dim (diminished) chord.

Note that the program displays the current chord in the Chord text field.
The richness of styles compensates for the limited chord set, so you can usually make a good
rendition of a song with the six-chord set (analogous to the bass key rows on an accordion).
Occasionally you may want a special chord for just the right effect. In this case, you can
play any of the chord patterns described in Sect. 3.3.3. If AMac cannot match an easy-chord
pattern, it searches for a full chord pattern. In the event that no match is found, the program
plays a major chord using the lowest note as the root.

3.3.2 KBDI system


The KBDI chord system is an expansion of the Yamaha easy-chord system that supports
more chords. The ten most common chords encountered in popular songs can be played using
combinations of 1, 2 or 3 fingers. The Yamaha method of referencing chords to adjacent black
and white keys is sometimes confusing because the pattern depends on the location of the root
note and often leads to awkward finger positions. The MIDI note step (a difference of 1 in the
GM note number) is the basis of the KBDI system (for example, B is one step below C and B ♭
is two steps below C ). Figure 16 shows the KBDI fingering conventions. Depressing a single
key (the root) gives a major chord. Pressing the root key and the adjacent lower one (-1 step)
gives a 7 chord (e.g., B/C for C7 ). Similarly, pressing the root key and the next lower one (-2
steps) gives a minor chord (e.g., B ♭/C for Cmin). As with the Yamaha system, you can also
use the advanced chords listed in the following section.

32
Figure 16: KBDI chord system

3.3.3 Full chord system


The most versatile but most difficult approach is to play full chords to guide the root and chord
type. AMac recognizes the thirty-one chord patterns shown in Fig. 6. The root note is always
the lowest one. Transposing a chord is easy in a MIDI program. For example, shifting a C7sus4
chord to a D♯7sus4 is simply a matter of adding 3 to each MIDI note number. In contrast, on
a keyboard the player must remember how the steps translate into sharps and flats, a task for
an accomplished pianist. Furthermore, it may not be possible to play chords with a large span
on a 61-key keyboard.

3.3.4 Casio chord system


Casio chord fingering is the easiest to use and also the most limited. Again, the highest key
determines the root. Pressing a single key gives a major chord. Pressing the root and any lower
key produces a 7 chord. The root plus two any two lower keys gives a minor chord and the
root plus three keys gives a min7 chord. Because of the arbitrary spacings of keys in the 2,3
and 4 key combinations, this option does not support full chords.

3.4 Operation sequences


Real-time changes of style sections and other properties are essential for an interesting per-
formance. With keyboard controls and other performance software, you must press specific
buttons to invoke the changes. Buttons have three disadvantages:

Identifying which button to press in real time provides a distraction from your playing.

It is impractical for the manufacturer to include a keyboard button for every possible
action, so the options are limited.

An incorrect button press can lead to disaster (e.g., ending a style rather than changing
main sections).

33
Figure 17: AMac control key – usually the lowest one on the keyboard.

In contrast, AMac has a unique system where all changes are invoked by a single control key
on your keyboard (Fig. 17). Pressing the key advances the program to the next entry in a
sequence that you prepare before playing the song.
The sequence appears in the listbox at top-center in Fig. 14. When a style is first loaded,
the default sequence is MainA|Stop. In this case, pressing a key combination below the split
point starts the Main A section of the current style. The Main A section of the style plays
continuously with the current tempo and equalizer settings. The style stops when the control
key is pressed again.
Here’s a more interesting sequence:

IntroA|MainA|FillAB|MainC|EndingC

In this case, AMac starts IntroA in response to keys below the split point. The program
shows a measure countdown in the Measure text field. After the introduction, the program
automatically advances to the MainA section and plays it continuously. During this time, you
would play the first verse of a song. Pressing the control key at the end of the verse, the program
plays the single measure of the FillAB section and then advances to the MainC section, which
is played continuously for the second verse. At the end, a control-key press invokes EndingC.
The program stops the sequence when the ending section is complete. By default, the program
starts at the first operation in the sequence. You can start anywhere in the sequence by selecting
an operation in the listbox before starting the style. For example, to practice the ending of the
example song, select MainC and then begin playing.
The example shows how to switch between available sections of a style. AMac sequence
operations offer many more options, including fades, global volume changes and alternate voice
sets. The following list documents the full set of sequence operations. If the action is the first
one in the sequence, it starts immediately when keyboard keys below the split point are pressed.
Otherwise, changes occur at the end of a measure of the previous section.
newpage

MainA, MainB, MainC, MainD. If another section is playing, the program waits until the
end of the current measure. Then, it switches to the specified section and plays it in a
continuous loop until the next control signal. [No parameter]

34
IntroA, IntroB, IntroC. Introduction sections play once, and then the program pro-
ceeds to the next sequence entry. [No parameter]
EndingA, EndingB, EndingC. Ending sections play once, and then the program stops
the style. [No parameter]
FillAA, FillAB, FillBB, FillBA, FillCC, FillDD.
The program plays the single-measure section and then proceeds to the next sequence
entry. [No parameter]
BreakAA, BreakBB. The programs plays the single-measure section and then proceeds to
the next sequence entry. [No parameter]
PauseStyle. The program immediately stops the style and then restarts when the con-
trol key is pressed again. A single Pause operation in the sequence both stops and
starts the style. The next entry in the sequence must be a style section type (MainA,
MainB,...,BreakBB).
StopStyle. AMac stops the style immediately (the program does not wait until a mea-
sure end). The parameter gives the stop time, TStop (in seconds). The program accepts
fractional time values (e.g., 2.6 seconds). If the stop time is greater than 0.0, then the pro-
gram holds the style notes playing at the time the control key was pressed and smoothly
fades them over time TStop. This feature is useful to avoid an abrupt termination of a
song. For example, you can place a Stop style operation with T Stop ∼ = 3.0 seconds after
an Ending section where held notes end abruptly. Press the control key during the final
notes for a smooth finish.
StopDownbeat. The program waits until the end of the current measure, plays the down-
beat of the next measure and then stops the style. This option often provides a good
simple ending. The parameter (TStop) has the same action as in the Stop style operation.
FadeOut. The program fades out at the end of a song by lowering the system volume
of the output device. The volume of both melody and style channels is reduced. The
parameter is the fade out time in seconds.
SysVolume. The operation reduces the volume of all channels (melody and style). A
parameter value of 1.0 corresponds to the initial volume settings upon entering the song.
The initial volume level of melody channels is set by clicking the Set current voice button
and changing the volume slider. The initial volume of style channels depends on settings
in the style file and the Equalizer settings. A parameter value of 0.5 reduces the volume
by 50%.
MelVolume. The operation sets the relative volume of voice channels. The parameter is
a number between 0.0 and 1.0.
StyleVolume. The operation sets the relative volume of style channels. The parameter
is a number between 0.0 and 1.0.
TempoSet. Use this operation to set an absolute tempo. The parameter is the desired
tempo in quarter notes per minute. Note that the tempo change takes place immediately
upon pressing the control key.

35
TempoChange. Use this operation to make a relative change in the present value of the
tempo. The parameter may have the range 0.2 to 5.0. A value of 2.0 doubles the tempo
while a value 0.5 halves it.

OneBeat. Use this command or the following two to play a song where a measure has an
irregular number of beats. In response to the command, the program waits until the end
of the current measure, plays one beat of the current style and then continues with the
regular pattern. As an example, suppose there is a 5/4 measure in a 4/4 song. Use this
command and press the control key at any time in the preceding measure. AMac plays
1 + 4 beats and then continues with the normal 4/4 pattern. [No parameter]

TwoBeat. The program waits until the end of the current measure, plays two beats of the
current style and then continues with the regular pattern. For example, use this operation
if a song in 4/4 has a six-beat measure. [No parameter]

ThreeBeat. The program waits until the end of the current measure, plays three beats
of the current style and then continues with the regular pattern. [No parameter]

AltVoice. Use the operation once to switch to the alternate set of voice discussed in
the following section. Use the operation again to return to the normal voice set. As an
example, with this feature you can use a completely different set of voices for the second
verse of a song. Note that songs always initialize to start with the normal voice set.

Use the Add entry popup menu to build or to expand an operation sequence. If no operation
is selected, the choice is added at the end of the list. If an operation is selected and the Insert
checkbox is unchecked, then the choice replaces the selected operation. If the Insert checkbox
is checked, then the new entry is added below the selected one. Use the mouse to change the
order of operations. Select one or more operations, left-click on the block, hold down the left
button and move the operations to the desired location. To remove an operation from the list,
select it and click the Remove button or press the Delete key. The Clear button removes all
entries. Finally, note that if you change the style associated with a song, not all style sections
referenced in a sequence may be available. If a section is not supported in the current style,
AMac makes an optimal substitution.

3.5 Defining melody voices


AMac has many options for defining melody voices. The program supports three simultaneous
instrument voices, either in unison, at octave displacements or in harmony. You can define two
independent voice sets and switch between them in a song. Voice controls are collected in the
Voice group on the right-hand side of the Performance window (Fig. 14). The three voices
of the standard set are shown in Fig. 18. Voice0 is transmitted to MIDI channel 00h of the
synthesizer, Voice1 to channel 01h and Voice2 to channel 02h. Click on a voice name to make
it active. The active voice name is shown in bold letters. To work on the alternate voice set,
activate the Alternate voices checkbox. There are two ways to set the active voice:

Load a voice file following the procedure described in Chap. 6. Then double-click one of
the entries in the listbox at bottom-right to transfer its parameters.

Create a voice from scratch by clicking the Adjust current voice button.

36
Figure 18: Tune active voice dialog called from the Performance window.

To employ voices that you have created in the Voice Laboratory, use the Load voice file
button to load one or more files (FName.MDV). Then, double-click on one of the entries to load
its parameters into the active voice. If the voice settings are not ideal for the song, you can
tune them by clicking the Adjust current voice button. AMac displays a dialog with the same
controls as the voice laboratory (Fig. 18). As parameters are changed, the external synthesizer
is updated so you can hear the effect by playing notes on the keyboard. Anything may be
changed, including the voice name and the GM instrument. The active voice is updated when
you exit the dialog. Note that these changes affect only the voice in the song. They do not
modify the loaded voice file. The settings are recorded when you save a song file. To create a
voice from scratch, make an undefined voice active then click the Adjust current voice button.
To delete a voice, make it active and then use the Remove voice button.. Finally, you can save
the full set of standard and alternate voice definitions in standard voice file format (Sect. 6.5)
with the Save voice set command.
When the Harmony checkboxes to the right of Voices 01h and 02h are unchecked, the voices
play in unison. (In other words, channels 00h, 01h and 02h receive the same MIDI notes). To
add octave displacements, make a voice active and then click the Adjust active voice button.
Set the Octave control in the dialog.
To use harmony, the primary voice (Voice 00h) must be defined. If a single Harmony
checkbox is active, AMac plays the corresponding voice with duet harmony (with notes of
Voice 01h lower than those of Voice 00h). Harmonic displacements depend on the current root
and chord of the style. If both harmony checkboxes are active, the program produces trio
harmony with the notes of Voicer 01h lower than those of Voice 00h, and the notes of Voice
02h lower than those of Voice 01h. The same rules apply to the alternate voice set.
Real-time calculations of harmony in response to chord changes in style are complex. AMac
may get mixed signals if your bass playing is loose or error-prone. Therefore, it’s a good idea
to practice a song with harmony deactivated until you become proficient. In the event of an

37
Figure 19: Settings dialog in the Performance window.

error resulting in a hung harmony note, immediately press the bass notes for the current or the
next chord to clear it.
Here is a suggested exercise to check out the voice capabilities. Load any style and define
the following operation sequence:

Main A|Toggle alt voice|Toggle alt voice|Toggle alt voice|Stop style

Load the voice file KBDI Standard.MDV. Choose Harpsichord for Voice 00h and Celesta for
Voice 01h. Go to the Settings dialog and set the Initial chord to CMaj (Sect. 3.6). Check how
the combined voice sounds with Harmony for Voice 01h checked and unchecked. Next, check
the Alternate voices box. Pick Drawbar organ for Voice 00h and Marimba for Voice 01h. Start
the style by pressing a C key below the split point. Note that the song automatically starts
in the primary voice set. Play some notes and press the control key to alternate between the
voices.

3.6 Settings, real-time events


There are several parameters to define for the Performance window. Click the Settings button
at the upper-right to bring up the dialog of Fig. 19. Click one of the radio buttons in the Style
lead group to set the fingering system to guide the style harmony. Section 3.3 describes the
options. Note that the current choice is stored in a song file, so you can use different fingering
systems for different songs. Table 3 gives a list of program parameter settings recorded in song
files.
Next, you should set the Control key and the Split point appropriate for your keyboard.
The control key advances the operation sequence (Sect. 3.4). Usually, it is the lowest key on the
keyboard (Fig. 20). Click the Set control note button. The green indicator shows the program

38
Figure 20: Setting the control and split keys.

is in sensing mode. Press the desired key. AMac displays the note value and exits sensing
mode. The split point determines whether a key press plays the melody or guides the style
harmony. All keys pressed above the split point play the melody. All keys pressed at or below
the split point guide the style. The default setting is F ♯ below middle C. To set the value, click
the Set split note button and then press a key.9
Other items control how the style is performed. The Initial chord setting is useful when
you are using harmonic voices (Sect. 3.5) and the melody starts before the style. Normally, the
style root and chord type determines the displacements of harmony voices. If the style is not
playing, you must supply the initial chord information. This information is saved in a song.
The Style sampling time determines simultaneity for multiple key presses below the split
point. The default time is 25 milliseconds. For this value, if several keys are pressed within
a 25 ms window, AMac assumes they are parts of a single chord. To find a good value, exit
Settings and play some chords with or without a loaded style. Watch the response in the Chord
text field. Lower the value if the program can follow your playing; otherwise, raise it10 .

9
The control and split key settings apply in both the Autosequence and Performance modes.
10
Values of the Style sampling time much larger than the default may result in a noticeable delay

39
In the Style chord transposition group, radio buttons define two options:

Maintain chord structure. In this option, AMac plays chords following the exact
patterns of Fig. 6. In other words, the notes of a C7 are raised four MIDI notes to play
an E7 chord. Chords sound progressively higher until the root reaches the Highest root
note. With the default value F ♯, notes are transposed down an octave for roots in the
range G-B.
Maintain note range. The program introduces octave transpositions so that chord
notes occupy about the same range for all roots.

The first option gives strong harmonic changes and is suitable for up-tempo songs. The second
option gives a smoother sound and is appropriate for gentle or romantic songs.
Some background is necessary to understand the final parameter, Harmony restart. The
setting comes into play when melody-voice harmony is active. The issue arises from the nature
of MIDI – notes don’t simply stop, they must be actively turned off. If a note shifts pitch,
the old note must be turned off and the new one turned on. Suppose you are holding the note
C in the melody (Voice 00h) and you change the harmony from CMaj to F7. The notes for
Voices 01h and 02h must be corrected for the new harmony. Old notes are always turned off. In
Harmony restart is active, then new calculated note values for Voices 01h and 02h appropriate
to F7 are turned on. This works well for continuous-tone instruments like organs and flutes.
Problems arise with instruments that have a sharp attack and strong decay like pianos and
guitars. Your synthesizer plays the loud attack every time a note turns on. This could produce
jarring sounds during subtle chord shifts. For these types of instruments, it is best not to restart
the note. In summary, here is the rule:

The Harmony restart checkbox should be active for instruments with sustained melody
voices like organs, violins, trumpets and flutes.
Uncheck the box for percussive or plucked melody instruments like pianos, guitars and
harps.

Finally, the items at the bottom control the metronome function. Metronome beats are
useful for practicing songs with complex or syncopated styles. Use the checkbox to turn the
function on or off. (To toggle the metronome in the Performance window, press the F8 key or
right-click the mouse in an empty area and use on the popup menu entry) The metronome is
synchronized to the style. It plays a loud note on the first beat of a measure and softer notes
on the other beats. The Note textbox controls the pitch of the sound. Set the type of sound
with the instrument popup menu. Metronome notes are transmitted on MIDI channel 07h and
are not included in recordings.

3.7 Songs and sets


You can devote a lot of work to perfecting the resources for a song. Clearly, you only want to
do the work only once. Furthermore, all the data should be instantly available whenever you
perform the song. The song file is the answer. Table 3 lists the song file contents. The file
collects everything necessary to perform the song – no additional data files are necessary.
Press the New song button to clear the current song and start a new one. Be sure to supply
a name for the song in the text field. (The name is used as the prefix of the song file with

40
Table 3: Song file contents

Header – current program parameters


Split note
Style tempo
Style volume
Style initial chord
Style highest root note
Style lead type
Style chord transposition
Style harmonic restart
Sequence
Codes and parameters for all operations
Voices
Settings for 1-6 voices as defined in the Tune voice dialog
Harmony status for standard and alternate voices
Style
Style equalizer settings
Complete style information

extension ASG.) Then, load a style, define voices and set the operation sequence. All of these
settings may be changed later. As you work, save the file periodically. Recover song file settings
with the Load song button.
A set is a collection of songs for a practice session or performance. The songs of the current
set appear in the listbox at bottom-center. To create a set, load each song and press the Add
song to set button. You can change the order of entries by dragging them. You can add more
songs later. To remove entries, select one or more songs and press the delete key. When the
list is complete, use the Save set command to create a file (SetName.KST). Use the Load set
buttons to read a set file.
The buttons on the right-hand side of the Song/Set group are used during a practice session
or performance. The commands may also be invoked by pressing keys. Click the First song
button or press F4 to load the song at the top of the list. Double-click an entry to start in the
middle of the list. Thereafter, press the Next song button (or the F2 key) to move to the next
song in the sequence. Press the Prev song button for a reprise.

3.8 Recording a performance


To make a MIDI recording of a song, click the Arm recorder button. AMac activates the
armed signal to show that is ready to record MIDI events. The program also transfers voice
control information for the melody and style to the recording arrays. When you play the song,
NoteOn, NoteOff and other signals generated by the program are stored in memory. Click
the Arm recorder button again when you are finished. You can then use the Save recording
command to make a permanent copy.

41
The recording process has some features to note:

There is no need to worry about when to start playing after clicking the Arm recorder
button. Nothing is recorded until the program detects a NoteOn event from the keyboard.
AMac sets the start time and shifts events so that the measures in the saved MIDI file
always start at the beginning of style measures, even if you play a melody pickup.

The program records events in a single MIDI track (Type 0 file). Most MIDI editing pro-
grams (like digital audio workstations) will split MIDI channel information into individual
tracks.

The recorder saves MIDI events produced by AMac. It cannot record MIDI signals
generated by your keyboard or other devices acting autonomously. To make a MIDI file
of keyboard output without AMac, use the MiniMIDI Recorder of the MIDI Utility
Pack available on our Internet site.

42
4 Style organizer
4.1 Style basics
Styles are the heart of AMac. They are the automatic accompaniments that can turn a simple
rendition of a song into a professional-sounding performance. AMac supports the style format
defined by the Yamaha Corporation for their digital keyboards. Tens of thousands of such
styles covering all musical genres are available for download on the Internet.
The function of the Style Organizer window (Fig. 21) is to help you sort through the vast
array of available styles to find the right one for a song. Go to the window from the other
program windows by clicking the blue button with the bass cleff. This section reviews some
basic features of style files. The following section describes capabilities of the Style Organizer.
Yamaha styles are contained in files with names of the form FPrefix.STY11 . The first part
of the file consists of a standard MIDI header and a single MIDI track. The track is divided
into short musical sections by markers. The sections have the following names:

MainA, MainB, MainC, MainD

IntroA, IntroB, IntroC

EndingA, EndingB, EndingC

FillAA, FillAB, FillBB, FillBA, FillCC, FillDD

Break AA, Break BB

A style need not contain all sections – simple styles may include only a few12 . The sections in
the first group (MainA, MainB...) provide the bulk of the accompaniment. They are intended to
be played in a loop through most of the song. In most styles, MainA is the simplest variation,
with progressively more embellishment and richer orchestration in the other sections. If you
play two verses of a song, the first is often accompanied by MainA, switching to a more complex
option to add variety in the second verse.
The Intro sections are introductions to the Main types, played once at the beginning of the
song. Again, the complexity increases from IntroA to IntroC. The Ending sections are played
once at the end of song. The Fill sections (which always consist of a single measure) are
used as bridges between the Main types. Finally, BreakAA and BreakBB are advanced features
implemented on some Yamaha keyboards that appear rarely in available styles.
You can listen to style files in the Player window (Chap. 5). Here, AMac reads the MIDI
track and ignores the section markers and other information. You will hear the style sections
played in sequence. If you play several styles, you will notice that some sound good and some
sound terrible. The ones that sound good follow a style standard:
11
Alternative suffixes for style files are .BCS (Basic), .PRS (Professional), .SST (Session) and .PCS (Piano
combo). All styles have the same format, independent of the suffix
12
The internal routines of a keyboard like the PSR E423 can play only a small subset of style sections: MainA,
MainB, IntroA, EndingA and FillAB

43
Figure 21: Style organizer screenshot

Only notes consistent with a CMaj7 chord are included. In this case, it is easy for a
program like AMac to transpose and to change notes to shift the style to any root and
chord type in response to a sequence or performer input.

MIDI information is limited to channels 08h to 0Fh13 . Therefore, style information may be
transmitted without interfering with the melody voices on channels 00h to 02h (Sects. 2.9
and 6.2). Table 4 shows the functions of the style channels.

Bad sounds result when a style does not conform to the standard. Unfortunately, this is
usually the case. Exceptions may include the following:

Extra information may be included in different MIDI channels. This information must
be redirected to the standard style channels.

Some MIDI channels may be in a different chord than Maj7 and may even have a different
root.

There may be MIDI channels whose information should be transmitted only when certain
chords are played.

The data section of the style file contains the information necessary to sort all this out. AMac
organizes everything for you when the style is loaded.
13
A note on channel numbers. MIDI supports 16 channels, often referred to as Channels 1 through 16. The
actual channel numbers exchanged between the keyboard and computer are 0 through 15. This manual uses
hexadecimal numbers to designate channels (00h through 0Fh) as a reminder that the second convention is used.

44
Table 4: MIDI channels used by styles

Channel Function Comments


08h Sub rhythm Rhythm instruments if XG MSB = 127, otherwise may be
used for general tonal instruments
09h Rhythm Drum set
0Ah Bass Bass instrument (e.g., piano or tuba)
0Bh Chord 1 Chord instrument (e.g., guitar)
0Ch Chord 2 Chord instrument (e.g., guitar)
0Dh Pad A floating voice (e.g., strings or a choir)
0Eh Phrase 1 Melodic phrases, often in intros and endings
0Fh Phrase 2 Melodic phrases, often in intros and endings

4.2 Organizing styles


Figure 21 shows the layout of the Style Organizer. The organizer has two main functions:

Preview styles (controls at the top).


Organize style files to create performance collections (controls at the bottom).

We’ll start with commands in the lower portion of the window. The two listboxes show the
contents of two directories (folders) on your computer’s hard disk or removable USB drives.
In typical use, one of the directories contains a large collection of style files that you want to
preview. The other directory contains a subset of styles that you have selected for a song or
performance. Navigation controls to switch to different directories appear above each listbox.
Controls that act on files are located between the listboxes. The red active-button shows the
listbox that currently has the focus. Some of the file controls (Delete, Rename, Create dir ) act
on selected files in the active listbox. The other controls (Copy, Move) transfer files from the
active listbox to the other one. The active listbox changes if you click on the opposite listbox
or on any of the controls on the other side.

4.2.1 Navigation
Directory names in a listbox are shaded and file names are unshaded. Directories always
appear first. To move into a directory, double-click it’s name. Use the Up button to move up
one level in the directory tree. The Root button takes you to the root of the current drive.
Use the Change drive menu to change the active listbox to a different drive of the computer.
Sometimes it’s useful to set both listboxes to the same location (for example, to move files into
a new child directory). To set the right box to the same location as the left box, right-click on
the right-hand active-button.
As you move between directories, AMac saves a list of previous locations. Use the Back
button to move to the previous directory. When you move back, the program saves a list of
locations in the forward stack. In this case, use the Forward button to return to a directory.
AMac saves it’s current state when you exit. Information includes the current directories
of the left and right listboxes and saved locations. The settings are restored the next time you
run the program.

45
4.2.2 Operations
The file-operation controls located between the boxes are the core of the style organizer. They
perform the following functions:

Copy: copy the selected directories and files of the active listbox to the directory of the
other listbox.

Move: move the selected directories and files of the active listbox to the directory of the
other listbox. In this case, the directories or files are copied to the destination directory,
checked for validity and then deleted in the source directory.

Delete: permanently erase the selected directories and files of the active listbox.

Create dir: create a new directory within the directory of the active listbox. Type a
name in the text field of the dialog and press OK or Cancel. Alternatively, press Enter
in the text field to create the directory or Esc to cancel the operation.

Add location: you may often return to a specific directory used for style storage. In this
case, a saved location can eliminate the effort of stepping through the directory tree each
time. Use this button to add the currently-active folder to the list of saved locations.

Saved locations: this button raises a dialog with a list of your saved directories. Double-
click on an entry to switch to the directory in the active window. Alternatively, select a
location and click OK. To delete a location, select it and click the Remove from list
button. Click Cancel if you decide not to change the location of the active window. You
can drag entries up and down with the mouse to organize the list.

You can copy the path of the directory locations of the left or right windows to the clipboard.
Click on the text field listing the directory above the window and press Ctrl-C. You can also
copy the names of any group of directories or files in either window to the clipboard. Make a
selection using the standard rules and then press Ctrl-C. The style organizer shows the progress
of extended copy, move or delete operations. During this period, other program commands are
deactivated. Click Cancel to abort the operation.

4.2.3 Popup menu


Right-click anywhere in the window to access the popup menu, which includes the following
options:

Display all files/Display only style files. Toggle the list box display to show all files
or only files with the extensions STY, .BCS, .PRS, .SST or .PCS.

Sort by name. Directories are listed in alphabetic order with their last-modification
date, and files are organized alphabetically with their byte size.

Sort by date. Both directories and files are ordered first by last-modification date and
then alphabetically by name showing the last-modification date.

Sort by extension. The same as the previous option, except that files are grouped
alphabetically by their extension (suffix) and then by name.

46
Figure 22: Style equalizer

Refresh view. Use this command to update the display if you change the files in one or
both of the displayed directories with an external program.

4.3 Previewing styles


To load a style for preview, double-click on a style file in either the left or right listbox. The
controls at upper-left show file properties. Style type indicates whether the file follows the older
(SFF1) or newer (SFF2) format. The Base tempo (in quarter notes per minute) is the default
style tempo. Type in a number (from 10 to 300) in the text box to preview the style at a
different tempo. There is a button in the center section of the window for each possible style
section. The active buttons show which sections are present in the currently-loaded style. Click
an active button to hear one instance of the section. The Number of measures in the current
section is displayed. This information is useful to identify whether Intro or Ending sections
are simple or elaborate. When a section is playing, you can Pause or Stop it with the buttons
on the right-hand side. There is also a volume control.
Sections play once if the Context checkbox is unchecked. Activate Context when you want
to hear how the sections sound when repeated or when they merge into other sections. In the
context mode, sections play according to the following rules:

Current section of type Main: play in a continuous loop.

Current section of type Intro: play the introduction and then one instance of the corre-
sponding Main section.

Current section of type Ending: play the corresponding Main section and then the ending.

Current section of type Fill or Break: play the lead Main section, the fill and then the
following Main section.

Use the radio buttons in the player control section if you want to hear how the style sounds
when transposed to different chord types (see Fig. 6 for chord definitions).

47
The sounds of MIDI files (style files included) may change when played on different devices,
depending on how the synthesizer represents the GM or bank voices (see Sect. 6.2). A rhythm
section that sounded perfect to the style developer may be deafening on your keyboard. Also,
you can significantly alter the character of a style by changing the relative volume levels of
channels. To tune channel volumes, check the Context box and click on one of the Main sections
for continuous play. Then click the Equalizer button to bring up the dialog of Fig. 22. The
initial settings are the channel volume values recorded in the style file (range 0-127). Use the
equalizer to change the volume of individual style channels (Table 4). Changes are immediately
audible and will be maintained when you exit the equalizer. Note that the equalizer settings
do not change the style file. The settings are preserved if you switch to the AutoSequence of
Performance windows. Here, the custom style volume settings are recorded as a permanent
part of an accompaniment or a song file.

48
5 MIDI player
5.1 Function
Call the MIDI Player window (Fig. 23) from any other other window by clicking the green
button with the phonograph disk symbol. The player is a versatile utility to play MIDI or
karaoke files. The term play means that the file bytes are transmitted to your keyboard or
other MIDI device with the proper timing to reproduce the musical content. The player has
two main functions:

Automatically play sets of MIDI files. With this capability, you can use your keyboard
and audio setup to provide background music for events or between performance sets.

Play accompaniments that you have recorded as MIDI files in the AutoSequence window.

Controls are grouped by function in different areas of the window. Controls to set the MIDI
output port are at the upper-left14 . Navigation controls are on the lower-left side. With these,
you can move between directories (folders) of your hard disk or attached USB drives to collect
MIDI files. The files may be added to the playlist box at the center15 . You can change the
order of entries in the playlist and add or delete songs. The command group on the right-hand
side controls the play functions (Start, Pause or Stop the playlist). Synchronized lyrics appear
in the box at the lower-right if you play a karaoke file. Following sections describe the control
groups in detail.

5.2 Navigation
The navigation listbox on the left-hand side of the window shows the contents of disk directories
on your computer. A directory may contain files and subdirectories. In the list, subdirectories
are marked with a tan background. The text field above the control buttons shows the current
directory. Enter a subdirectory by double-clicking its entry. Use the Up button to move to
the parent directory. The Root button takes you to the highest level of the current drive. Use
the Drive popup menu to switch between drives of your computer (including removable USB
drives).
The Back and Forward buttons are useful when you move back and forth between directories
to collect MIDI files. Click Back to return to the previous directory. If you click Back one or
more times, you can then click Forward to reverse direction. AMac saves the current directories
and restores them the next time you run the program.

5.3 Building playlists


A playlist is a set of MIDI files played in sequence to create a program. The box in the center
of the player window lists the files. To create a playlist, click Clear list if necessary and move
the navigation listbox to a directory where the MIDI files are stored. Add a single file to the
14
The player does not require MIDI input signals and will function if a MIDI input port is not defined.
15
A playlist is a group of songs (MIDI files) that are played in a prescribed order.

49
Figure 23: MIDI player window

playlist by double-clicking its entry. Add multiple files by selecting them and the clicking the
Add to list button. To select individual files, hold down the Ctrl key and left-click each entry.
To select a block of files, left-click to select the top entry, hold down the Shift key and left-click
the bottom entry. Alternatively, select the top file, hold down the Ctrl key and use the down
arrow to extend the selection. When finished, you can move to a different directory and add
more files. Note that the program will only add files with suffixes MID and KAR to the playlist.
You can change the order of files in a playlist. To move a single file, select it by holding
down the left mouse button and then drag it to its new position. To move a block of files, make
a selection, move the mouse to a position inside the selection, hold down the left key and drag
the block. Use the Remove button to delete entries in the playlist. Note that this operation
does not delete the referenced file.
Use the commands Save list and Load list to record and to restore playlists. Playlists are
saved as text files with the suffix APL (AMac playlist). The format is simple, so it is relatively
easy to create or to modify lists outside the program with a text editor. Table 5 shows an
example of the file content. The first comment line is mandatory. The full path to the file is
followed by a comma and the relative volume level, an integer from 0 to 100.
MIDI files downloaded from the Internet often have widely different volume levels. You can
equalize the volumes of selections in a playlist and record the values. Run through the playlist
sequence. While a selection is playing, adjust the volume slider to a good setting and click the
Volume set button. The level will be associated with the selection. Afterward, be sure to save
the playlist to record the new information.
As with any computer task, organizing files for playlists involves a trade off between short-
term ease and long-term benefits – you can avoid future headaches with some initial effort. It
is important to recognize that a playlist is a set of file paths, not a set of files. If the files are
moved or lost (e.g., by unplugging a USB drive), then the playlist will not work (AMac skips
files that cannot be located). If you want to carry playlists to different computers, we suggest

50
Table 5: Example of a AMac playlist file.

* AMac playlist file


E:\KBDInfinityResources\MidiCollections\MedievalChristmas\boarhed2.mid,67
E:\KBDInfinityResources\MidiCollections\MedievalChristmas\coventry.mid,75
E:\KBDInfinityResources\MidiCollections\MedievalChristmas\dadme.mid,67
E:\KBDInfinityResources\MidiCollections\MedievalChristmas\einros.mid,67
E:\KBDInfinityResources\MidiCollections\MedievalChristmas\hollyivy.mid,55
E:\KBDInfinityResources\MidiCollections\MedievalChristmas\jubilo.mid,67

that you put the referenced MIDI files on a dedicated USB drive and build the playlists from
that drive. If you work on a single computer, keep the referenced files in a dedicated resources
directory on the hard drive.

5.4 Playing MIDI files


Commands to play the entries of the playlist on the chosen MIDI device are on the right-hand
of the window. These commands are active only when playlist files are available. The default
mode (Sequence to end ) is to play the entire playlist in order. The default start point is the
top of the list. Highlight an entry to start in the middle. The program shows the name of the
current file, its length, the MIDI file type (0 or 1) and the number of tracks.
Use the Start button to initiate the sequence16 The progress bar shows the play position in
the current file. The Pause button temporarily halts the sequence – push Resume to continue.
The Stop button terminates the sequence. Click Next to skip to the next file in the sequence
or Previous to return to the previous one. The Volume slider controls the play volume.
There are four sequence types:

Single selection. Play a single selection and then stop. The program plays either the
first item in the playlist or the first selected item.

Sequence to end. Starting from the top of the list or from the first selected item, play
the files in sequence and stop after the last one.

Cycle. Operation is similar to Sequence to end, but the program returns to the top of
the list after the last file. Press Stop to terminate playing.

Random. Play files continuously in random order. Press Stop to terminate playing.

In all cases, the Interval control sets the number of seconds between selections.
If you play a karaoke file or MIDI file with embedded lyrics, they appear synchronously in
the lyric text area at the lower right. If you want to save a copy of the lyrics as a text file, play
the song in Single selection mode. Use the Save lyrics button, which becomes active at the end
of the song.

16
To avoid an interruption in playback, do not move the AMac window when the player is active.

51
6 Voice laboratory
6.1 Introduction
Voices are the instrumental sounds that you can use to play the melody of a song above the
bass line supplied by the style. AMac voice settings apply to Mode D of Fig. 2 and Mode E
of Fig. 3. In the AutoSequence and Performance windows, AMac can send the melody notes
you play to three different instrumental sounds on your keyboard (MIDI channels 00h, 01h and
02h). The notes to channels 01h and 02h may be the same as those to channel 00h (unison),
or they may be displaced by octaves or by harmonic intervals based on the current style chord.
Optionally, a set of alternate voices may be defined so you can switch instruments during a
accompaniment or song.
On a mechanical instrument, mastering a song means learning to play the correct notes
with good intonation and phrasing. Electronic keyboards add a new dimension to the creative
process. You can choose from a variety of musical resources that can enhance the quality of
your performance. One of the key components is a rich and appropriate melody voice set. The
Voice Laboratory gives you the tools to find ideal voice settings for your keyboard and to save
your experiments in an easily accessible form.
In the Performance window, you can load prepared voices from voice sets (sets of voice
specifications for different instruments). The information in these files is similar to the collection
of predefined voices on your keyboard. The function of the Voice Laboratory is to create or
to modify voice collections to use in performances. An understanding of some MIDI principles
will help you use the Voice Laboratory and voices in the Performance Window effectively.
Section 6.2 reviews the essentials. Sections 6.3 and 6.5 walk you through the steps of building
a new voice and saving it so you can use it again. Section 6.6 covers advanced XG voice
capabilities.
Enter the Voice Laboratory window by clicking the maroon button with the treble clef
symbol from any other window in AMac. Figure 24 shows the window layout. Controls are
divided into groups by function. MIDI port commands are at the lower left. An output port is
necessary to hear the voice settings. If an input device like a keyboard is present, the program
echoes notes you play with the current voice settings. If there is no input device, you can still
hear the voice with the Send test notes command. Controls to set parameters of the current
voice are grouped at upper-left and lower-center. Controls to edit the current voice are in the
upper central area. Commands on the right-hand side apply to voice files.

52
Figure 24: Voice laboratory

6.2 MIDI voice basics


AMac receives numerical data from your keyboard (generally via a USB port), does com-
putations and then sends back appropriate messages to the keyboard or to a different MIDI
synthesizer. Incoming numbers contain information such as the identity of a pressed key, the
press speed and the duration of the note. Outgoing data can be classed into two groups:

Setup information.

Performance information.

The performance information consists mainly of NoteOn and NoteOff signals, sent at the
appropriate times. In contrast, setup information is sent at t = 0, before the performance
starts. An important component of the setup is the definition of voices. For example, if a
NoteOn signal is sent to MIDI channel 2, should the resulting sound approximate a violin,
a clarinet, a tuba,...? In the absence of any setup information, every channel sounds like an
acoustic piano, the default on most keyboards.
AMac and the keyboard communicate over 16 MIDI channels – each channel can represent a
different musical instrument. Channels 08h through 0Fh are set aside for styles. The associated
setup information is built into the style and is sent automatically when the style starts. You
cannot change this information in AMac other than adjusting relative volume levels17 . AMac
sends melody information over channels 00h, 01h and 02h. You have complete control over the
characteristics of the melody voices. The Voice Laboratory makes it easy to experiment with
different settings and to save the results.

17
You can adjust voice settings with styles with our program Style Voice Optimizer.

53
Voice settings on a MIDI synthesizer such as a keyboard are sometimes called patches.
The term is a holdover from the days of analog synthesizers. A collection of oscillators, filters,
envelope generators and other equipment was physically patched together to produce a specific,
complex audio signal in response to a MIDI note number. There was a revolutionary change with
the advent of digital synthesizers. Thousand of dollars worth of interconnected electronic devices
could be replaced with a set of numbers (parameters) applied to wave-generation algorithms.
An inexpensive keyboard could easily hold parameter sets for thousands of patches.
With an effectively infinite number of possibilities, some standardization was essential. In
particular in order to circulate standard MIDI files, it was necessary that all synthesizers pro-
duced about the same instrumental sounds. The requirement lead to the general MIDI (GM)
convention, a set of 128 standard instrument sounds that a synthesizer should be capable of
reproducing. If so, the synthesizer is GM compliant. Table 6 lists the options. The com-
puter communicates what instrument sound should be approximated by the synthesizer in a
particular MIDI channel by sending the following two-byte message:

First byte: C0h + ChanNo


Second byte: GMCode

The message is called a program command. The channel number covers the range ChanNo =
00h to 0Fh, so the first number may vary from C0h to CFh. The quantity GMCode is the number
in Table 6 and covers the range 00h (0) to 7Fh (127). At a minimum, the setup transmission
consists of program commands for each of the channels used in the song. Finally, note that there
is considerable variation between synthesizers in the quality and characteristics of the standard
instrumental sounds, so the audio signal generated from a MIDI file will differ somewhat on
each device.
During setup, the computer can also send control change information to fine-tune the voice
characteristics. For example, we could set the reverberation (or depth) level. Reverberation
determines the level of multiple reflections of sound (echos) in the virtual performance space.
A value of 00h corresponds to open space space or an anechoic chamber while the maximum
value 7Fh corresponds to a closed space with hard walls. The computer sends the following
three-byte MIDI message:

First number: B0h + ChanNo


Second number: 5Bh
Third number: Reverb level (00h to 7Fh)

The first byte, B0h to BFh, indicates that control information follows for the MIDI channel. The
second byte shows the type of control information – the number 5Bh indicates reverberation
level. The final byte is the value.

54
Table 6: GM Voices

000 Acoustic Grand Piano 043 Contrabass 086 Lead 7 (fifths)


001 Bright Acoustic Piano 044 Tremolo Strings 087 Lead 8 (bass + lead)
002 Electric Grand Piano 045 Pizzicato Strings 088 Pad 1 (new age)
003 Honky-tonk Piano 046 Orchestral Harp 089 Pad 2 (warm)
004 Electric Piano 1 047 Timpani 090 Pad 3 (polysynth)
005 Electric Piano 2 048 String Ensemble 1 091 Pad 4 (choir)
006 Harpsichord 049 String Ensemble 2 092 Pad 5 (bowed)
007 Clavinet 050 Synth Strings 1 093 Pad 6 (metallic)
008 Celesta 051 Synth Strings 2 094 Pad 7 (halo)
009 Glockenspiel 052 Choir Aahs 095 Pad 8 (sweep)
010 Music Box 053 Voice Oohs 096 FX 1 (rain)
011 Vibraphone 054 Synth Choir 097 FX 2 (soundtrack)
012 Marimba 055 Orchestra Hit 098 FX 3 (crystal)
013 Xylophone 056 Trumpet 099 FX 4 (atmosphere)
014 Tubular Bells 057 Trombone 100 FX 5 (brightness)
015 Dulcimer 058 Tuba 101 FX 6 (goblins)
016 Drawbar Organ 059 Muted Trumpet 102 FX 7 (echoes)
017 Percussive Organ 060 French Horn 103 FX 8 (sci-fi)
018 Rock Organ 061 Brass Section 104 Sitar
019 Church Organ 062 Synth Brass 1 105 Banjo
020 Reed Organ 063 Synth Brass 2 106 Shamisen
021 Accordion 064 Soprano Sax 107 Koto
022 Harmonica 065 Alto Sax 108 Kalimba
023 Bandoneon 066 Tenor Sax 109 Bagpipe
024 Acoustic Guitar (nylon) 067 Baritone Sax 110 Fiddle
025 Acoustic Guitar (steel) 068 Oboe 111 Shanai
026 Electric Guitar (jazz) 069 English Horn 112 Tinkle Bell
027 Electric Guitar (clean) 070 Bassoon 113 Agogo
028 Electric Guitar (muted) 071 Clarinet 114 Steel Drums
029 Overdriven Guitar 072 Piccolo 115 Woodblock
030 Distortion Guitar 073 Flute 116 Taiko Drum
031 Guitar Harmonics 074 Recorder 117 Melodic Tom
032 Acoustic Bass 075 Pan Flute 118 Synth Drum
033 Electric Bass (finger) 076 Blown Bottle 119 Reverse Cymbal
034 Electric Bass (pick) 077 Shakuhachi 120 Guitar Fret Noise
035 Fretless Bass 078 Whistle 121 Breath Noise
036 Slap Bass 1 079 Ocarina 122 Seashore
037 Slap Bass 2 080 Lead 1 (square) 123 Bird Tweet
038 Synth Bass 1 081 Lead 2 (sawtooth) 124 Telephone Ring
039 Synth Bass 2 082 Lead 3 (calliope) 125 Helicopter
040 Violin 083 Lead 4 (chiff) 126 Applause
041 Viola 084 Lead 5 (charang) 127 Gunshot
042 Cello 085 Lead 6 (voice)

55
6.3 Building a new voice
To illustrate the procedure, let’s define a voice from scratch. Click the New voice button.
AMac sets the voice controls on the left-hand side of the window to default settings:

General MIDI patch to 00h (acoustic grand piano),

Volume level to 5Ah,

No special settings for effects like Reverb, Brightness = 40h.

Pan level 40h (equal volume on the right and left sides if the synthesizer supports stereo).

Click the Send test notes button. You should hear a short scale and chord played in a piano
voice.
A better way to test voices is to play selections on a keyboard. If your keyboard is attached,
choose it as the MIDI input device (use the Change port button if necessary). Set the synthesizer
as the MIDI output device – we’ll assume the same keyboard is used as the output device.
Play a few notes. You should hear the piano voice. Now, click on the down-arrow on the GM
instrument control and choose a different voice, like a celesta. Notes should now have a different
sound.
Here’s what’s happening. When you press or release a key, the keyboard sends signals to
the computer. The signals are intercepted by AMac, and the program echoes them (i.e., sends
the same information back to the keyboard) on MIDI channel 00h. The keyboard produces an
audio signal that depends on the program information it has received. When you changed the
GM instrument, AMac sent the MIDI message

First byte: C0h


Second byte: 08h (celesta)
Third byte: 00h

to the synthesizer. All subsequent NoteOn messages will be represented by a celesta-like sound.
Here’s a couple things that may go wrong:

What if you hear both a piano and a celesta sound? In this case, the keyboard is not only
sending information to the computer, but also sending information directly to its own
output. The MIDI convention is to sum signals arriving from all sources. It’s necessary
to set the keyboard to Local Off. This happens automatically on Yamaha keyboards.
AMac sends a Local Off signal whenever you enter the Voice Laboratory and sends Local
On when you exit. Some Casio keyboards do not recognize the Local Off signal, so you
must set it manually.

The voice setting on a Yamaha keyboard may affect note output to the computer, even
if the keyboard is set to Local off. Some keyboard voices may have octave displacements
and even voice doubling on multiple channels, which can cause confusion. Be sure the
keyboard is in the powerup default state when you use AMac and do not change the
hardware voice when the program is running.

56
6.4 Fine-tuning the voice
Use the set of controls on the left-hand side to customize the voice. It is important to recognize
that some of the controls may not have an effect, depending on the sophistication of your syn-
thesizer. Inexpensive Casio keyboards use waveform samplers rather than an actual synthesizer.
Therefore, most of the parameters (except chorus, reverb and octave) are ignored. Moderate
price Yamaha keyboards respond to all the controls on the left side, but not the controls in the
center. Experiment with your own keyboard to see which controls are recognized.
All sliders have the range 00h (0) to 7Fh (127). The controls have the following functions:

Volume. The default volume of the voice.

Reverb/depth. Effect of the performance space – a higher value gives a longer echo
effect.

Chorus. Simulation of multiple players (like a string section). With a high value, the
synthesizer broadens the frequency width of overtones. A low value corresponds to a solo
instrument.

Cutoff/brightness. A low-pass filter – a high value passes all frequencies while a low
value passes only low frequencies for a mellow sound.

Resonance/timbre. Instruments create a series of overtones, integer multiples of the


fundamental note frequency. A instrument like a banjo has a high content of overtones,
while a flute has a low content. A high value of this parameter gives strong overtones,
while a low value gives reduced overtones. Incidentally, if you want to appear musical be
sure to pronounce timbre as tamber (as in tambourine).

Attack time. Musical instruments like pianos typically do not produce notes with uni-
form amplitude. Instead, the amplitude follows an envelope like that of Fig. 25: a louder
section when the hammer strikes the string, a sustained period while the key is held
down and then a decay when the key is released. The profile of Fig. 25 is called an
ADSR envelope (attack/decay/sustain/release). Generally, the amplitudes are built into
the parametric definitions of the synthesizer, but you can adjust the timings. Use this
control to adjust the attack time. Note that there are only A, D and R commands – the
S time is controlled by how long you hold the key.

Release time. The release time of the ADSR envelope.

Left/right. This command, also know as Pan, controls stereo effects. For a setting of
00h, the voice sounds only in the left channel. A setting of 7Fh gives sound in the right
channel.

Octave. An octave displacement, implemented in AMac rather than in the synthesizer.


As an application example, a displacement of -1 is usually used with a tenor saxophone
to get a more soulful sound without the need to transpose the notes of the song.

Sound variation. A generalized control for synthesizers that support multiple variants
of an instrument sound.

Decay time. The decay time of the ADSR envelope.

57
Figure 25: Parameters for note amplitude envelope.

Vibrato rate. Vibrato is a low-frequency modulation of pitch. This control sets the
modulation frequency.

Vibrato depth. This control sets the frequency range for the vibrato modulation, gen-
erally small compared to the fundamental frequency.

Vibrato delay This control sets the phase of the vibrato modulation relative to the
NoteOn signal.

Tremolo depth Tremolo is a low-frequency modulation of amplitude. This control sets


the volume change.

6.5 Saving and loading voice sets


When you find a good combination of parameters, you’ll want to save the voice to use in your
performances. Modify the voice name if you want something more descriptive, and then click
the button Add as new to list. The voice appears in the listbox in the lower-right corner of the
window. You can create and add any number of voices to the list.
The list is not a permanent record, so it is important to save your results before exiting the
program. Use the Save voice file command and specify a prefix to create a voice file with suffix
MDV (for MIDI voice). The next time you run AMac, you can reload the file and work with
the entries in the list:

58
Add more voices.

Delete entries.

Edit voices by tuning the parameters.

Reorder the list.

Combine voice files.

To add a voice, define a set of parameters and click the Add as new to list button. To delete
voices, highlight entries in the list and then click the Delete voices button. To select multiple
entries, hold down the Ctrl key. To select a block, select the top and bottom entries while
holding the Shift key. To remove all entries, use the Clear voice list button.
To change one of the voices in the list, double-click on it or select it and click the Edit voice
button. The voice name and its associated parameters are transferred to the control area on
the left-hand side. After making changes, there are two options to move the results to the voice
list:

Use the Update in voice list button to replace the old voice.

Use the Add as new to list button to append the voice settings to the end of the list. In
this case, the voice must have a unique name.

The AMac distribution includes three voice set files that you can use as templates for your
work:

KBDI STANDARD.MDV. A basic set of 119 GM instrument voices with default parameter
settings.

PSRE423.MDV. A set of XG voices captured from the Yamaha PSR E423 keyboard.

DGX640.MDV. A set of XG voices captured from the Yamaha DGX-640 keyboard.

6.6 Extended bank voices and drum sets


Digital synthesizers can produce thousands of instrumental sounds, far more voices than the
128 of the general MIDI convention. Bank parameters allow you to access the full set of voices
available on your keyboard. In the convention, voices are arranged in banks of 128. The bank
number (a 14 bit quantity) is specified by two seven bit numbers: MSB contains the top 7
bits and LSB contains the lower 7 bits. The maximum number of voices on a synthesizer
that support the XG convention is (128)3 = 2, 097, 152. In practice, the number of available
synthesizer voices is much smaller.
The drawback of bank parameters is that the voices are not standardized between manufac-
turers and may even differ between keyboards from the same manufacturer. Therefore, voices
that you create with bank parameters may be appropriate only for your keyboard. This is the
reason that most of the MIDI files you download on the Internet use only GM voices.
If your goal is to perform on your keyboard, bank voices are a good option if you know the
correct parameters. These may be listed in the reference material supplied with the device. For
example, the Yamaha PSR E423 supports 700 voices, with bank parameters given in the Data

59
Table 7: General MIDI percussion sounds

Note Drum sound Note Drum sound


35 Bass Drum 2 58 Vibra Slap
36 Bass Drum 1 59 Ride Cymbal 2
37 Side Stick/Rimshot 60 High Bongo
38 Snare Drum 1 61 Low Bongo
39 Hand Clap 62 Mute High Conga
40 Snare Drum 2 63 Open High Conga
41 Low Tom 2 64 Low Conga
42 Closed Hi-hat 65 High Timbale
43 Low Tom 1 66 Low Timbale
44 Pedal Hi-hat 67 High Agogo
45 Mid Tom 2 68 Low Agogo
46 Open Hi-hat 69 Cabasa
47 Mid Tom 1 70 Maracas
48 High Tom 2 71 Short Whistle
49 Crash Cymbal 1 72 Long Whistle
50 High Tom 1 73 Short Guiro
51 Ride Cymbal 1 74 Long Guiro
52 Chinese Cymbal 75 Claves
53 Ride Bell 76 High Wood Block
54 Tambourine 77 Low Wood Block
55 Splash Cymbal 78 Mute Cuica
56 Cowbell 79 Open Cuica
57 Crash Cymbal 2 80 Mute Triangle
81 Open Triangle

List manual. The setting for the ChristmasBel voice, GM instrument = 098, MSB = 000 and
LSB = 067, gives a warm bell sound. In most cases, if a synthesizer does not support bank
voices or does not recognize the particular bank specification, it will substitute the general MIDI
voice. Manufacturers usually define bank voices so that they sound similar to the corresponding
GM voice. In the example, GM voice 098 is FX 3 (crystal), close to ChristmasBel. Therefore,
bank voices may have an acceptable sound on different keyboards.
The bank parameters can be adjusted to make rhythm (percussive) sounds on your keyboard.
Such sounds have a broad spectrum without a well-defined pitch. Rhythm sounds are a key
component of most styles – by convention, they are transmitted over MIDI channel 09h. Because
pitch information is not required, the note value in NoteOn and NoteOff MIDI messages is used
to determine the type of drum sound. Like the general MIDI instrument voices, there is a set of
general MIDI percussion sounds recognized by all synthesizers that support the GM standard.
The options are listed in Table 7. To illustrate, if a synthesizer receives a NoteOn signal on
MIDI channel 09h with note value 39h, it produces the sound of a hand clap.
The bank parameters may be used to send rhythm information on other channels, such as
channel 00h used by the Voice Laboratory. To illustrate, set XG MSB = 127, XG LSB = 0 and
GM Instrument = 0, and then play some notes. You should hear drum sounds. The type of

60
drum may depend on your keyboard characteristics. For example, on the PSR E423 there is a
default one octave displacement. Set the Octave control to -1 and play notes. The expanded
set of percussion instruments will match the small pictures above the keyboard.

6.7 Capturing voice parameters


In the Voice Laboratory, you may be able to import your favorite keyboard voices into AMac
and save them in a voice file to use with your performances. The process is possible with
keyboards that have an InitSend function. In this case, the device exports MIDI messages
containing the setup information discussed in Sect. 6.2 (e.g., GM program, XG parameters,...).
The following procedure applies to the Yamaha PSR E423:

1. Prepare the keyboard. Press the Function button and use the Category buttons to scroll
to InitSend.

2. In AMac, press New voice to clear parameters and then press the Capture voice button.
The green indicator indicates that the program is in capture mode.

3. On the keyboard, activate InitSend by pressing Yes in the Reset group.

4. Click the Capture voice button again to take the program out of capture mode. The
settings of the controls and parameters on the left-hand side replicate the voice. You can
test the settings by pressing keys on the keyboard or click the Send test notes button.

5. Modify the voice name if desired and add it to the voice file listbox. The voice will be
included when the voice file is saved.

This procedure was used to create the voice files PSRE423.MDV and DGX640.MDV.

6.8 The MIDI voice file specification


The MIDI voice-file is a compact entity for saving detailed information on sets of MIDI voice
specifications (MIDI patches). Voice files are used in the Accompaniment Machine and other
KBD-Infinity software to define melody voices to be used with styles for song performances.
MIDI voice files have names of the form FilePrefix.MDV. Following the lead of style files,
voice files are standard Type 0 (single track) MIDI files that can be read by any MIDI device.
The format is compact (the full set of voice specifications for a keyboard may occupy 10 kB)
and simple. It is relatively easy to create software routines to transfer voice information to any
MIDI device.
Figure 26 shows a screen display of MIDI Microscope with a voice file loaded. As with all
MIDI files, the first section is the Header Chunk :

1. UInt8: 4Dh 54h 68h 64h to represent the characters MThd.

2. UInt32: The number 6, always the length of data in the header chunk.

3. UInt16: The number 0, the MIDI file type

4. UInt16: The number 1, the number of tracks

61
Figure 26: Screenshot of Midi Microscope with a voice file loaded.

5. UInt16: Pulses per quarter note, set to the arbitrary value of 100 (64)

There is a single track section that begins with

1. UInt8: 4Dh 54h 72h 6Bh to represent the characters MTrk.

2. UInt32: The number of bytes in the track.

The data that follow consists of a set of standard MIDI messages (with no System Exclusive
messages). Each message is preceded by a timing byte, always 00h. The first message must be
a non-MIDI type text message that contains the name of the first voice:

FF 01 StringLength VoiceNameString

The quantity StringLength is the length of the following string expressed as a variable-length
quantity. The next StringLength bytes are ASCII values to define VoiceNameString. The voice
designator is followed by any number of voice definition messages that a software program ports
directly to the MIDI device. All messages are three bytes in length except Program change (2
bytes). All parameter values are in the range 00h → 7Fh. All messages are directed to MIDI
channel 1 (00). The software is responsible for redirecting the information to other channels
for multiple voices. Not all commands may be recognized by all MIDI devices. Unrecognized
commands are ignored. The following messages are allowed:

62
XG parameters:
B0 00h BankMSB
B0 20h BankLSB
General MIDI instrument (program change): C0h GMInst
Channel volume: B0h 07h ChanVolume
Pan (left/right speakers): B0h 0Ah Pan
Sound variation: B0h 46h SoundVariation
Timbre (resonance):B0h 47h Timbre
Release time: B0h 48h ReleaseTime
Attack time: B0h 49h AttackTime
Brightness (cutoff): B0h 4Ah Brightness
Decay time: B0h 4Bh DecayTime
Vibrato rate: B0h 4Ch VibratoRate
Vibrato depth: B0h 4Dh VibratoDepth
Vibrato delay: B0h 4Eh VibratoDelay
Depth (reverb): B0h 5Bh Depth
Tremolo depth: B0h 5Ch TremoloDepth
Chorus: B0h 5Dh Chorus

There is an additional non-MIDI message that does not directly affect the output MIDI de-
vice, but may be used by the software. The octave displacement parameter is defined by the
proprietary message

FF F7 01 (OctaveDisp + 64)

The value 01 is the length of the data (one byte). For an octave displacement of -1, the software
should add or subtract 12*OctaveDisp from note values in NoteOn and NoteOff messages.
The end of data for one voice is signaled by the text message header for the next voice:

FF 01 StringLength NextVoiceNameString

The end of data for the last voice is designated by a end-of-track message:

FF 2F 00

6.9 Voice files from INS data


We wrote the utility INStoMDV to convert data from Cakewalk and Sonar INS files to
the MDV format. In this way, the full set of voices for particular keyboard synthesizers would
be immediately available for use in the Accompaniment Machine. Conversions for over 40
common keyboards are included with the AMac package.
INS files are hardware specific. The useful information is a list of all combinations of the
MIDI parameters BankMSB, BankLSB and GMProgram that result in a unique voice on the
keyboard. INStoMDV reads the INS information and creates an MDV file with all voices and
drum sets included. For each voice, the MDV file includes BankMSB, BankLSB, GMProgram and
default values for the Volume and Pan. The user can add additional MIDI controls (reverb,
chorus, brightness, timbre,...) in the Voice Laboratory to tune the voices or to create new
variants. The translation utility also creates a formatted list of settings:

63
Program INStoMDV
KBD-Infinity, Albuquerque, New Mexico
Input file: Test.ins
Output file: Test.MDV
Bank MSB Bank LSB GM Prog Name
============================================================
0 113 25 12String Guitar
0 118 16 16’+2’ Organ
0 119 16 16’+4’ Organ
0 117 27 60’s Clean Guitar
0 112 32 Acoustic Bass
0 112 54 Air Choir
0 112 65 Alto Sax
0 115 81 Analogon
0 113 23 Bandoneon
0 112 67 Baritone Sax
...

To make your own conversions, use this link to download the INStoMDV utility:
http://kbd-infinity.com/stylesamples/INStoMDV.zip

64
7 Techniques
7.1 Connecting Yamaha keyboards to a computer
There are some pitfalls in the Yamaha procedure, so we will briefly review the steps. To begin,
it’s important to recognize that you can’t have active drivers for two different models of Yamaha
keyboards on a computer at the same time. If you want to change keyboards, use the Windows
de-installer to remove the current driver before proceeding. On the CD supplied by Yamaha,
go directly to the appropriate driver directory (typical names, USBdrv32, USBdrv64) and run
the setup program. If you are going to use AMac, it is not necessary to install the Musicsoft
Downloader.
The setup process is a little peculiar. Normally, in Windows you install the drivers and then
plug in the device – not so with the Yamaha software. Here’s the procedure:

Connect the keyboard to the computer with a USB cable and turn on the power. Windows
will sense the device and try to find a driver. It will fail and ask if you want to search for
the driver. Do not search – just cancel out of the New hardware wizard.

Run the appropriate setup.exe. Agree to everything. Ignore the Windows message that
the software is insecure – simply move forward to the end.

You can check the installation by clicking on the Safely remove hardware tool in the
Windows Taskbar. There should be an entry for the Yamaha USB-MIDI driver.

7.2 MIDI audio output to the computer


On occasions, you may want to direct output from AMac to a computer device (speaker,
headphones,...). For example, computer output is useful if you are using a basic keyboard
for input without a synthesizer and speakers. The default MIDI output port on Windows
computers, Microsoft GS Wavetable Synth, is inadequate for AMac and any other performance
software for two reasons:

The sound quality is poor, and there is no option to adjust sound parameters like reverb
and chorus.

The software has a latency, a delay of approximately half a second between creating a
MIDI message (pressing a key) and hearing a sound.

Fortunately, there is a free alternative that resolves the problems. Installation takes about 10
minutes.
The primary program is CoolSoft VirtualMIDISynth, which installs as a MIDI output port
on a Windows system. The program requires an available sound font (a database of waveforms
for MIDI voices). There is a list of links to 10 free sound fonts on the CoolSoft web site:

http://coolsoft.altervista.org/en/virtualmidisynth

A good option is the Arachno sound font, available at

65
Figure 27: Advanced options tab in the VirtualMIDISynth Configurator.

http://www.arachnosoft.com/main/soundfont.php

Unless you have SfArk compression software installed, download the package in the plain
SF2 decompressed format (arachno-soundfont-10-sf2.zip, 136 MB). After unzipping, the
important file is:

Arachno SoundFont - Version 1.0.sf2

Move it to a permanent location on your hard disk.


Return to the CoolSoft site, click on Download in the navigation bar at the top, and
download the file

CoolSoft_VirtualMIDISynth_1.8.0.exe

Run the installer and accept the option to run the Configurator after completion. Click the +
(plus) button in the SoundFont tab. In the dialog, navigate to the location where you stored
Arachno SoundFont Version 1.0.sf2 and choose it.
Run your MIDI software to test the ports. You should see the option CoolSoft Vir-
tualMIDISynth in addition to Microsoft GS Wavetable Synth. Choose it and play some notes.
The sound is infinitely better, but you may be disappointed to find that the latency is almost
as bad as the Microsoft driver. To fix this, run the Configurator and choose the Advanced
options tab (Fig. 1). Lower the value of Additional output buffer from 250 to 5. This reduces
the latency to a value consistent with performances.
When you run AMac or another program that uses the CoolSoft VirtualMIDISynth port,
there will a startup delay as the large soundfont is loaded into your sound card. Almost all
sound cards support soundfonts. If this method doesn’t work, you have the exception.

66
7.3 Making USB drive letters the same on all your computers
It is often annoying when USB drives are assigned different drive letters (A:,B:,...,L:,..)
when you plug them into different computers. With regard to AMac, drive assignment changes
can be a problem if you carry performance resources with absolute file references (like playlist
and set files) between computers.
A fix is relative easy. First, pick a drive letter that will not conflict with existing device
definitions on all the computers you want to use. To be safe, you could pick a high letter like
M:. You must perform the following operations on each computer you want to use (i.e., you
are changing the operating system settings, not the USB drive):

Plug in the USB drive

Run Control panel.

In Windows Vista, pick Administrative tools. In Windows 7, pick System and


security/Administrative tools.

Pick Computer management.

Choose Storage/Disk management.

You should now see a list of installed storage devices, including the USB drive.

Right click on the USB drive and pick Choose drive letter and paths....

In the dialog, click the Change button, choose a new letter, and then OK out. Ignore the
warning about changing paths if you are sure it will not be a problem.

The drive will now assume the letter you assigned when it is plugged into the computer.

67
7.4 Installing the ConText text editor
A text editor is the one of the quickest ways to create sequences for AMac. A good editor can
make many of your computer tasks easier. If you are using a primitive utility like NotePad, it
is definitely worth moving up. You can get a high-quality editor for free. ConText is available
at:

http://www.contexteditor.org/

Syntax highlighting is useful feature. Figure 7 shows a ConText display of an AMac


sequence with highlighting. Comment lines appear in a specific color in italics. Operations are
shown in bold red, chord roots in bold blue and chord types in bold green. Syntax highlighting
makes the display more readable. More important, it provides a crosscheck on data entry. If
you mistype an operation or enter one that is not recognized, the word will not be highlighted.
Here’s how to add syntax highlighting for AMac sequence files (FName.ASQ):

1. Download and install ConText.

2. Move the file amac sequence.chl (included in the AMac resource directory) to the folder:

C:\Program Files (x86)\ConTEXT\Highlighters\

3. Highlighting will automatically be applied to files with the suffix ASQ the next time you
run ConTEXT. You can edit the chl file if you want to change colors or other properties.

68
Index
accompaniment, 49 Casio chord fingering, 33
file, 21 channels
file contents, 9, 22 style, 44, 53
playing, 21 style channel table, 45
program, 23 voice, 52, 53
recording, 23 chord chart, 12
ADSR envelope, 57 chord fingering
alternate voice, 15, 24, 36 Casio, 33
AMac full, 33
advantages, 4 KBDI, 32
alternate voice, 24, 36 Yamaha, 32
autosequence program, 21 chords, 32
autosequence window, 9 chorus, 57
control key, 33, 38 clear hung note, 38
edit sequence dialog, 19 computer audio, 65
editing sequences, 19 ConText text editor, 15, 68
functions, 5 control key, 26, 34, 38
harmony control, 27, 40 Coolsoft VirtualMIDISynth, 65
initial chord, 26, 39
license, 28 drum sets, 60
metronome, 27, 40 table, 60
modes, 5 edit sequence dialog, 19
operation sequence, 31, 33 equalizer, 12, 31, 48
organization, 8
play accompaniment, 21 fade, 14, 35
player window, 49 fakebook, 15, 31
popup menu, 28 file organizer, 45, 49
recording, 23, 41 full chord fingering, 33
resource directory, 9
sequence, 12 GM voices, 54
sets, 40 table, 55
song files, 29
harmony, 25, 32, 37
songs, 40
duet, 25, 37
split point, 38
melody, 25, 37
style organizer window, 43
trio, 25, 37
style sampling time, 39
harmony control, 27, 40
voice laboratory, 52
hung note, 38
window functions, 8
Arachno soundfont, 65 initial chord, 26, 39
autosequence window, 9 INS conversion, 63
settings, 26 irregular measures, 14, 36
brightness, 57 karaoke file, 51
capture voice from keyboard, 61 KBDI

69
chord fingering, 32 playlist, 49, 50
file, 50
lead sheet, 15 file organization, 51
local on/off, 26 sequence control, 51
lyrics, 51 volume, 50
medley, 21 program
melody automatic advance, 24
alternate voice, 15, 36 controls, 21
voices, 24, 36 file, 23, 24
volume, 14, 35 portability, 24
metronome, 27, 40 recording, 23, 41
Microsoft GS wavetable synth, 65 resource directory, 9
MIDI reverberation, 57
channels, 5, 44, 53
connections, 5, 25 save voice set, 25, 37
control change commands, 54, 57 sequence
drum sets, 60 chord choices, 17
file, 50 chord event, 12
GM drum table, 60 chord symbols, 12
GM voices, 52, 54, 55 chords, 11
input ports, 52 creating, 15
messages, 53 definition, 11
output ports, 49, 52, 66 editing, 19
patches, 54 example, 17
player, 49, 51 file, 15
program commands, 54 operation event, 13
recording, 23, 41 operations, 11
voice control, 53 organization logic, 17
XG voices, 52, 59 pause, 22
MIDI files, 50 root note symbols, 12
MIDI player window, 8 rules, 19
MIDI voice file format, 62 sources, 15
Mini MIDI Player, 43 structure, 12
modes of operation, 5 syntax highlight, 15
set, 40
operation sequence, 31, 33 controls, 41
build, 36 file organization, 24
start, 34 silent measure, 22
operations song, 40
autosequence, 13 example, 31
pan, 57 files, 29
performance soundfont, 65
cues, 15 split point, 38
performance cues, 10 style
player window, 49 channel usage, 44
playlist, 50 characteristics, 4

70
context preview, 47 voice laboratory, 52
controls, 12
equalizer, 12, 31, 48 Windows
file, 12, 43 USB driver letter, 67
harmony, 27, 32, 40 XG voices, 59
in song, 31
irregular measures, 14, 36 Yamaha
measures, 34 driver installation, 65
metronome synchronization, 27, 40 easy chord, 32
organizing, 45 style, 4, 12, 31, 43
sections, 5, 13, 31, 34, 43
standards, 43
substitute sections, 36
tempo, 14, 35
tempo indicator, 12, 31
volume, 14, 35
style organizer window, 8, 43
style sampling time, 39
synthesizer, 53, 54, 57

tempo, 14, 35
tempo indicator, 12, 31
timbre, 57
tremolo, 58

USB
drive letter, 67

vibrato, 58
voice
ADSR envelope, 57
brightness, 57
build, 25, 37, 56
capture from keyboard, 61
channels, 52
chorus, 57
file, 24, 25, 36, 37, 58
melody, 24, 36
pan, 57
problems, 56
reverberation, 57
save voice set, 25, 37
standard definition file, 62
timbre, 57
tremolo, 58
vibrato, 58
voice control, 11, 29, 62
voice file format, 62

71

You might also like