HP107
MIDI IMPLEMENTATION
Version 1.00
Date:June10, 2004
1. Receive data
■Channel Voice Messages
●Note off
Status 2nd byte 3rd byte
8nH kkH vvH
9nH kkH 00H
n = MIDI channel number: 0H-FH (ch.1-ch.16)
kk = note number: 00H-7FH (0-127)
vv = note off velocity: 00H-7FH (0-127)
●Note on
Status 2nd bytes 3rd byte
9nH kkH vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
kk = note number: 00H-7FH (0-127)
vv = note on velocity: 01H-7FH (1-127)
●Control Change
* The value specified by a Control Change message will not be reset even by a Program
Change, etc.
❍Bank Select (Controller number 0, 32)
Status 2nd bytes 3rd byte
BnH 00H mmH
BnH 20H llH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
mm, ll = Bank number: 00H, 00H-7FH, 7FH (bank.1-bank.16384)
* Bank Select processing will be suspended until a Program Change message is received.
❍Modulation (Controller number 1)
Status 2nd bytes 3rd byte
BnH 01H vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Modulation depth: 00H-7FH (0-127)
❍Portamento Time (Controller number 5)
Status 2nd bytes 3rd byte
BnH 05H vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Portamento Time: 00H-7FH (0-127), Initial value = 00H (0)
* This adjusts the rate of pitch change when Portamento is ON or when using the
Portamento Control. A value of 0 results in the fastest change.
❍Data Entry (Controller number 6, 38)
Status 2nd bytes 3rd byte
BnH 06H mmH
BnH 26H llH
n = MIDI channel number:0H-FH (ch.1-ch.16)
mm, ll = the value of the parameter specified by RPN
mm = MSB, ll = LSB
❍Volume (Controller number 7)
Status 2nd bytes 3rd byte
BnH 07H vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Volume: 00H-7FH (0-127), Initial Value = 7FH (127)
❍Panpot (Controller number 10)
Status 2nd bytes 3rd byte
BnH 0AH vvH
n = MIDI channel number:0H-FH (ch.1-ch.16)
vv = pan: 00H-40H-7FH (Left-Center-Right), Initial Value = 40H (Center)
❍Expression (Controller number 11)
Status 2nd bytes 3rd byte
BnH 0BH vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Expression: 00H-7FH (0-127), Initial Value = 7FH (127)
❍Hold 1 (Controller number 64)
Status 2nd bytes 3rd byte
BnH 40H vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Control value: 00H-7FH (0-127)
❍Portamento (Controller number 65)
Status 2nd bytes 3rd byte
BnH 41H vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Control value: 00H-7FH (0-127) 0-63 = OFF, 64-127 = ON
❍Sostenuto (Controller number 66)
Status 2nd bytes 3rd byte
BnH 42H vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Control value: 00H-7FH (0-127) 0-63 = OFF, 64-127 = ON
❍Soft (Controller number 67)
Status 2nd bytes 3rd byte
BnH 43H vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Control value: 00H-7FH (0-127) 0-63 = OFF, 64-127 = ON
* Some Tones will not exhibit any change.
❍Portamento control (Controller number 84)
Status 2nd bytes 3rd byte
BnH 54H kkH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
kk = source note number: 00H-7FH (0-127)
*A Note-on received immediately after a Portamento Control message will change
continuously in pitch, starting from the pitch of the Source Note Number.
* If a voice is already sounding for a note number identical to the Source Note Number,
this voice will continue sounding (i.e., legato) and will, when the next Note-on is
received, smoothly change to the pitch of that Note-on.
* The rate of the pitch change caused by Portamento Control is determined by the
Portamento Time value.
Example 1.
On MIDI Description Result
90 3C 40 Note on C4 C4 on
B0 54 3C Portamento Control from C4 no change (C4 voice still
sounding)
90 40 40 Note on E4 glide from C4 to E4
80 3C 40 Note off C4 no change
80 40 40 Note off E4 E4 off
Example 2.
On MIDI Description Result
B0 54 3C Portamento Control from C4 no change
90 40 40 Note on E4 E4 is played with glide
from C4 to E4
80 40 40 Note off E4 E4 off
❍Effect 1 (Reverb Send Level) (Controller number 91)
Status 2nd bytes 3rd byte
BnH 5BH vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Control value: 00H-7FH (0-127), Initial Value = 00H (0)
* Some Tones are not capable of being panned all the way to the left or right.
Copyright © 2004 ROLAND CORPORATION
All rights reserved. No part of this publication may be reproduced in any form without the written permission of ROLAND CORPORATION.
1
Version 1.00 Date:June10, 2004
❍Effect 3 (Chorus Send Level) (Controller number 93)
Status 2nd bytes 3rd byte
BnH 5DH vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Control value: 00H-7FH (0-127), Initial Value = 00H (0)
❍RPN MSB/LSB (Controller number 100, 101)
Status 2nd bytes 3rd byte
BnH 65H mmH
BnH 64H llH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
mm = upper byte (MSB) of parameter number specified by RPN
ll = lower byte (LSB) of parameter number specified by RPN
* The value specified by RPN will not be reset even by messages such as Program Change
or Reset All Controller.
**RPN**
The RPN (Registered Parameter Number) messages are expanded control changes, and each
function of an RPN is described by the MIDI Standard.
To use these messages, you must first use RPN MSB and RPN LSB messages to specify the
parameter to be controlled, and then use Data Entry messages to specify the value of the
specified parameter. Once an RPN parameter has been specified, all Data Entry messages
received on that channel will modify the value of that parameter. To prevent accidents, it is
recommended that you set RPN Null (RPN Number = 7FH/7FH) when you have finished
setting the value of the desired parameter.Refer to “4. Examples of actual MIDI messages”
<Example 4>.
On this instrument, RPN can be used to modify the following parameters.
RPN Data entry
MSB LSB MSB LSB Explanation
00H 00H mmH --- Pitch Bend Sensitivity
mm: F00H-18H (0-24 semitones)
ll: ignored (processed as 00h)
specify up to 2 octaves in semitone steps
00H 01H mmH llH Master Fine Tuning
mm, ll: 00 00H - 40 00H - 7F 7FH
(-100 - 0 - +99.99 cents)
Refer to 4. Supplementary material,
“About tuning” (p. 6)
00H 02H mmH --- Master Coarse Tuning
mm: 28H - 40H - 58H (-24 - 0 - +24 semitones)
ll: ignored (processed as 00h)
00H 05H mmH llH Modulation Depth Range
mm: 00H - 04H (0 - 4 semitones)
ll: 00H - 7FH (0 - 100 cents)100/128 Cent/Value
7FH 7FH --- --- RPN null
Set condition where RPN and NRPN are
unspecified. The data entry messages after set
RPN null will be ignored. (No Data entry
messages are required after RPN null).
Settings already made will not change.
mm, ll: ignored
■Channel Mode Messages
●All Sounds Off (Controller number 120)
Status 2nd byte 3rd bytes
BnH 78H 00H
n = MIDI channel number: 0H-FH (ch.1-ch.16)
*When this message is received, all currently-sounding notes on the corresponding
channel will be turned off immediately.
●Reset All Controllers (Controller number 121)
Status 2nd byte 3rd bytes
BnH 79H 00H
n = MIDI channel number: 0H-FH (ch.1-ch.16)
*When this message is received, the following controllers will be set to their reset values.
Controller Reset value
Pitch Bend Change ±0 (Center)
Modulation 0 (off)
Expression 127 (max)
Hold 1 0 (off)
Portamento 0 (off)
Sostenuto 0 (off)
Soft 0 (off)
RPN unset; previously set data will not change
●Local Control (Controller number 122)
Status 2nd byte 3rd bytes
BnH 7AH vvH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
vv = Control value: 00H, 7FH (0,127)
00H: Local Off
7FH: Local On
●All Notes Off (Controller number 123)
Status 2nd byte 3rd bytes
BnH 7BH 00H
n = MIDI channel number: 0H-FH (ch.1-ch.16)
*When All Notes Off is received, all notes on the corresponding channel will be turned
off. However if Hold 1 or Sostenuto is ON, the sound will be continued until these are
turned off.
●OMNI OFF (Controller number 124)
Status 2nd byte 3rd bytes
BnH 7CH 00H
n = MIDI channel number: 0H-FH (ch.1-ch.16)
* The same processing will be carried out as when All Notes Off is received. *1
●Program Change
Status 2nd bytes
CnH ppH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
pp = Program number: 00H-64H (prog.1-prog.101)
* After a Program Change message is received, the sound will change beginning with the
next Note-on. Voices already sounding when the Program Change message was
received will not be affected.
●Pitch Bend Change
Status 2nd byte 3rd bytes
EnH llH mmH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
mm, ll = Pitch Bend value: 00 00H - 40 00H - 7F 7FH (-8192 - 0 - +8191)
●OMNI ON (Controller number 125)
Status 2nd byte 3rd bytes
BnH 7DH 00H
n = MIDI channel number: 0H-FH (ch.1-ch.16)
* The same processing will be carried out as when All Notes Off is received. *1
●MONO (Controller number 126)
Status 2nd byte 3rd bytes
BnH 7EH mmH
n = MIDI channel number: 0H-FH (ch.1-ch.16)
mm = mono number: 00H-10H (0-16)
* The same processing will be carried out as when All Notes Off is received. *1
2
Version 1.00 Date:June10, 2004
●POLY (Controller number 127)
Status 2nd byte 3rd bytes
BnH 7FH 00H
n = MIDI channel number: 0H-FH (ch.1-ch.16)
* The same processing will be carried out as when All Notes Off is received. *1
Note:
*1 The Mode doesn’t change (OMNI OFF, POLY remains).
■System Realtime Message
●Active Sensing
Status
FEH
*When Active Sensing is received, the unit will begin monitoring the intervals of all
further messages. While monitoring, if the interval between messages exceeds 420 ms,
the same processing will be carried out as when All Sounds Off, All Notes Off and Reset
All Controllers are received, and message interval monitoring will be halted.
■System Exclusive Message
Status Data byte Status
F0H iiH, ddH, ......, eeH F7H
F0H: System Exclusive Message status
ii = ID number: an ID number (manufacturer ID) to indicate the manufacturer whose
Exclusive message this is. Roland’s manufacturer ID is 41H.
ID numbers 7EH and 7FH are extensions of the MIDI standard;
Universal Non-realtime Messages (7EH) and Universal Realtime
Messages (7FH).
dd,...,ee = data: 00H-7FH (0-127)
F7H: EOX (End Of Exclusive)
bbH Address: middle byte of the starting address of the transmitted data
ccH Address LSB: lower byte of the starting address of the transmitted
data
ddH Data: the actual data to be transmitted. Multiple bytes of data are
transmitted starting from the address.
:
:
eeH Data
sum Checksum
F7H EOX (End Of Exclusive)
* Regarding the Address please refer to “Parameter Address Map (Model ID = 00H 7EH)”
(p. 5).
* If “Data Set 1” is transmitted successively, there must be an interval of at least 40 ms
between packets.
* Regarding the checksum please refer to “Supplementary material” (p. 5).
The System Exclusive Messages received by this instrument are; Universal Non-realtime
System Exclusive messages and Data Set (DT1).
●Universal Non-realtime System Exclusive Messages
❍Identity Request Message
Status Data byte Status
F0H 7FH, 10H, 06H, 01H F7H
Byte
F0H Exclusive status
7FH ID number (universal realtime message)
10H Device ID
06H Sub ID#1 (General Information)
01H Sub ID#2 (Identity Request)
F7H EOX (End Of Exclusive)
* Device ID = 10H or 7FH
Explanation
●Data transmission
This instrument can receive parameters using System Exclusive messages.
The exclusive message of HP107 data has a model ID of 00 7EH and a device ID of 10H (17).
❍Data set 1DT1
This is the message that actually performs data transmission, and is used when you wish to
transmit the data.
Status
F0H 41H, 10H, 00H, 7EH, 12H, aaH, bbH, ccH, ddH, ... eeH, sum F7H
Byte Explanation
F0H Exclusive status
41H ID number (Roland)
10H Device ID
00H Model ID
7EH Model ID (HP107)
12H Command ID (DT1)
aaH Address MSB: upper byte of the starting address of the transmitted
Data byte Status
data
3