MIDIbox

Last updated

MIDIbox is a non-commercial open source project with a series of guides on how to build musical instrument device interfaces (MIDI). Through a series of do it yourself tutorials, users are guided in the process of building a basic microcontroller that can also be used to build hardware MIDI control units for various synthesizers, multi-track recording software, and other MIDI devices; as well as stand-alone synthesizers, sequencers and other projects.

Contents

History

MIDIbox studio MIDIbox studio.jpg
MIDIbox studio
MIDI box LC MIDIbox LC - Logic-Mackie Control Emulator.jpg
MIDI box LC

The MIDIbox Hardware Platform is the continuation of Thorsten Klose's earlier work on MIDI controllers. [1] [2] Designs are based around a standardized environment of reusable and exchangeable modules. Soon after the release of the first modules, a small group of enthusiasts formed and grew into a thriving open source development community.

MIDIbox Seq V3 MIDIbox 808 Analog Rhythm Composer based on MIDIbox SEQ V3.jpg
MIDIbox Seq V3

The MIDIbox Hardware Platform (MBHP)

MIDIbox SEQ V3 MIDI Rack 2 - MIDIbox SEQ V3, MIDIbox FM.jpg
MIDIbox SEQ V3

The platform focuses on well-defined and documented modules based on small, uncomplicated circuits, to allow for amateur assembly. These modules are then assembled into a complete project. All boards can be made as single-layer PCBs and prototype boards designed with a freeware CAD program. Almost all components are through-hole for easier assembly.

The first MIDIbox hardware platform, (MBHP), was based its own open-source operating system– MIOS (MIDIbox Operating System) –written in PIC assembly language, for speed and accuracy. A C wrapper layer provides simplified coding. MIOS is designed and documented to allow simple reconfiguration, adaptation, and extension by hobbyists and enthusiasts.

The new MIDIBox Hardware Platform, MIOS32, runs on ARM-based processors LPC1769, from NXP, and STM32F407, from STMicroelectronics, and is based on a Real Time Operating System (RTOS) derived from FreeRTOS. [3] The toolchain for MIOS32 is based on GCC, and uses only C language.

The modules

Currently, about 15 separate modules are available:

Microcontroller modules

Input modules

Output modules

Sequencer modules

SEQV4 Sequencer V4 MIDIbox SEQ V4 - 16 Track Live Step and Morph Sequencer + advanced Arpeggiator.jpg
SEQV4 Sequencer V4
MIDIBox Seq V3 (above), MIDIBox FM (below) MIDI Rack 2 - MIDIbox SEQ V3, MIDIbox FM.jpg
MIDIBox Seq V3 (above), MIDIBox FM (below)

Sound modules

Memory expansion modules

MIDI I/O modules

Miscellaneous modules

RTP-MIDI module

MIDIbox hardware platform (MBHP) MIDIbox USB GM5 Module - GM5 USB-MIDI adapter (photo by gracial23).jpg
MIDIbox hardware platform (MBHP)

The MIDIbox Operating System (MIOS)

The MIDIbox Operating System (MIOS) facilitates design of flexible MIDI controller applications. MIOS adheres to a non-commercial, open platform as fundamental to the exchange of ideas and personal adaptations not possible with commercial controllers.

Most controllers built by the community are based on existing documented designs, and begin life with the feature set provided by the existing firmware. End users can enhance their devices with exchangeable program code, and customize them to suit their host application, synthesizer or other MIDI device. Users can also customize to suit their own preferred workflow, or design a new project from scratch.

Application source code, module schematics and PCB layouts are available free for non-commercial use as templates for modifications and improvements. Thus MIOS and the Hardware Platform allow an easy entry to hobbyist microcontroller development, while making possible applications outside the realms of the commercial, mainstream MIDI market.

MIOS was licensed under the GPL until version 1.8. Later versions now require Thorsten Klose's permission for commercial use. [6]

Specifications

The operating system consist of a kernel that provides user hooks to hardware and software events, and functions for interaction with Hardware Platform modules. One core module with a PIC18F452 microcontroller can handle

Background drivers are available for the following control tasks:

The whole operating system has been written in assembly language and has been optimized for speed. MIOS currently uses 8k of program memory and 640 bytes of RAM.

Only 75 µs is required to read 128 digital input pins and to write to 128 output pins. 16 rotary encoders are handled within 100 µs. Analog inputs are scanned in the background every 200 µs; changes larger than a definable minimum range trigger a user hook.

Up to 256 MIDI events can trigger dedicated functions; processing of the event list requires about 300 µS. MIDI events can also be processed by a user routine for sysex parsing or similar jobs. A user timer is available for time triggered code.

Support for other high-level languages apart from C is possible.

MIOS hardware

The MIOS hardware is organized around the concept of MIDIBox Hardware Platform (MBHP). The MBHP are highly versatile motherboards, offering the highest possible number of connections for a given processor. Four versions of MBHP are currently available:

When a project needs less I/O than the ones available on a given MBHP, the MIDIBox concept allows to create a simplified PCB dedicated to this project. This is the approach used on Sammich MIDIBox SID [7] and Sammich MIDIBox FM. These two kits contain the original MBHP design, but with a simplified PCB, dedicated to the connection with a SID chip or a YMF262 chip.

In the case of the STM32F407 MBHP, the CPU is mounted on a module used as a daughterboard, made by ST and sold as a development board (called STM32F4 Discovery by ST). [8] The final user does not have to deal with SMD components, the daughterboard being mounted on standard 0.1" connectors [9]

Complete solutions

At this point there are 11 fully documented projects available, as well as a large number of user projects generated by the community. The official projects are as follows:

16 Track Live Step and Morph Sequencer + advanced Arpeggiator

Hardware MIDI-controllable Synthesizer based on the MOS Technology SID (MOS6581) sound chip as shipped with the Commodore 64/128

Hardware synthesizer based on the Yamaha YMF262 sound chip (also known as OPL3) for generating the famous FM sounds known from Soundblaster (compatible) soundcards of the early 90s

Merges two separate MIDI inputs to a single output

Routes various MIDIboxes to a single MIDI port

Provides basic functionality to receive and transmit MIDI events

Provides CV and gate outputs to drive voltage controlled devices such as analog modular synthesizers

Full-fledged 64 channel MIDI controller

Extended version of the MIDIbox 64

The MIDIO128 interface is used to drive up to 128 digital output pins and to react on up to 128 digital input pins via MIDI

Alternative to the MIDIbox 64/64E

Reports events, which are transmitted over the MIDI cable, in a readable form

See also

Related Research Articles

<span class="mw-page-title-main">MIDI</span> Electronic musical instrument connection standard

MIDI is a technical standard that describes a communication protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and related audio devices for playing, editing, and recording music.

<span class="mw-page-title-main">Microcontroller</span> Small computer on a single integrated circuit

A microcontroller or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs along with memory and programmable input/output peripherals. Program memory in the form of ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips.

<span class="mw-page-title-main">Sound card</span> Expansion card that provides input and output of audio signals

A sound card is an internal expansion card that provides input and output of audio signals to and from a computer under the control of computer programs. The term sound card is also applied to external audio interfaces used for professional audio applications.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">AVR microcontrollers</span> Family of microcontrollers

AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

<span class="mw-page-title-main">Modular synthesizer</span> Synthesizer composed of separate modules

Modular synthesizers are synthesizers composed of separate modules for different functions. The modules can be connected together by the user to create a patch. The outputs from the modules may include audio signals, analog control voltages, or digital signals for logic or timing conditions. Typical modules are voltage-controlled oscillators, voltage-controlled filters, voltage-controlled amplifiers and envelope generators.

<span class="mw-page-title-main">Sound Blaster</span> Family of sound cards by Creative Technology

Sound Blaster is a family of sound cards and audio peripherals designed by Singaporean technology company Creative Technology. The first Sound Blaster card was introduced in 1989.

<span class="mw-page-title-main">MOS Technology 6581</span> MOS Technology sound chip

The MOS Technology 6581/8580 SID is the built-in programmable sound generator chip of the Commodore CBM-II, Commodore 64, Commodore 128, and MAX Machine home computers.

<span class="mw-page-title-main">TI MSP430</span>

The MSP430 is a mixed-signal microcontroller family from Texas Instruments, first introduced on 14 February 1992. Built around a 16-bit CPU, the MSP430 was designed for use with low power consumption embedded applications and for low cost.

A music workstation is an electronic musical instrument providing the facilities of:

<span class="mw-page-title-main">BASIC Stamp</span> Microcontrollers

The BASIC Stamp is a microcontroller with a small, specialized BASIC interpreter (PBASIC) built into ROM. It is made by Parallax, Inc. and has been popular with electronics hobbyists since the early 1990s.

<span class="mw-page-title-main">Blackfin</span> Family of 16-/32-bit microprocessors

The Blackfin is a family of 16-/32-bit microprocessors developed, manufactured and marketed by Analog Devices. The processors have built-in, fixed-point digital signal processor (DSP) functionality supplied by 16-bit multiply–accumulates (MACs), accompanied on-chip by a microcontroller. It was designed for a unified low-power processor architecture that can run operating systems while simultaneously handling complex numeric tasks such as real-time H.264 video encoding.

<span class="mw-page-title-main">Roland MT-32</span> Roland MT-32 Multi-Timbre Sound Module

The Roland MT-32 Multi-Timbre Sound Module is a MIDI synthesizer module first released in 1987 by Roland Corporation. It was originally marketed to amateur musicians as a budget external synthesizer with an original list price of $695. However, it became more famous along with its compatible modules as an early de facto standard in computer music. Since it was made prior to the release of the General MIDI standard, it uses its own proprietary format for MIDI file playback.

<span class="mw-page-title-main">Sound module</span> Externally controlled electronic musical instrument

A sound module is an electronic musical instrument without a human-playable interface such as a piano-style musical keyboard. Sound modules have to be operated using an externally connected device, which is often a MIDI controller, of which the most common type is the musical keyboard. Another common way of controlling a sound module is through a sequencer, which is computer hardware or software designed to record and playback control information for sound-generating hardware. Connections between sound modules, controllers, and sequencers are generally made with MIDI, which is a standardized interface designed for this purpose.

Doepfer Musikelektronik GmbH is a German manufacturer of audio hardware, mostly synthesizer modules, based in Gräfelfing, Upper Bavaria and founded by Dieter Döpfer. The product range covers analog modular systems, MIDI controllers, MIDI hardware sequencers, MIDI-to-CV/Gate/Sync Interfaces, MIDI master keyboards and special MIDI equipment.

<span class="mw-page-title-main">Sound Blaster Live!</span>

Sound Blaster Live! is a PCI add-on sound card from Creative Technology Limited for PCs. Moving from ISA to PCI allowed the card to dispense with onboard memory, storing digital samples in the computer's main memory and then accessing them in real time over the bus. This allowed for a much wider selection of, and longer playing, samples. It also included higher quality sound output at all levels, quadrophonic output, and a new MIDI synthesizer with 64 sampled voices. The Live! was introduced in August 1998 and variations on the design remained Creative's primary sound card line into the early 2000's.

<span class="mw-page-title-main">Sound Blaster 16</span> Sound card by Creative Technology

The Sound Blaster 16 is a series of sound cards by Creative Technology, first released in June 1992 for PCs with an ISA or PCI slot. It was the successor to the Sound Blaster Pro series of sound cards and introduced CD-quality digital audio to the Sound Blaster line. For optional wavetable synthesis, the Sound Blaster 16 also added an expansion-header for add-on MIDI-daughterboards, called a Wave Blaster connector, and a game port for optional connection with external MIDI sound modules.

<span class="mw-page-title-main">Single-board microcontroller</span>

A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program memory and any necessary support ICs. The intention is that the board is immediately useful to an application developer, without requiring them to spend time and effort to develop controller hardware.

The Soundart Chameleon was a hardware synthesizer module, designed by the Spanish company Soundart. The name Chameleon comes from the fact that the machine was able to change its "skins", which are different sound engines. The Chameleons were produced from 2002 to 2004, until the company went bankrupt.

References

  1. "Thorsten Klose", SynthDIY
  2. Thorsten Klose website, "MIDIBOX.org", uCApps.de
  3. "Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions". FreeRTOS. Retrieved 2017-03-09.
  4. "MIDIbox goes RTP-MIDI... - Design Concepts - MIDIbox Forum". Midibox.org. Retrieved 2017-03-09.
  5. "KissBox the Network Answer". www.kissbox.nl. Archived from the original on 9 April 2013. Retrieved 17 January 2022.
  6. "MIOS8 Change Log". UCApps.de. Retrieved 2017-03-09.
  7. "MidiBox SammichSID | Vintage Synth Explorer". Vintagesynth.com. Retrieved 2017-03-09.
  8. "STM32F4DISCOVERY - Discovery kit with STM32F407VG MCU * New order code - STMicroelectronics". St.com. Retrieved 2017-03-09.
  9. "BEB DigitalAudio homepage". Beb.digitalaudio.free.fr. Retrieved 2017-03-09.