Kraftor-SpeakJet-MIDI

Media

 

User Manual

Version 1.0

The Kraftor SpeakJet MIDI is a MIDI-controlled interface for the SpeakJet speech synthesizer. It lets you trigger the
SpeakJet’s allophones and built-in sound effects from MIDI notes, and control volume, pitch, and bend/speed parameters
from MIDI messages.

Version History

  • v1.0 (2026-04-17) : Initial SpeakJet MIDI firmware

MIDI Channel Configuration

The firmware listens in MIDI omni mode so it can receive both the phoneme channel and the sound effect
channel. It then checks the incoming MIDI channel and routes notes to the correct SpeakJet code bank.

No DIP switch channel setup is required for this firmware version.
MIDI Channel Function Note Range SpeakJet Codes
Channel 1 Allophones 36-107 128-199
Channel 2 Sound effects 36-90 200-254

MIDI Messages

Note On – SpeakJet Phoneme and Sound Triggering

MIDI notes trigger SpeakJet codes. On channel 1, note 36 is code 128, IY. On channel 2, note 36 is code
200, ROBOT_0.

  • Channel 1: notes 36-107 trigger SpeakJet allophone codes 128-199.
  • Channel 2: notes 36-90 trigger SpeakJet codes 200-254.
  • Notes below 36: ignored
  • Notes above each bank range: ignored
MIDI Note SpeakJet Code Label
36 128 IY
37 129 IH
38 130 EY
39 131 EH
40 132 AY
41 133 AX
42 134 UX
43 135 OH
44 136 AW
45 137 OW
46 138 UH
47 139 UW
48 140 MM
49 141 NE
50 142 NO
51 143 NGE
52 144 NGO
53 145 LE
54 146 LO
55 147 WW
56 148 RR
57 149 IYRR
58 150 EYRR
59 151 AXRR
60 152 AWRR
61 153 OWRR
62 154 EYIY
63 155 OHIY
64 156 OWIY
65 157 OHIH
66 158 IYEH
67 159 EHLL
68 160 IYUW
69 161 AXUW
70 162 IHWW
71 163 AYWW
72 164 OWWW
73 165 JH
74 166 VV
75 167 ZZ
76 168 ZH
77 169 DH
78 170 BE
79 171 BO
80 172 EB
81 173 OB
82 174 DE
83 175 DO
84 176 ED
85 177 OD
86 178 GE
87 179 GO
88 180 EG
89 181 OG
90 182 CH
91 183 HE
92 184 HO
93 185 WH
94 186 FF
95 187 SE
96 188 SO
97 189 SH
98 190 TH
99 191 TT
100 192 TU
101 193 TS
102 194 KE
103 195 KO
104 196 EK
105 197 OK
106 198 PE
107 199 PO

Channel 2 Sound Effect Bank

On MIDI channel 2, sound effects start again at note 36:

  • Note 36 = code 200, ROBOT_0
  • Note 45 = code 209, ROBOT_9
  • Note 46 = code 210, ALARM_0
  • Note 55 = code 219, ALARM_9
  • Note 56 = code 220, BEEP_0
  • Note 65 = code 229, BEEP_9
  • Note 66 = code 230, BIO_0
  • Note 75 = code 239, BIO_9
  • Note 76 = code 240, DTMF_0
  • Note 87 = code 251, DTMF_R
  • Note 88 = code 252, SONAR_PING
  • Note 89 = code 253, PISTOLSHOT
  • Note 90 = code 254, WOW
  • Note On: Sets volume from velocity, then sends the selected SpeakJet code.
  • Note Off: No action. SpeakJet sounds play to completion.

Velocity – Volume

Sets the master volume level. Range 0-127; default 96.

Note On velocity sets volume per phoneme or sound effect.

Velocity Effect
0 Silent or minimum volume
1-127 Increasing SpeakJet volume

Pitch Bend – Pitch Control

Sets vocalization pitch, making the voice sound higher or lower. For singing, the SpeakJet datasheet cites about three
octaves, approximately 32 Hz-240 Hz. Pitch only affects voiced sounds. Range
0-255; default 88. 0 means 0 Hz and will not really vocalize; values
under about 30 tend to sound clicky rather than voice-like.

MIDI pitch bend controls pitch. The 14-bit pitch bend range is mapped to
20-255.

Pitch Bend Value SpeakJet Pitch Value Effect
-8192 20 Lowest mapped pitch
0 about 137 Center pitch
+8191 255 Highest mapped pitch

The minimum mapped pitch is 20 to avoid glitches at the bottom of the SpeakJet pitch range.


CC1 – Mod Wheel / Bend

Sets frequency bend: adjusts oscillator output frequencies so voicing shifts from a deep, hollow
character toward a high, metallic one. Range 0-15; default 5.

MIDI CC1 controls bend. MIDI values 0-127 are mapped linearly to
bend values 0-15.

CC1 Value SpeakJet Bend Value
0 0
127 15

CC5 – Speed

Sets play speed. Range 0-127; default 114.

MIDI CC5 controls speed per phoneme or sound effect.

CC5 Value Effect
0 Slowest mapped speed
127 Fastest mapped speed

Ignored MIDI Messages

  • Other Control Change messages not listed above
  • Note Off messages

Quick Reference Table

MIDI Message Function Range
Note On Ch 1 Trigger SpeakJet allophones Notes 36-107, codes 128-199
Note On Ch 2 Trigger SpeakJet sound effects Notes 36-90, codes 200-254
Velocity Volume 0-127
Pitch Bend Pitch -8192 to +8191, mapped to 20-255
CC1 Bend 0-127, mapped to 0-15
CC5 Speed 0-127

Connections

The SpeakJet MIDI firmware accepts MIDI from:

  • USB MIDI
  • Serial MIDI on the hardware serial MIDI input

Both MIDI inputs are active simultaneously and use the same MIDI handlers.

SpeakJet Module Connection

The SpeakJet chip is controlled through the SpeakJet UART at 9600 baud. The firmware resets the SpeakJet on startup,
then sets the initial volume to maximum.

OLED Display

If an OLED display is detected at I2C address 0x3C, it shows:

  • SPEAKJET MIDI on startup
  • The firmware version
  • The last triggered SpeakJet label

After inactivity, the display switches to a simple blinking eyes screensaver. Sending a new MIDI note wakes the display
and shows the triggered label again.

Tools

You can use the following tool to convert text into a sequence of MIDI phonemes

Firmware

Do not use this firmware for Emy or Emy Terminal.

How to install the firmware on Kraftor