Professional Documents
Culture Documents
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
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:
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
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.
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
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.
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.
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 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]
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]
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.
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
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.
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.
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.
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.
20
Figure 10: Popup menu: editing operations on the sequence list.
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.
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
operations silence an accompaniment running in MainC for four measures during a melody
solo:
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
32
Figure 16: KBDI chord system
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.
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:
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.
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.
40
Table 3: Song file contents
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.
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:
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
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.
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.
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.
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.
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.
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
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:
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:
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
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:
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
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:
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.
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.
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.
Sound variation. A generalized control for synthesizers that support multiple variants
of an instrument sound.
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.
58
Add more voices.
Delete entries.
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.
59
Table 7: General MIDI percussion sounds
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.
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.
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.
2. UInt32: The number 6, always the length of data in the header chunk.
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)
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
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.
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
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:
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):
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/
2. Move the file amac sequence.chl (included in the AMac resource directory) to the folder:
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