Programming the Pocket Miku, Details, Part 5

Not all SysEx messages follow the exact same format. What they do share in common is that they start with “F0” (start of SysEx) and end with “F7” (end of SysEx).

The following information is taken from Polymoog’s NSX-39 MIDI Guide (in Japanese). The SysEx messages here are used to directly take advantage of the Pocket Miku hardware (specifically, changing lyrics strings, and using the Miku as a MIDI controller. The format is:

F0 – start of message
43 – Manufacturer ID (Yamaha)
790911 – Code to access the NSX-39 lyrics system
do d1 d1… – data
F7 – end of message

Or, in string format (remove the spaces before using in Java):

F0 43 79 09 11 do d1 d2 d3 d4 d5 … F7
Example: F0 43 79 09 11 01 F7  // Get Version

Contents of the data string are:

Request Version Data          d0=0x01 d1=N/A
Version Data Reply            d0=0x11 d1=NSX-39 version data
Lyrics Entry                  d0=0x0A d1=lyrics slot number   d2=character data
Request Command Slot Details  d0=0x0B d1=command slot number
Command Slot Reply            d0=0x1B d1=command
Change Command Slot           d0=0x0C d1=command slot number  d2=command
Command Direct Entry          d0=0x0D d1=command
Lyric Number Data Request     d0=0x0E d1=N/A
Lyric Number Data Reply       d0=0x1E d1=Slot number          d2=Slot data
Lyric Details Request         d0=0x0F d1=Slot number
Lyric Details Reply           d0=0x1F d1=character count      d2=character 1, etc.
Switch State                  d0=0x20 d1=000000ih             d2=0gfedcba
NSX-39 Status                 d0=0x21 d1=Status


Using SysEx to upload new lyrics to the NSX-39

There are 16 lyrics slots, numbered 0x00 to 0x0F, and slots 1-15 can hold up to 64 characters (15*64=960 characters total) each. (Slot 0 sends the lyrics to the USB port as MIDI OUT).) The data is written to Flash memory so the lyrics will be recalled on power On.

d0 = 0A
d1 = slot number (1-15)
d2-d65 = phoneme number data
Example: Writing “Konnichiwa Arigato” to the “A” button (slot 1) (Mistake in NSX-39 MIDI Guide on page 8.)

F0 43 79 09 11 0A 01 09 01 7B 40 36 77 00 70 0A 2D 02 F7

You don’t write to slot 0, since it’s used to transfer data to CPU RAM.
Slot 0 isn’t selectable from the NSX-39 front panel.

Slots 1-15 are stored to FLASH ROM. Writing to these slots can take several milliseconds, during which time the NSX-39 can not respond to MIDI messages.

During the write, the SysEx message status will read: F0 43 79 09 11 21 01 F7 (i.e. – Busy)
When writing is complete, it will change to: : F0 43 79 09 11 21 00 F7 (Not busy)

Slot 1-5: “A”, “I”, “U”, “E”, “O”
Slot 6-10: SHIFT+”A” – SHIFT+”O”
Slot 11-15: “VIBRATO”+”A” – “VIBRATO”+”O”

The phoneme list appears on page 10 of the MIDI Guide. You can have up to 64 characters per slot. The character numbers are 2-character pairs, and the data string is terminated with “F7”.
When the string is written to the NSX-39, the playback pointer will default to the first character in the list (position 0).


Using SysEx to Enter Commands

The Pocket Miku uses a 28-bit instruction format to customize the front panel buttons and keyboard operations.

d0 = 0D
d1-d4 = command (d1=bits 27-21, d2=b20-b14, d3=b13-b7, d4=b6-b0)

The full command table is on page 23 of Polymoog’s MIDI Guide.

Norma Model: 0A 08 00 00
Do Rei Mi Mode: 0A 08 01 00
Slot Select: 09 03 00 00 09 03 00 (slot number)
Slot select lets you change data for that slot.
Lyric Playback Location Select: 09 02 00 00 09 02 00 (location)
Changes the playback pointer to (location)
Note ON: 08 09 00 00 08 09 (Note #) (Velocity)
Note OFF: 08 08 00


Programming the Command Slots

The command slots are numbered 0-127, but only 0-119 are writable.
One slot can contain up to 255 characters.
Command slots are messages that are sent when a specific event occurs, such as pressing the SHIFT key or releasing VIBRATO+”A”. Each slot corresponds to one event.

d0 = 0C
d1 = Slot number
d2-d5 = 4-byte command

If an incorrect command is issued, the status message F0 43 79 09 11 21 02 F7 will indicate the error status (21 02 = error).

You can reset the command slot with F0 43 79 09 11 0C slot number F7

To clear the command slot: F0 43 79 09 11 0C slot number F7 0C 01 00 00 F7

The command slot table is on pages 28-30 of Polymoog’s MIDI guide.


Reading the Command Slots, Misc.

d0= 0B / 1B

To read a command slot, send F0 43 79 09 11 0B F7
The results will be returned on F0 43 79 09 11 1B …. F7

In a related fashion, getting version information (01), Lyric Number (0E) and Lyric Data (0F) have matching send/receive pairs (01/11), (0E/1E) and (0F/1F). In Java, to receive data from the NSX-39, you have to open up a transmitter, attach a sequencer to the transmitter, then read the track object to see if any data has arrived. It’s very convoluted.

The command slot table is on pages 28-30.


Reading the Switches

d0 = 20
d1 = 000000ih
d2 = 0gfedcba

bits 0-1 of d1 show the states of switches SW8 and SW9. bits 0-6 of d2 show switches SW1-SW7. When the user presses one of the front panel buttons, the associated bit will toggle between 1 and 0. This seems to be a read-only command.

SW1 = A
SW2 = I
SW3 = U
SW4 = E
SW5 = O
SW6 = Vibrato
SW7 = Shift
SW8 = Vol. Up
SW9 = Vol. Down

The following is transmitted by the NSX-39 when the “A” button is pressed.

F0 43 79 09 11 20 00 01 F7


System Status

The system status message indicates the current MIDI status of the NSX-39. This is automatically returned by the NSX-39, so to read it in Java, you need to open a Transmitter and read Sequencer Track data.

d0 = 21
d1 = status
(status: 00 = Not busy, 01 = Busy, 02 = Error)

Received error status:

F0 43 79 09 11 21 02 F7


Customizing the NSX-39 (Using the 0D command mode)

Certain operations can only be performed if the Pocket Miku is in NSX-1 Compatibility Mode, while other commands only work if Compatibility Mode is off. This mode can be switched using the SysEX command entry message (0D).

ON – 0A 06 01 00
OFF – 0A 06 00 00
MIDI Reset – 0A 07 00 00

Example, turning Compatibility Mode ON:

F0 43 79 09 11 0D 0A 06 01 00 F7

Example, turning Compatibility Mode OFF:

F0 43 79 09 11 0D 0A 06 00 00 0A 07 00 00 F7

If you want to use the NSX-39 stylus to control an external device without the unit making sounds itself, first switch to Normal mode:

F0 43 79 09 11 0D 0A 08 00 00 F7

Then, tell the NSX-39 to send the character data to Lyrics Slot 0:

F0 43 79 09 11 0A 00 mm F7

where “mm” is the Japanese phoneme character list you want to play, up to 64 characters. Now, when you touch the stylus to the carbon keyboard, the character data will go out to the external MIDI device.

While playing a lyrics string to an external device, you can decide to reposition the “current character pointer” to jump to a different point in the string. The commands are:

Set pointer: 09 05 00 00
Revoice: 08 01 00 00
Pointer increment: 09 01 00 00

Full string example:

F0 43 79 09 11 0D 09 05 00 00 08 01 00 00 09 01 00 00 F7

Adding a “click” sound when you press a button

The following is an example of the DIRECT_MIDI_3 command mode coupled with changing the instructions stored at a specific command slot. Command slots generally refer to push button status, such as switch 1 pressed, or SHIFT+ switch 2 released. In this mode, you send three 8-bit characters as four 7-bit characters with padded leading 0’s. For example, say you want to play the Open Triangle instrument from the Drum Kit sound bank when you press the SHIFT key. The normal three 8-bit string would be:

99 51 65

Where 99 = NOTE ON for channel 9
51 = note number for the Open Triangle
65 = The value to use for velocity

Removing bit 8 of each of the 3 bytes and padding with leading 0’s gives you the equivalent four 7-bit string of:

04 65 22 65

Then, to specify SHIFT pressed, use CS_SW_7D (11) from the table on page 28 in Polymoog’s MIDI guide as follows:

F0 43 79 09 11 0C 11 04 65 22 65 F7

To return the SHIFT key to normal, use:

F0 43 79 09 11 0C 11 00 F7

(0C = Change Command Slot)
(11 = Slot #11 : CS_SW_7D : SHIFT key pressed)


Programming the Pocket Miku, Details, Part 4

XG is something that Yamaha came up with, and refers to Yamaha EXtended General MIDI. This is actually the easiest way to change Reverb, Chorus and Variation, although most of these effects don’t do much that I can tell (Reverb is the most noticeable). To determine what each address changes, you need to refer to the subsequent XG Parameter Change Table.

First, look at the subtable for the XG system. Address 00 00 7E is “XG System ON”.
You need this one.

XG Parameter Changes
F0 43 1n 4C hh mm ll dd F7

F0 43 – Fixed.
1n – n = channel number (0-F). Doesn’t seem to matter which number you use.
4C – Fixed.
hh mm ll – High, middle, low address. You get this from the other tables.
dd – 1 or 2 bytes of data, determined by the address you pick.
F7 – Fixed.

Turn on the XG system:
F0 43 10 4C 00 00 7E 00 F7 // In java, no spaces!

Now, if you go to the XG Parameter Change Tables, look for the second one labeled “Effect 1”. This is for Reverb. The tables for Chorus and Variation will follow the same pattern. The first three columns give the address to write data to, and the first row is the master effect setting. For the first row, you specify which Reverb preset you want (Room 1, Room 2, Canyon) using 2 bytes. The subsequent rows access specific parameters (wet/dry, delay, filter cutoff feedback, etc.) The presets are given in the Reverb Block Effect Type table, and the Effect Parameter Lists tables describe which parameters are available for which preset (that is, if you use Room 1 you get one set of parameters, if you use White Room or Tunnel you get a different set).


Use Reverb Room 1:
F0 43 10 4C 02 01 00 02 16 F7

F0 43 – Fixed
10 – 1 + channel number
4C – Fixed.
02 01 00 – Program reverb block
02 16 – Use the Room 1 preset
F7 – End of message

Once you’ve selected the Reverb preset (Room 1), you can change Wet/Dry. Look in the table for “Hall1/2 … Room1/2 … Stage1/2…” Wet/Dry is parameter number 10. Go back to the XG table for Effect1. Parameter number 10 is at address “02 01 0B” and takes one byte of data.

Change Wet/Dry for Room 1 to 0x2D:
F0 43 10 4C 02 01 0B 2D F7  // In Java, no spaces!

As mentioned above, so far Reverb is the only effect that I can noticeably detect changing, and Wet/Dry and Feedback are the two parameters that have equally big impacts. I think I have an advantage, using Java over a commercial sequencer, in that I’ve put controls in the applet to let me interactively change parameters like Wet/Dry with a slider, so I can tell immediately what some parameter does without having to hand enter individual new values into a data entry field.

The last remaining XG system option is specifically for controlling the Pocket Miku. For this, we need to go to the Gakken document written by a guy calling himself Polymoog. The NSX-39 MIDI Guide can be found on the Otona no Kagaku website. Like the Pocket Miku Perfect Guide, this one is all in Japanese, but most of what’s in the Perfect Guide was lifted directly from Polymoog’s document.

Note that the Pocket Miku isn’t a Yamaha product, and everything specific to the Miku was created by Gakken. The following SysEx messages are Miku-specific and not described in the Yamaha documentation.

The eVocaloid has command slots that you can reprogram. You’re writing to Flash memory so that your changes will remain in effect after you turn the machine off, and you can use the Miku as a MIDI controller (sending to MIDI OUT).

I really wish there were more examples and more data tables. Some of the examples are for attaching a “keypress” sound to the buttons, checking whether the buttons are on or off, and changing the “lyrics” for what Miku sings. But the examples are kind of incomplete.

From the Yamaha MIDI spec:

Changing Phonetic symbols:

F0 43 79 00 50 1m dd … F7

F0 43 79 00 50 – Fixed.
1m – 0=replace, 1=append
dd – List of phonetic symbols (ASCII only, space is [SP], comma is [,])

That’s all we get from Yamaha, so you can see that it’s a bit lacking. Polymoog’s guide and the Perfect Guide are a little better, but not by too much.

Reprogramming one of the 15 voice slots:

F0 43 79 09 11 0A 01 0D0D0D43062973 F7

F0 – Start of SysEx string
43 79 09 11 – Reprogram Pocket Miku
0A – Enter lyrics mode
01 – Slot number (Button “A” on the front panel. See below.)
0D0D0D43062973 – Data values for the sounds “Ge ge ge no Kitaro”
F7 – End of SysEx string

(Slot number: 01-15. 1-5 = “A”-“O”; 6-10 = SHIFT+”A”-“O”; 11-15= VIBRATO+”A”-“O”)

The hex codes for the Japanese lyrics can be found on page 10 of Polymoog’s guide.

Other examples from the Perfect Guide/Polymoog’s document:

Return command slot to default:
F0 43 79 09 11 0C nn 00 F7 (“nn” = command slot number)
Assign triangle instrument voice to the Shift key:
F0 43 79 09 11 0C 11 04 652265 F7

(0C 11 = Program command slot 11)
(04 65 22 65 -> 65 06 65 converts to “play triangle”. 8-bit encoding converted to 7-bit.)

This last example is the trickiest to explain. The SysEx command “0C” needs to have the data bytes converted to 7-bits long each. Because bytes are normally 8 bits, you need to write out the data on a piece of paper, using only the lower 7 bits of each byte, and then rewrite them as 8-bit bytes. So, while the data string contains “04652265”, the original data was “99 51 65”. “0x99” = “MIDI Note ON for Channel 9”. “0x51” = “Open Triangle” from the Drum Kit instruments table. “0x65” = Note ON velocity of 101.
Reading button status (Button “A” is ON):
F0 43 79 09 11 20 00 01 F7

20 = Read buttons.
00 01 – 000000ih 0gfedcba

“A” = SW1, “O” = SW5, Vibrato = SW6, Shift = SW7, Vol Up = SW8, Vol Down = SW9

In the example, “00 01” means that the “A” button (AKA SW1) is turned on. “00 00” is “all buttons Off”. “00 04” would mean the SHIFT button is pressed.

“0304” should be interpreted as “Volume Up + Volume Down + U”, which is the same as “Turn on General MIDI”.

youtube video direct link.

Video of the Java app in action.

Programming the Pocket Miku, Details, Part 1

The Miku, AKA – the NSX-39, is based on the Yamaha NSX-1 chip, which is the heart of the Vocaloid products, and includes the eVocaloid system. It has a USB connector, so you can plug it into your PC or Mac, and run it using any sequencer software you like (the Perfect Guide book focuses mainly on Garage Band). Most of the examples in the Perfect Guide revolve around tweaking the sequencer to customize it for the Miku, or showing how to send SysEx messages within the body of a song. But, if you have Java, you can create your own applet to make the Miku do what you want as a regular synthesizer.

The starting point is the Yamaha MIDI spec doc. I wish it was more instructional, but it’s basically just a bunch of code tables. The first table in the Yamaha doc has the channel messages. Since the Yamaha MIDI spec is in English, there’s no point in repeating all the codes here. The important things to note are the Control Change and Mode Messages, which both use the “Bn” status byte (where “n” is the MIDI channel you want to control, 0-15. The Pocket Miku can play 16 instruments simultaneously, with channel 0 assigned to eVocalod and channel 9 is the internal General MIDI drum kit.)


The Vocaloid system apparently (I’m still trying to understand this, since the documentation is all in Japanese) divides speech phonemes up into “heads”, “bodies” and “tails”, combined with “joints” and “shots” (as mentioned in the product brief). These phoneme components can be mixed and matched as part of Yamaha’s “Real Acoustic Sound” (RAS). I mention this because the Yamaha MIDI doc shows which MIDI options apply to which operating mode, including GM (General MIDI), eVocaloid and RAS. But, the Pocket Miku Perfect Guide Book only shows the GM and eVocaloid modes. So far, I haven’t found any documentation on how to program the RAS mode and I’m thinking that Miku doesn’t support it.

The other reason for mentioning RAS is that in the MIDI doc, there are three sound banks, which you can select using Control Change: “Normal” (0x00), “Drum Kit” (0x7F) and “RAS” (0x08). The Perfect Guide only gives the “Normal” and “Drum Kit” banks. The “Normal” bank contains the standard 128 instrument voices that all MIDI devices support. The “Drum Kit” bank is actually the percussion voices available on channel 9 of the “Normal” bank.


To select sound banks in Java:

ShortMessage myMsg1 = new ShortMessage();
ShortMessage myMsg2 = new ShortMessage();
int channel = 1;  // 0 to 15
myMsg1.setMessage(ShortMessage.CONTROL_CHANGE + channel, 0x00, msb);  // MSB = 0x00 or 0x7F.
myMsg2.setMessage(ShortMessage.CONTROL_CHANGE + channel, 0x20, 0x00);
nsxRcvr.send(myMsg1, -1);
nsxRcvr.send(myMsg2, -1);

To select specific instrument voices within the selected bank:

myMsg1.setMessage(ShortMessage.PROGRAM_CHANGE + channel, n, 0);  // n = 0x00 – 0x7F
nsxRcvr.send(myMsg1, -1);

As mentioned above, the NSX-39 supports all 16 MIDI channels, with numbering starting at 0 (the Perfect Guide starts numbering at 1). Channel 0 is for the eVocaloid; 9 is the Drum Kit.

To select the channel, look closer at the above code:

channel = 0; // For channel 0.

CC List:

The other CC parameters may need a little description. Note that not all of them apply to General MIDI or eVocaloid. Also, you need to turn General MIDI ON (AKA: NSX-1 compatibility mode) to get things like Portamento to activate.

Modulation: Varies the note pitch.
Portamento Time: Time needed to sweep from one note to the next.
Panpot: Pans stereo sound between the left and right speakers.
Expression: Acts like a volume control.
Sustain (Damper): How long the note plays after Note Off.
Portamento: Steps to sweep from one note to the next.
Sostuneto: Switches “sustain note” on and off.
Soft Pedal: Switches “soften note” on and off.
Harmonic Control: Varies the amount of harmonics added to the note.
Release Time: Changes the ADSR release time.
Attack Time: Changes the ADSR attack time.
Decay Time: Changes the ADSR decay time.
Brightness: Adds higher frequencies to the note.
Vibrato Rate: Cycle rate for the vibrato effect.
Vibrato Depth: Size of pitch variation applied to the note.
Vibrato Delay: Time after the note starts that vibrato is applied.
General Purpose Control: RAS only, not included in the Perfect Guide.
Portamento Control: Key to apply portamento to.
Effect 1 Depth: Applies reverb (echo) to the note.
Effect 3 Depth: Applies a “chorus” effect to the note.
Effect 4 Depth: Applies a “variation” effect to the note.
RPN Increment: Increments the current RPN parameter.
RPN Decrement: Decrements the current RPN parameter.
NRPN LSB: Allows you to change NRPN parameters.
NRPN MSB: Allows you to change NRPN parameters.
RPN LSB: Allows you to change RPN parameters.
RPN MSB: Allows you to change RPN parameters.


Some of the above parameters only work for General MIDI, when General MIDI is turned on, and that’s something you do through SysEx (System Exclusive) messages, which I’ll get to later.  I’ll cover RPN and NRPN messages next time.


NSX-39 – Programming Comments

Time to revisit the NSX-39, otherwise known as the “Singing Synthesizer Keyboard Pocket Miku“. I was rereading the “Pocket Miku Perfect Guide” book, and looking at the section on controlling the kit using MIDI commands from a sequencer app (I think the author was using Garage Band). Since the only app I have is Sonar X1 LE, which didn’t play well together with the NSX-39, I figured that I might as well repurpose my Kaossilator Pro Java arpeggiator as an NSX configurator/controller.

The overall concept works, but I’ve been struggling to get all the commands discussed in the documentation to work. One of the problems is that, although all the docs I can find are in Japanese, there aren’t that many to begin with. The starting doc is the Perfect Guide itself, which reprints several of the tables from the Yamaha MIDI parameters sheet, and offers a couple of example instructions. The next doc is the Yamaha MIDI parameter sheet, which lacks examples. I was able to track down the Gakken NSX-39 MIDI Guide, which does discuss programming the NSX in more detail, but the examples are pretty much the same as the ones in the Perfect Guide. The NSX-39 MIDI Guide has links to additional docs stored somewhere on Google, but access to those is controlled by someone, and they’re not giving me permissions to the files.

Having said that, I’m still very impressed with the Pocket Miku. The heart of the kit is the Yamaha NSX-1 chip. It supports eVocaloid, General MIDI, and one or two sound banks (the spec. sheet says that there’s the general purpose MIDI sound bank, RAS (real acoustic system) and a drum kit. RAS seems to be disabled, and the drum kit bank is the same as the percussive instruments you get when selecting channel 9 in the general MIDI sound bank).

With MIDI, you specify 1 of 16 channels to send messages to. Since, the NSX-39 uses USB, in Java you open up a receiver to the kit and send messages that way. Meaning that all 16 channels for that receiver go straight to the NSX-39 – you can play 16 instruments simultaneously on just the one Miku. Channel 0 is eVocaloid (in the Yamaha documentation, channel numbering starts at 1, not 0), and channel 9 is the drum kit. All other channels give you the general MIDI instruments.

The Perfect Guide and the Yamaha spec. break up MIDI commands into 4 major groups: regular MIDI messages (change volume, change program, note ON/OFF, etc.); control change messages (used to access reverb, modulation and brightness); NRPN messages (Non-Realtime Parameters, accessed via control change messages, that let you change the low frequency filter and vibrato) and SysEx (System Exclusive messages, that supposedly let you control pretty much any aspect of the NSX-39). For the most part, the only features that I’ve been able to get working consistently are: NoteON/OFF, pan, reverb, modulation, vibrato, LFO filter frequency, the drum kit, changing the eVocaloid vocabulary and reassigning the NSX-39 key sounds (kind of like having a “keypressed beep”).

A lot of the other stuff, like chorus, variation, and 90% of the SysEx features, are specific to the eVocaloid voice, and I can’t tell why Chorus and Variation aren’t doing anything. I really wish I had more examples to work with, and more complete documentation.

But, what I do have working makes for a pretty good DAW box as it stands. I can switch between the general MIDI instruments, drum kit and eVocaloid, and I can set up a sequencer to run all 16 channels at once. Which, given that the NSX-39 is only $50 USD, including tax, makes it a good deal for the price. Running the sounds through the modulator, adding reverb and then filtering the results is fun.

I’ve even added the Java code for implementing the Roland A-300 keyboard support, and assigned the A-300 sliders to the various NSX-39 settings. There are one or two minor bugs that I want to work out, plus I’ll eventually get around to implementing channel after touch. Then, I need to learn how to play a keyboard…

(Sidenote: When I was experimenting with the A300 support code, I wanted to add an external file for holding the control names as strings in a separate class, so that the main file wouldn’t be so cluttered. I’m using Netbeans as the programming environment, and it got really slow on me. Thinking that the new class file wasn’t working right, I tried deleting it and by mistake ended up irretrievably deleting my project source file. That sucked. I didn’t have backups, so I had to retype the entire NSX-39 controller project all over again from scratch. That took me the better part of a day and a half, but I fixed some mistakes along the way, and added a few new features that I wanted to add anyway. Note to self: Make more backups.)

Programming the Pocket Miku

I’ve had the “Singing Keyboard Synthesizer Pocket Miku” for months now, and I’ve played with it a bit as a handheld synth keyboard off and on when I’ve had the time (which hasn’t been all that often). Recently, I decided to write a Java app for accessing the different features available via MIDI commands, and I’ve kind of run into a wall regarding documentation. That is, there doesn’t seem to be anything useful in English.

The Miku, also known as the NSX-39, is based on the Yamaha NSX-1 chip, which is used in a number of other products, including a Vocaloid-style Speak and Spell game in Japan. While Yamaha has posted the NSX-1 timing sheet, product brief and MIDI spec online, they haven’t made the NSX-1 User’s Manual publicly available. The MIDI spec is the only one in English, and while it’s good for things like the Control Change and SysEx messages, it lacks example usages, and there’s nothing for specifically controlling the NSX-39.

Gakken has a go-to author for synth-specific issues who goes by the name Polymoog. Poly wrote a MIDI guide for the NSX-39 which is very detailed, but is in Japanese. He also makes reference to a number of spec docs hosted on Google docs that aren’t publicly viewable. I’ve tried requesting access to them, but haven’t gotten a response back. I’ve also tried asking on the Yamaha Synth forums whether anyone has these docs and, again, haven’t gotten an answer back.

Now, I’m willing to accept that the NSX series synths are only available in Japan, and that the demand for English documentation is very low. But, it would be nice to have all of the Japanese docs so I can at least get a better shot at figuring out what’s going on, on my own.

Fortunately, I do have the Pocket Miku Perfect Guide, which includes a few of the data tables, and some example SysEx messages. Unfortunately, a lot of the information was lifted directly from Polymoog’s MIDI guide, and contains the same typos Poly made.  So, I can get working about 50% of what I want to accomplish, but I have no idea what else the Miku is capable of, and I don’t know why the other 50% isn’t functioning correctly.

This brings me to my point. I’ve been compiling a lot of notes on the NSX-39 Control Change and SysEx messages, and I’m slowly translating, for myself, the key operations of the NSX-39 from Polymoog’s guide. I’m going to start up a new series of blog entries here, alternating with the backgammon series (due to wrap up in a few weeks), consisting of these notes. What I’m really hoping is that this will help connect me with other English-speaking NSX-39 owners, and we can get something of a community started up. Worst case, I’ll just have my notes available here in the blog as back up if my laptop ever gets fried.

Pocket Miku Official Guide Review

(Image from the Otona no Kagaku page, for review purposes only.)

I’m torn over exactly how to approach this review. The Singing Keyboard Pocket Miku Official Book really should have been packaged with the actual keyboard under the Otona no Kagaku Sound Gadget label at the $50 charged for just the kit. Instead, we have yet one more musical instrument floating around loose on the Gakken website that you have to pay an extra 1,500 yen ($15 USD) for just to get what normally comes free with other kits. Plus, the only instrument actually released as a “sound gadget” is the SX-150 Mark II, which has been out for years now. If Gakken’s going to launch all these new lines – Sound Gadget, Petite Handmade, Simple Kid’s Handicrafts – it’d be nice if they’d stop orphaning them.

On the other hand, there’s a lot of good information in this book, if you are into electronic music and you own the Pocket Miku. If so, then I recommend getting this one.

The Official Guide is 116 pages, A4 size. It includes two new seals that you can put on the keyboard. In fact, the first few pages talk about the Piapro collaboration held back in April. The piapro website is run by Crypton Future Media as a fan distribution site for people that make music using Vocaloid. Crypton, in turn, sells music/media software based on the Vocaloid engine. The “collaboration” was a request for fan artwork starring Miku Hatsune, and the top 11 submissions are included in this book, the grand prize winner being turned into one of the two vinyl seals.

This is followed by a 4-page interview with Vocaloid musician/producer Mitchie M, and a 4-page interview with synthesizer pioneer Isao Tomita. As a side note, Tomita has already released at least 1 album of Vocaloid music. Other musicians mentioned as having “collaborated” with Vocaloid/Hatsune include Glay, Lady Gaga, Bump of Chicken, Clementine and Rocketman.

The “Pocket Miku Perfect Guide” starts on page 28, with Captain Mirai’s (Captain Future) 8-page hands-on class showing the basics of the keyboard (how to use the stylus, pitch bend, vibrato, etc.) This is sponsored by the ESP Sound Academy, which offers courses on how to use the Vocaloid software.

Next, there’s 12 pages on the online app, which requires Google Chrome, IE or Safari to run. The first version of the app simply let you reprogram the Pocket Miku with new phoneme sets. Version 2.0 is more interactive and you can use it to make the Miku sing in real time. There’s now also a config feature that lets you change some of the button settings.

If you have a sequencer, Katsunori Ujiie (keyboardist/composer that works with Yamaha) spends 8 pages showing how to run the Miku off of Acid Music Studio and Garage Band, and presents one of his compositions as part of the article.

The section on MIDI covers 17 pages, and includes tables of instrument voices plus the phonemes produced for specific MIDI note numbers. Unfortunately, I can’t tell what app is shown in the article as the MIDI controller. It could be Acid or Garage Band, but I’m not sure. I’ve tried using Sonar X1 LE to interface with the Miku, and still haven’t managed to make it work right. I’m thinking that the issue is that the LE version is semi-crippled and that I really should buy the full commercial package. But, if you have Acid or GB, making it work with the Miku should be straight-forward. The MIDI section includes examples for sending customized “exclusive strings” to take advantage of the Miku’s Yamaha chip. It uses the Yamaha NSX-1 processor, if you’re familiar with that.

If you are new to music and keyboards in general, there are 5 pages of sheet music, including “Happy Birthday” and “Meruto”, where the notes are identified with the “do-re-mi” phonemes produced by each of the keys using the default keyboard voice. Actually, this was one of the deciding factors for me in getting this book. I need all the help I can get to figure out how to play by ear, and having the sheet music telling me specifically which key to touch at each “do, mi, so, re” point helps because that’s the phoneme that sounds for that given note.

Gakken interviews 3 of the members of Crypton for 5 pages. Then there’s the “void the warranty” section that people buy the Otona no Kagaku kits for. The first mod is to just knit a Hatsune-patterned yarn cover for the box and stylus. Then we get a replacement wood case, and a suggestion to wire the kit to a bullhorn. The really cool mod, though, is a 3D-printed plotter attachment that holds the stylus and is connected to a microprocessor to get voice-activated control over the music.

The remainder of the book is a comparison between Vocaloid and eVocaloid, the history and evolution of both, and finally, a short pictorial history of Hatsune Miku music.

Comments: The pictures are good, and if you can read Japanese then you’ll be interested in the interviews with Mitchie M and Tomita. For me, the two most important reasons for getting this book are the sheet music and the MIDI charts. I fully intend, when I get the time, to sit back down with my Java arpeggiator app and add support for the Miku. After that, I hope to write a Java sequencer that takes input from textfiles and records from the Roland A300-Pro keyboard. Along with the sequencer, I could incorporate the codes from the book’s MIDI charts for more “dirty to the elbows” control of the kit. But, knowing me, that may not happen for a while…


Newsletter 159

Of course, just when I post a few messages about how there’s no activity at Gakken, I get the next newsletter in email.

It starts out thanking everyone for being patient, and then announcing that kit 41, the Auto Writer, is coming out on July 22nd.

01) The Auto Writer
The editors state that the Auto Writer was co-developed by Meiwa Denki (producers of off-the-wall almost-practical devices) (Meiwa president shown above), and that it’s really cool. It has one motor and a gear system that can drive the writing hand in 3 directions. You start out by writing with the program cam, and that then controls the movement of the hand holding the pen.
100 page book, A4 size. 3,500 yen (not including tax).

2) Official Pocket Miku Book
This 116 B5-sized page book is intended to assist newbies into the world of MIDI music using the Pocket Miku and the online voice reprogramming application. It walks readers through the steps of using the online app, discusses how to control it with PC sequencer software, and teaches non-musicians how to read a score and play simple songs on the Miku.
Released on June 12th. 1,500 yen, not including tax. Book includes a Miku seal.

3) Murumura Suru Uchuu (The Attractive Universe)
This is a 224 A5-sized page science book written by Naoki Yoshida, professor of astrophysics at the University of Tokyo. The book is divided into 3 parts. First is an explanation of puzzles regarding the universe that scientists have been able to unravel. Second is kind of a Q&A. Third is a discussion of what the attractive/repulsive forces are in the universe, including dark energy and dark matter.
Scheduled for a June 26 release. 1,300 yen, not including tax. (No cover art yet.)


4) Rainbow Loom
If you’re old enough, you may remember seeing something like this as a kid. It was a girl’s toy featuring a plastic square grid that you’d use as a frame when threading on cloth-covered elastic bands. You could use it to make pot holders, coasters, and other small items. The Rainbow Loom is an updated version, and is coming out in Japan probably as part of the Petit Handmade series.
The kit comes with the loom, elastic bands, and a 28 page A5 booklet. Scheduled for a July 29th release. 1,200 yen, not including tax.

Gakken Update, 140613

A little bit more activity on the Pocket Miku kit. Gakken has added a link to the software application page. This is the app that requires Google Chrome, and to have the Pocket Miku plugged into your PC’s USB port. Originally, the app just let you read and write the onboard SRAM to change Miku’s vocabulary. The upate is an expanded menu bar and a new option for playing the Miku in real-time.

Not a really earth-shattering announcement, but it does demonstrate that Gakken isn’t completely hibernating right now.

NSX-39, a first look

If you’re not familiar with Vocaloid, I suggest that you read the wiki article. It’s a very popular franchise in Japan, and in part that popularity revolves around the characters created to represent the various singing voices that the Vocaloid software can produce. As an example, Miku, one of the first, and one of the main “lead singers”, is consistently used in product tie-ins with FamiMart convenience stores.

As I’ve mentioned here recently, Gakken had announced the upcoming release for their NSX-39 Pocket Miku “singing synthesizer”, through their Otona no Kagaku line of kits. To an extent, the NSX-39 is kind of an extension of the SX-150 ribbon controller synthesizer. The concept is that rather than just having musical instrument voices like a piano or flute, you have the human voice singing specific sounds. The original Vocaloid software was written around the idea of music being created based on transcribing written lyrics. What the NSX-39 does is provide a USB port for downloading new lyrics to the kit, and then offering up to 10 operating modes for playing those sounds back as music. The user interface is a ribbon controller and stylus, with the ribbon split into 2 parts. One is a regular continuous ribbon as with the SX-150, while the other has distinct piano-style keys printed in it, resembling the keyboard printed on Miku’s stockings in the character art.

As can be seen in the below photo, the face panel has Vibrato, shift, A, E, I, O, U, and Volume Up and Down buttons. There are stereo headphone and USB jacks at the back, and an Off/Battery/USB switch. So, you can run the NSX off USB power if you don’t want to use up batteries (3 AAA’s). All of the face panel buttons do double duty if you use the shift key with them. The normal mode is to assign each of the keyboard keys to the Japanese versions of “do re mi fa so la ti do”. The A-O buttons switch the sounds to just that letter across the entire keyboard. Shift A-O activates a pre-programmed sentence that sequences every time you touch a note with the stylus. Shift-A gives you “Ko-ni-chi-wa-A-ri-ga-to” (Hello, thank you) playing one syllable per note press. Vibrato warbles the sound currently being played, and Shift-Vibrato returns the unit to Do-Re-Mi mode. Volume Up and Down changes speaker volume in 5 steps, while Shift-Volume Up/Down changes the keyboard up/down 1 octave. Vibrato-Volume Up/Down is pitch bend. Vibrato and A-O lets you switch to user presets.

(NSX-39 with Miku sticker applied.)

Pressing Volume Up and Down and A at the same time is “Panic” mode (defaults reset).  Up and Down and U switches between NSX-1 mode. Up and Down and O turns tuning on and off. Up+Down+Shift reinitializes the unit. At the moment, I can’t tell the difference between NSX-1 and NSX-39 modes, or Panic and Initialize.

(FamiMart version of Miku.)

The box contains the fully-assembled NSX-39, a 16-page user’s manual, 2 stickers you can put on the face plate (a picture of Miku, or the definitions of the different buttons in English) and an insert sheet advertising the real Vocaloid software system. The first 3 pages of the manual look at the history of electronic speech, from the Speak-and-Spell up to Vocaloid. The rest of the manual is split up into Operations; Using the online app or a sequencer; and Troubleshooting.

In general, the NSX-39 is a toy. It’s nice to play around with and make  sounds for a while, but it has the same appeal as the Korg Monotron, and about the same play lifespan. As-is. To expand its repertoire and keep it more interesting for a longer time, Gakken has added some nice features. First, if you go to the app page, you can access a second webpage that lets you type in new “sounds-as-words” into the interface and automatically store them in the NSX-39 (it has to be connected and turned on at the time) for later
playback. When you plug the unit into your computer (PC or Mac), the OS autodetects the NSX-39 and downloads the proper USB drivers for it. The app only runs under Google Chrome (which I hate) and only accepts Japanese character entry (what’s called Hiragana). This means that you can’t use the app for English entry, since the Vocaloid software isn’t tuned to English. If you can read and write Hiragana, it’s great.

(Miku loves FamiMart)

The second nice thing added by Gakken is MIDI support. You can run the NSX-39 from a PC-based sequencer through the USB port (if you have sequencer software), and you can even use it as a MIDI controller. I haven’t tried this out yet (the Pocket Miku just hit the stores in my region of Japan two days ago). But, I’m thinking that I’ll be able to interface it with my K-Gater Java app sometime by the end of April or beginning of May when my schedule frees up. If K-Gater works, I’ll try writing a Java-based sequencer to include the Kaossilator Pro. (To interface with my other gear, I’ll need to buy a PC-to-MIDI connector converter, which I don’t have yet.) The manual lists the supported MIDI operations, but it’s just in one small paragraph; it’s not in table format. So it may take some experimenting to get the codes to work right.

One thing about the USB connection is that you need Micro-B. Fortunately, when I bought my new Nikon CoolPix digital camera, it came with a Micro-B USB cable, so I already had that available when it came time to plugging the NSX-39 into my laptop.

Comments: The Pocket Miku is an interesting novelty item to add to your rig. If you use your laptop as a converter, you can drive the unit from a regular MIDI keyboard rather than having to use the ribbon cable. Or, you can use regular sequencer software and have it playing while you compose songs regularly through the computer. The three things I wish were different are: Firefox browser support for the app; support for English phonemes; and the ability to choose a voice other than Miku’s. Miku is supposed to sound like a 16-year-old girl, and she gets rather piercing when singing higher notes. I’d like to have a lower, male voice in order to get bass sounds. But, maybe that will be a sequel kit.

Pocket Miku Singing Keyboard
Released Apr. 3rd, 2014, 4,980 yen (w/o tax).
Ships fully assembled; not a kit.
Accompanied by a 16-page B5-sized user’s manual.
Requires 3 AAA batteries when not connected to a computer.
Requires a Micro-B USB cable to connect to a computer (PC or Mac).