When using this document, keep the following in mind:ntialGeneral Notice

1. This document is confidential. By accepting this document you acknowledge that you are boundby the terms set forth in the non-disclosure and confidentiality agreement signed separately and /inthe possession of SEGA. If you have not signed such a non-disclosure agreement, please contact
SEGA immediately and return this document to SEGA.

de2. This document may include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new versions of the
document. SEGA may make improvements and/or changes in the product(s) and/or the
program(s) described in this document at any time.

nfi

3. No one is permitted to reproduce or duplicate, in any form, the whole or part of this document
without SEGA’S written permission. Request for copies of this document and for technicalinformation about SEGA products must be made to your authorized SEGA Technical Services
representative.

Co

4. No license is granted by implication or otherwise under any patents, copyrights, trademarks, orother intellectual property rights of SEGA Enterprises, Ltd., SEGA of America, Inc., or any third
party.
5. Software, circuitry, and other examples described herein are meant merely to indicate the characteristics and performance of SEGA’s products. SEGA assumes no responsibility for any intellectual
property claims or other problems that may result from applications based on the examples
describe herein.

GA

6. It is possible that this document may contain reference to, or information about, SEGA products(development hardware/software) or services that are not provided in countries other than Japan.
Such references/information must not be construed to mean that SEGA intends to provide such
SEGA products or services in countries other than Japan. Any reference of a SEGA licensed product/program in this document is not intended to state or simply that you can use only SEGA’slicensed products/programs. Any functionally equivalent hardware/software can be used instead.
7. SEGA will not be held responsible for any damage to the user that may result from accidents or any
other reasons during operation of the user’s equipment, or programs according to this document.

SE

NOTE: A reader's comment/correction form is provided with thisdocument. Please address comments to :(6/27/95- 002)

SEGA of America, Inc., Developer Technical Support (att. Evelyn Merritt)
150 Shoreline Drive, Redwood City, CA 94065
SEGA may use or distribute whatever information you supply in any way
it believes appropriate without incurring any obligation to you.

SE

GA

Co

nfi

de

nti
al

TM

Standard MIDI File:

SaturnConverter Specification
Doc. #ST-66-121593

1.0 Change History
2.0 Preference Settings
3.0 Events to be Converted
4.0 When an Error is Output
Structure of Output Files
Resolution
Number of Tracks Used
Header Flags
Format of Temp Tracks
Format of Non-Tempo Tracks(Regular Tracksa)
5.0 Abbreviation Rules© 1994 SEGA. All Rights Reserved.

2
3
4
4
5
6
6
6
7
8
20

nti
al

READER CORRECTION/COMMENT SHEETKeep us updated!
If you should come across any incorrect or outdated information while reading through the attacheddocument, or come up with any questions or comments, please let us know so that we can make therequired changes in subsequent revisions. Simply fill out all information below and return this form to
the Developer Technical Support Manager at the address below. Please make more copies of this form if
more space is needed. Thank you.
General Information:

Phone

de

Your Name
Document number

ST-66-121593

Date

Document nameStandard MIDI File: Converter Specifications

Corrections:
Correction

nfi

pg. #

GA

Co

Chpt.

SE

Questions/comments:

Fax:

Where to send your corrections:(415) 802-1717
Attn: Evelyn Merritt,
Developer Technical Support

Mail:

SEGA OF AMERICA
Attn: Evelyn Merritt,
Developer Technical Support
150 Shoreline Dr.
Redwood City, CA 94065

nti
al

REFERENCES

SE

GA

Co

nfi

de

In translating/creating this document, certain technical words and/or phrases were interpreted with theassistance of the technical literature listed below.

October 7, 1993

Description
00 - 7fH: Note On
81H: Rest
82H: Reserve
83H: Reference
84H: Loop Start
8EH: End Of Track
91H: Poly-Key Pressure
92H: Program Change
93H: Channel Pressure
94H: Pitch Bend (14-Bit
Expression)
95H: Pitch Bend (7-Bit Expression)
A0H: Control Change
A1H: Modulation
A2H: Breath Control
A3H: Foot Control
A4H: Main Volume
A5H: Panpot
A6H: Expression
B0H - B7H: Extend Gate Time
B8H - BFH: Extend Step Time
Abbreviation Rules

de

Page
2
3
4
4
5
6
6
6
7
8

Page
9
10
11
12
13
14
14
14
15
16
16
17
17

18
19
20

SE

GA

Co

nfi

Description
Change History
Preference Settings
Events to be Converted
When an Error is Output
Structure of Output Files
Resolution
Number of Tracks Used
Header Flags
Format of Tempo Tracks
Format of Tracks Other Than Tempo
Tracks (Regular Tracks)ntialKatsutaka Nitta, Sound Development Section, Software Engineering Department

Standard MIDI File: Saturn

1

1.0

Change HistoryntialSeptember 20, 1993 Ver. 1.1• Added a fade compression mode for pitch bend and changed the contents of
the header flag accordingly.
• Changed the tempo track from 8-byte units to 6-byte units.
• Added a command used in the regular tracks and provided the Extend Gate
(Step) Time command in stages for each amount of extension.

Co

nfi

de

October 4, 1993 Ver. 1.2• Of the commands used in the regular tracks, the Jump, Call, and Return commands were eliminated and the Reference command provided in their place.
The Loop Start and Reserve commands were added.
• The allocation of command numbers was changed to reflect a statistical classification.
• Changed the Step Time abbreviation rule for Note On and various events.
Until now, Step Time was abbreviated only when Note On was the same as thepreceding Note On and Step Time, but this has been changed to the preceding
event and is not limited to Note On. Further, if the preceding event and Step
Time are the same for other events, as well, Step Time is omitted and the 7th bitof the data byte is set to ON.
• Technical explanations necessary for data restoration have been provided
where needed.
October 7, 1993 Ver. 1.21
• The abbreviation rules for the top byte of events (command number) and theStep Time have been clarified.
• Typographical errors were corrected.

SE

GA

November 1, 1993, Ver. 1.3• Music piece = file size (bytes 4 and 5) was inserted in the output file header.

2

2.0

Preference Settings

de

nti
al

The operation of this converter is determined by the configuration (preference setting) program M6CNF.EXE, which exists separately from the converter. The following operations can be set.
• Whether a temporary file is output or not.
• Whether ASCII format or binary format is used for output files.
• Output events other than those to be converted (meta events other than tempo)
as comments. (This is valid only when the output file is in ASCII format. Also,
comments are output only in temporary files.)• Allow pitch bend to fade before saving, or save it without fading.
These are all Y or N switches; when M6CNF.EXE is started, they are opened{Translator’s Note: Due to copy quality, it was difficult to distinguish “opened.” It may be “heard.”}in order and the responses are saved in the above order as Y or N in a text file called
M6CNV.CNF. The converter reads these text files, which determine its operation.

GA

Co

nfi

The converter outputs both temporary files and complete files. Their differences aredescribed below.
• Temporary files (extension: .TMP; Macintosh files are truncated after the 8th
character)
Output only when output is allowed by the configuration program.
Output only when output is displayed as ASCII format and it has been instructed that events other than those to be converted to be output as comments, events other than those to be converted will be output as comments.
• Complete files (extension: .CNV; Macintosh files are truncated after the 8th
character)
These are always output regardless of what is set by the configuration program. They do not include events other than those to be converted, which are
not even output as comments. Repeated detection is already completed.
Therefore the Reference command is included. (If a repeat is not found, thenof course the Reference command is not included.)SE

The configuration program does currently exist, but it is planned to eliminate it andinclude it as one window in the converter program to facilitate setting by way of amenu.

Standard MIDI File: Saturn3

Events to Be Converted

nti
al

3.0

Of the events included in a standard MIDI file, those that are converted by the converter are listed in the following table. These are converted with no fading as longas saving with fade of Pitch Bend has not been specified in the preference settings.

Note On/Off
Poly-Key Pressure
Control Change
Program Change
Channel Pressure
Pitch Wheel Change
System Message
Meta Event

Status Before
Conversion
9nH , 8nH
AnH
BnH
CnH
DnH
EnH
F0H - FEH
FFH

Conversion
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes

Remarks

Note Off is replaced by Gate Time.

Must exist at the top of each track.

Expressed with 7 bits and 14 bits
Exclusive, or Start, Stop, Song Position, etc.
Only tempo.

deEvent Description

4.0

When an Error Is Output

nfi

Meta Event is valid only for items for which tempo has meaning and is included in
the tempo track. Also, in regular tracks no meta event undergoes conversion.

When the following conditions are not satisfied, the converter outputs an error
message and stops the conversion operation.

Co• The standard MIDI file prior to conversion does not include a system message.
System messages include Song Position Pointer, System Exclusive, Song Select, etc.

GA

• The number of events included in a standard MIDI file prior to conversion is lessthan 6143 events per track. However, a slightly smaller number of events is output
after conversion (this is because Note Off is absorbed in Gate Time of Note On).
Similarly, the number of meta events is less than 256, and the length of 1 meta
event cannot exceed 127 bytes.
• The standard MIDI file must be of type #1. Future versions will be compatible
with type #0 files, but compatibility with type #2 files is not planned.

SE• The preference setting file (M6CNV.CNF) and the standard MIDI file to be converted must be in the same directory as the converter program (M6CNV.EXE).This
is a requirement left over from when the MS-DOS converter and the source files
were used in common. This will be changed in the future.
• No more than one Loop Start command (31st Control Change) can exist in eachtrack.
• A Program Change must be present at the top of each track. However, empty
tracks do not require a Program Change.

4Structure of Output Files

Resolution
Number of tracks used
Header flag
Number of bytes of this tune
(Reserved)
Tempo track offset address
Track #1 offset address
Track #2…
…
Track #n offset address
Tempo track, tempo data
Track #1, play data
Track #2…
…
Track #n play data

Number of
bytes
2
1
1
2
2
2
2
2
2
2
Undefined
Undefined
Undefined
Undefined
Undefined

Notes

nti
al

Description

File size
For future expansion

deOffset from
top
0
2H
3H
4H
6H
8H
0AH
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined

SE

GA

Co

nfi

Each is explained later in the next few pages.

Standard MIDI File: Saturn

5

nti
al

Resolution
The resolution is the number of counts per quarter note of the original MIDI data.
It is expressed with 2 bytes in most significant (MS) and least significant (LS) order.
Number of Tracks Used
The number of tracks used is the number of tracks of the Saturn format data afterconversion, including the tempo track.

D7 D6 D5 D4 D3 D2 D1 D0

deHeader Flags
Header Flags indicate the attributes of the overall data.

Fixed at 0
0: Bit length of offset address is 16 bits
1: Bit length of offset address is 32 bits

nfi

Fixed at 00
00: Saturn format type #0
01: Saturn format type #1
10: Saturn format type #2
11: Not used

Co

Fixed at 00: Musical Interval is expressed linearly
1: Musical Interval difference
0: Compression is not accompanied by fade1: Compression is accompanied by fadeGA

Not used

D4 indicates whether or not the pitch bend data is faded during conversion. In thecase of pitch bend, the change width is normally saved in 14 bits, but it can also berecorded using only the upper 7 bits. In that case, this D4 becomes “1.”SE

Beacuse a pitch bend that has been faded and a pitch bend that has not been faded
have different command numbers, the sound source driver does not need to look at
D4 of the header flag to perform judgment.

6Format of Tempo Tracks
Description

Written in 6-byte units. The
tempo value is expressed in
the same way as in standard
MIDI files, and indicates thenumber of microseconds per
beat.
Because no command
expressing the track end isinserted in the tempo track,
the end must be determinedby calculating the size of thetempo track from the number
of offset bytes of the header.

ntialPosition+0 byte Upper byte of tempo value
Lower byte

3

Least significant byte

4Upper byte of count number Duration until next tempo change

6

Lower byte

7

Least significant bytede2

Loop and Tempo Changes

nfi

There are items in the MIDI sequencer that do not output a tempo when the tempo(BPM) is 120 tunes. In this case the converter does not output the information tempo
120, and because the tempo track is output empty (size is 0 bytes), caution is required on the play side.
Loops must be specified independently for each track. In other words, a common
loop cannot for all tracks be specified. Therefore the tempo cannot be changed in a
loop.

Co

In a standard MIDI file a loop command is not defined, but loops are required when
actually composing. When defining a loop command, one common for all tracks
and those independent for each track cannot exist together— for example, when theranges of an overall loop and of track-independent loops overlap. Also, a complex
loop may result in a different tune being played during play while composing on a
MIDI sequencer and after conversion.

GA

From the standpoint of effectiveness, track-independent loops are considered moreversatile, and therefore loops common to all tracks have not been included.

SE

Therefore, because tempo changes are not done independently for each track, thetempo cannot be changed as independent loops for each track are put together.

Standard MIDI File: Saturn7

Top Byte
Less than 7FH
Fixed at 80H
81H
82H
83H
84H
85H
86H
87H
88H
89H
8AH
8BH
8CH
8DH
8EH
8FH

Description
Note On(Skipped, cannot be used)
Rest
Reserve
Reference
Loop Start(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)
End of Track(Skipped, cannot be used)de

B0 - BF:*Skipped numbers exist as other events in theconversion operation in the converter memory.
80H is Note Off, 90H is Note On, and 8FH is adeleted event (event omitted by the Reference
command).
FFH is also skipped.

Top Byte

Description

90H
91H
92H
93H
94H
95H
96H
97H
98H
99H
9AH
9BH
9CH
9DH
9EH
9FH

(Skipped, cannot be used)
Poly-Key Pressure
Program Change
Channel Pressure
Pitch Bend (14-bit expression)
Pitch Bend (7-bit expression)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)nfi

A0 - AF:

Note On
Control rests and play flow
MIDI events other than Control
Changes
Make Control Changes and Control
Changes used with high-frequency
independent events
Gate/Step extension

Co

00 - 7F:
80 - 8F:
90 - 9F:nti
alFormat of Non-Tempo Tracks (Regular Tracks)
The following commands and events exist and are saved together in regular tracks.
Those items in the original standard MIDI file are events, and Reserve, Extend Gate
(Step) Time, and so on are commands (there is no clear distinction). These are explained in the following tables.

Description

Top Byte

Description

Top Byte

Description

A0H
A1H
A2H
A3H
A4H
A5H
A6H
A7H
A8H
A9H
AAH
ABH
ACH
ADH
AEH
AFH

Control change
Modulation
Breath control
Foot control
Main volume
PanpotExpression(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not Used)(Not Used)

B0H
B1H
B2H
B3H
B4H
B5H
B6H
B7H
B8H
B9H
BAH
BBH
BCH
BDH
BEH
BFH

Extend Gate Time 200H
400H
600H
800H
A00H
C00H
E00H
1000H
Extend Step Time 100H
200H
400H
600H
800H
1000H
1800H
2000H

C0H
C1H
C2H
C3H
C4H
C5H
C6H
C7H
C8H
C9H
CAH
CBH
CCH
CDH
CEH
CFH

(Not Used)(Not Used)(Not Used)(Not Used)(Not Used)(Not Used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)(Not used)SE

GA

Top Byte8

00 - 7FH: Note On
Interval(1 byte)Velocity(1 byte)Gate Time(1 byte)Step Time(1 byte)ntialStatus(1 byte)Status includes the status of subsequent data. Each bit has meaning.

D7 D6 D5 D4 D3 D2 D1 D0

de

0: Musical Interval is not omitted
1: Musical Interval is omitted (MusicalInterval same as previous note)
0: Velocity exists
1: Velocity is omitted

nfi

0: Gate Time exists
1: Gate Time is omitted
Most significant bit of Gate Time lengthCo

0: Step Time exists
1: Step Time is omitted
Upper 2 bits of Step Time length(D6 = 10th bit of Step Time; D5 = 9th bit)
Always 0

GA

The Musical Interval, Velocity, and Gate Time are omitted when they are the same as
the previous note (meaning Note On, not the preceding event).
The Step Time is omitted when it is the same as the preceding event (not limited tothe preceding Note On).
The Musical Interval and Velocity are expressed with 7 bits, as in MIDI.

SE

The Gate Time is 9 bits long to match the information in Status, and the Step Time is
10 bits long. If these are insufficient for certain note lengths, the Extend Gate (Step)
Time command can be put in front of the Note on.
If Gate time and Step time are omitted, of course, the Extend gate (step) time command is not output. These are not omitted, however, if there is the same data as thepreceding event at the top of an event group referenced by the Reference commandin a complete file (file in which repetition is detected), and therefore Note On takes
on a 5-byte length.
Standard MIDI File: Saturn9

81H(1 byte)Step(1 byte)ntial81H: Rest

SE

GA

Co

nfi

de

If the time until the first event to be converted is not zero at the top of a track, thiscommand is inserted at the top of the track. Because this command exists only at the
top of a track, and no more than one exists in one track, the 2nd-byte Step Tme ofthis command is not omitted.

1082H: Reserve
Number of
Repetitions(1 byte)

nti
al

82H
(1 byte)To avoid outputting an event each time the same event (except Note On) is repeatedthree or more times, this Reserve command is used to reduce the amount of data byreserving all in advance.

;Pitch Bend ( Value = 64);Reserve ( Reserved 4 events );Pitch Bend ( Value = 66 );Pitch Bend ( Value = 80 );Pitch Bend ( Value = 85 );Pitch Bend ( Value = 96 )nfi

95H , 40H , 01H
82H , 06H
42H , 05H
50H , 08H
55H , 04H
60H , 05Hde

The Reserve command is used to omit the top byte of the second and subsequent
events after some event is output without the top byte being omitted (it is possiblethat Step Time may be omitted). Some examples follow.

In principle, commands to be reserved are limited to those that appear repeatedly,
like those shown in the folllowing table.
Reserved
No
No
No
No
No
No
Yes
Yes
Yes
Yes
Yes

Top Byte
Description
A0H
Control change
A1H
Modulation
A2H
Breath control
A3H
Foot control
A4H
Main volume
A5H
PanpotA6H
Expression
B0H-B7H Extend Gate Time
B8H-BFH Extend Step Time

Reserved
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No

GA

Co

Top Byte
Description
7FH or less Note On
81H
Rest
82H
Reserve
83H
Reference
84H
Loop Start
8EH
End of Track
91H
Poly-key Pressure
92H
Program Change
93H
Channel Pressure
94H
Pitch Bend (14 bits)
95H
Pitch Bend (7 bits)* The Extend Gate (Step) Time command is not reserved, which means that no matter how many times the command is repeated, it is not omitted. It is possible that
the Extend Gate (Step) Time command will be inserted in intervals in which otherevents are omitted by the Reserve command.

SE* It is possible for multiple Extend Gate (Step) Time commands to appear in succession, but because this is only a 1-byte command with no data or Step Time otherthan the command byte, it becomes meaningless if it is omitted, and therefore it is
not subjected to reserve. Furthermore, due to the converter program provisions, it is
not possible even to know how many Extend Gate (Step) Time commands there areuntil actual output to the file. Therefore there is no means of reserving it. (A command already written to a file cannot be reserved.)

Standard MIDI File: Saturn11

83H: Reference
Byte position from
top of track forupper byte of top
event of referenced
event group

Lower byte

Number of
eventsreferenced(1 byte)

nti
al

83H
(1 byte)deThis command does not appear in a temporary file; it appears only in complete files.
The command reduces the amount of data by omitting the second and subsequent
events when the same event group (three events or more) appears multiple times ina track.

nfi

The two bytes following the command number 83H indicate the position of thereference destination. As explained earlier, the reference destination must be positioned before the command.
The last byte indicates the number of events to be referenced. The maximum
number of events is 255. The Extend Gate (Step) Time command is not counted in
the number of events. All other events are counted in the number of events.

Co

None of the data is omitted from the top event of the event group specified in thereference destination of this command. That is,• It is not reserved by the Reserve command• It is not subject to Step Time omission (all events, not only Note On)• It is not subject to omission of Musical Interval, Velocity, or Gate timeSE

GA

When the events at the reference destination become the object of the Extend Gate
(Step) Time command (described later in this document), the reference destination of
the Reference command becomes the position of the first Extend Gate (Step) Timecommand. Therefore a special data restoration operation is not required to read only
the specified number of events from the reference destination.

12

nti
al

84H: Loop Start
84H(1 byte)Step(1 byte)deThis command indicates the start position of an endless loop. Because this is not
automatically judged and inserted, the user must clearly specify the starting point of
the loop. When the user inserts a no. 31 Control Change (not yet defined in the
MIDI standard) during editing on a MIDI sequencer, the converter converts it to thiscommand.
If the play program reads 8EH (End of Track) in data that has been converted by theconverter and 84H (Loop Start) appears before the end of the track, the program
returns to that point and continues play.

Co

Loop and Tempo Changes

nfi

If multiple Number 31 Control Changes appear in one track, the converter displays
an error message and stops the conversion process. Therefore there can be no morethan one of these commands in one track in a converted file. Furthermore, theexistence of no more than one of these commands means that it will not be affectedby the Reference command or the Reserve command. Therefore the starting point of
the loop will not be omitted by the Reference command or the Reserve command.
Loops must be specified independently for each track. In other words, a common
loop cannot be specified for all tracks. Therefore the tempo cannot be changed in a
loop.

GA

In a standard MIDI file a loop command is not defined, but loops are required when
actually composing. When defining a loop command, one common for all tracks
and those independent for each track cannot exist together— for example, when theranges of an overall loop and of track-independent loops overlap. Also, a complex
loop may result in a different tune being played during play while composing on a
MIDI sequencer and after conversion.
From the standpoint of effectiveness, track-independent loops are considered moreversatile, and therefore loops common to all tracks have not been included.

SE

Therefore, because tempo changes are not done independently for each track, thetempo cannot be changed as independent loops for each track are put together.

Standard MIDI File: Saturn

13

8EH
(1 byte)This command indicates the end of a track.

91H: Poly-Key Pressure
Interval(1 byte)Value(1 byte)Step(1 byte)de91H(1 byte)ntial

8EH: End of Track

Musical Interval and Value are expressed with 7 bits, which is the same as in the
MIDI standard.

nfi

When the duration (Step Time) until the next event is the same as in the preceding
event (including Note On), Step is omitted. In this case, the 7th bit of Musical Interval is set to ON. As a result, the numerical value of Musical interval becomes greaterthan 80H.

92H(1 byte)Co

92H: Program Change
Tone Number(1 byte)Step(1 byte)Tone Number is expressed with 7 bits, which is the same as in the MIDI standard.

SEGA

The duration (Step Time) until the next event is omitted when it is the same as in thepreceding event (including Note On). In this case, the 7th bit of Tone Number is set
to ON. As a result, the numerical value of Tone Number becomes greater than 80H.

14

93H
(1 byte)Value(1 byte)ntial93H: Channel Pressure
Step(1 byte)Value is expressed with 7 bits, which is the same as in the MIDI standard.

SE

GA

Co

nfi

de

The duration (Step Time) until the next event is omitted when it is the same as in thepreceding event (including Note On). In this case, the 7th bit of Value is set to ON.
As a result, the numerical value of Value becomes greater than 80H.

Standard MIDI File: Saturn15

94H: Pitch Bend (14-Bit Expression)
Lower Byte
(LS)

Step
(1 byte)

nti
al

Value
Upper Byte
(MS)

94H
(1 byte)This command is not output when fade compression of Pitch Bend is specified in the preference settings. Value is expressed with two 7-bit bytes, which is thesame as in the MIDI standard (expression in the MIDI standard, however, is replacedwith an upper byte and a lower byte).

deThe duration (Step Time) until the next event is omitted when it is the same as in thepreceding event (including Note On). In this case, the 7th bit of the Value upperbyte is set to ON. As a result, the numerical value of the Value upper byte becomes
greater than 80H.

nfi

95H: Pitch Bend (7-Bit Expression)
95H(1 byte)Value(1 byte)Step(1 byte)Co

This command is output only when fade compression of Pitch Bend is specified in
the preference settings. D4 of the header flag becomes “1” at that time.
Value is expressed with 7 bits, which is the upper byte of the two 7-bit bytes normally used for Pitch Bend expression in MIDI. Only -64 to +63 can be expressed, butsince most of the keyboards available on the market output only about 64 steps up
and down anyway, there should be no problem with fade in actual use when only
the upper byte is used.

SEGA

The duration (Step Time) until the next event is omitted when it is the same as in thepreceding event (including Note On). In this case, the 7th bit of Value is set to ON.
As a result, the numerical value of Value becomes greater than 80H.

16

A0H: Control Change
Controller Type
(1 byte)Value(1 byte)Step Time(1 byte)

nti
al

A0H
(1 byte)Value is expressed with 7 bits, which is the same as in the MIDI standard. Step time
(duration until the next event) is omitted when it is the same as in the preceding
event (including Note On). In this case, the 7th bit of Controller Type is set to ON.
As a result, the numerical value of Controller Type becomes greater than 80H.

deThere are many types of controllers, but those most commonly used are defined as
independent events. This makes it possible to express Control Change in 3 bytes
instead of the normal 4 bytes.
The following table lists the Control Changes that are independent events.
Controller
Modulation
Breath control
Foot control
Main volume
PanpotExpression

Co

nfi

Top Byte of Event
A1H
A2H
A3H
A4H
A5H
A6H

GA

A1:
A2:
A3:
A4:
A5:
A6:

A1H - A6H
(1 byte)Modulation
Breath control
Foot control
Main volume
PanpotExpression

Value(1 byte)Step Time(1 byte)SE

Controllers often used from A0H (Control Change) have become independent
events.

Standard MIDI File: Saturn17

B0H - B7H: Extend Gate Timential

B0H - B7H
(1 byte)Extends the Gate Time of the Note On appearing last. Note On events can only havea 9-bit Gate Time. Therefore, in the case of a Note On event with a Gate Time longer
than can be expressed with 9 bits, this command must be used to extend the Gate
Time of the next Note On event.

deThis Extend Gate Time command is not output before events other than Note On.
Also, the Extend Gate Time command is not output before Note On events for which
Gate Time is omitted, regardless of the length of the Gate Time of the Note On.
The amount of extension is provided in stages, each of which is an independentcommand, as shown in the following table.

SE

GA
18

nfi

B0H
B1H
B2H
B3H
B4H
B5H
B6H
B7H

Length of Extension
(Hex)
200H
400H
600H
800H
A00H
C00H
E00H
1000H

Co

Command Number(Decimal)
512
1024
1536
2048
2560
3072
3584
4096

B8H - BFH(1 byte)ntialB8H - BFH: Extend Step Time

Extends the Step Time of the immediately following event. The expression width of
Step Time is 10 bits for Note On events and 8 bits for other events. The amounts ofStep Time expressed by these widths are 3FFH and FFH, respectively. In the case ofa Step Time that must be longer than this, the Extend Step Time command is used toextend the Step Time of the next event.

deBecause Note On events can be expressed with Step Times up to 3FFH even without
extension, an extension of less than 400H is not possible before Note On events.
The Extend Step Time command is not output before events for which Step Time isomitted, regardless of the length of the Step Time of the event

Command Number

Length of Extension
(Hex)
100H
200H
400H
600H
800H
1000H
1800H
2000H

(Decimal)
256
512
1024
1536
2048
4096
6144
8192

SE

GA

Co

B8H
B9H
BAH
BBH
BCH
BDH
BEH
BFH

nfi

The amount of extension is provided in stages, each of which is an independentcommand, as shown in the following table.

Standard MIDI File: Saturn

19

5.0

Abbreviation Rules

•
•
•
•
•

nti
al

The top byte (command number) of events and the Step Time are not omitted in thefollowing cases.
Top event of event groups referenced by the Reference command
Next event following the Reference command
Next event following the Loop Start command
Top of each track
Next event following the Rest commanddeThese cases may occur simultaneously. It is also possible that the ranges of event
groups referenced by the Reference command may overlap.

nfi

In cases other than those above, the Step Time may be omitted when it is the same as
the preceding event. In this case, the 7th bit of the data byte following the top byte
(command number) of the event is set to ON

SE

GA

Co

If the preceding event and event number are the same in cases other than thoseabove, and if the event is other than Note On, the top byte (command number) of
the event may be omitted by the Reserve command.

20