Monaka(もなか)

 

1. Introduction

  1. Monaka is a physical computing platform designed upon MIDI protocol.

  2. By using Monaka, one can build installation and devices which are consists of PC and I/O devices such as  sensors and actuators. Monaka is also suitable for prototyping new music instruments, as she is MIDI based design. With OSC bridge ‘Monaka-OSC’, Monaka can be applied for OSC applications, such as MAX/MSP.

  3. Actually, Monaka is a name of firmware which make use of V-USB, software USB stack for AVR. Currently Monaka support three hardwares, Ginger ,Pepper, and Arduino.


  4. (1) Constructing a USB-MIDI instrument

  5. With monaka, Constructing music instruments are ‘cup of cake’, as she use MIDI protocol, and PC recognize Monaka as a MIDI device. All you need is to get switches, sensors and so forth, and connect them to the I/O port of Monaka.


  6. (2) Constructing a Open Sound Control(OSC) device

  7. MIDI standard is regarded as legacy technology. Open Sound Control (OSC) protocol is proposed as the new generation of MIDI. Now a days, OSC is supported by many physical controllers and programming environments for PC, such as MAX/MSP and Pure Data.

  8. I designed a protocol converted between MIDI and OSC. Once the converter, named Monaka-OSC, is executed on PC, OSC message on Ethernet is converted to MIDI over USB, and vice versa.


  9. (3) Using other programming environment

  10. When you want to use other programming environment than music instruments and OSC, you can still make use of MIDI library and OSC library for controlling Monaka




About Monaka:

The idea of Monaka is based on Kanade( ) by rerofumi-san. He kindly contributed the picture of Monaka.

MODE 1 and 2 on Ginger-Monaka are compatible with Kanade.






2. Features

  1. ‘NOTE-ON’ and ‘NOTE-OFF’ messages from host PC are used to control digital output ports. For digital input, Monaka  sends ‘NOTE-ON’ and ‘NOTE-OFF’ messages to the host PC

  2. Monaka supports Ginger and Pepper for hardware. They are called ‘Monaka for Ginger’ and ‘Monaka for Pepper’, respectively. They have different numbers of I/O pins and MODES.

  3. Monaka uses V-USB as protocol stack, actually, V-USB-MIDI. As V-USB-MIDI use standard host driver, no installation of special driver is required on Windows and MaxOSX.

  4. To customize the I/O ports according to the requirements of application, Monaka has several MODES. The mechanism is similar to Gainer.

  5. To change the MODE of Monaka, CONTROL CHANGE (local control, or 122) messages are used via MIDI. Once the MODE is set, the information is stored in EEPROM on Microprocessor, thus no need to reprogram. Monaka-OSC has special function to send CC message.


3. Monaka for Ginger

  1. Monaka for Ginger is based on Ginger as hardware, With Ginger, Monaka supports up to 16 I/O ports. The configuration of  I/O ports are changed by the following modes.


  2. MODE1: 8bit monphonic output + 8bit polyphonic output

  3. MODE2: Polyphonic output

  4. MODE3: Polyphonic Trig output

  5. MODE4: Analog Input/Output

  6. MODE5: Polyphonic input

  7. MODE6: Polyphonic input  with chord mode

  8. MODE7: Matrix LED/KEY (up to 64 each)

  9. MODE8: Servo Control


The details of each modes are described on this page (Japanese, will be translated in English soon ).


4. Monaka for Pepper

  1. Monaka for Pepper is based on Pepper as hardware, With Pepper, Monaka supports up to 4 I/O ports. The configuration of  I/O ports are changed by the following modes.


  2. MODE1: Polyphonic output

  3. MODE2: I/O Combination mode

  4. MODE3 : Polyphonic Trig output

  5. MODE4: Analog Input/Output

  6. MODE5: Polyphonic input

  7. MODE6: Analog Input/Output

  8. MODE7: Matrix LED/KEY (up to 4 each)

  9. MODE8: Servo Control


The details of each modes are described on this page (Japanese, will be translated in English soon ).


5. Monaka for Arduino


The firmware is applied for Arduino with Monaka (V-USB) shield. The firmware is the same with Monaka for Ginger, except the followings;

  1. CPU is ATmega328

  2. Frequency of CPU is 16MHz

  3. Pin assignment is defined by Arduino. We need to convert them for Monaka.


6.Monaka-OSC(Open Sound Control)

Monaka-OSC is a protocol converter program
between MIDI and OSC.

Monaka-OSC has functions to setup Monaka MODE.




Please check this page for the details of Monaka-OSC








7. Limitations and Plans

  1. Monaka can handle MIDI channel 1 only. As you do not need to daisy-chain MIDI device on USB-MIDI, this limitation would not be any problem. If you have any case you need to use other channel than channel 1, I’d love to hear it.


  1. Digital inputs and outputs are supported. Support on analog I/O is planed. On MIDI side, Aanalog I/O are transmitted with Control Change (CC) message.


8. Download

  1. PIN Configuration Chart(Monaka-pinconfig.pdf

  2. Firmware(monaka-20100509.tgz)                                       NEW!! 2010/05/09

  3. Monaka-OSC(MonakaOSC.zip)                                                  NEW!! 2010/05/09

  4. Bootloader for(Arduino-monaka)   USBaspLoader-for-monaka-20100918.tgz         NEW !! 2010/09/18

  5. Slides for Make Tokyo Meeting(monaka@MTM03.pdf)

  6. Slides for Make Tokyo Meeting(ginger-monaka@MTM04.pdf)


9. Applications of Monaka

Applications on Monaka is presented on this page (Japanese, will be translated in English soony)。


 

Japanese Page is here


MIDI-based Physical Computing Platform