MIDIbox

from Wikipedia, the free encyclopedia
MB-6582 (MIDIbox SID V2) with 8 SIDs
MIDIbox SEQ V4: 16 track live step sequencer with 72MHz ARM Cortex-M3 CPU
MIDIbox SEQ V3 (above), MIDIbox FM (below)
MIDIbox 808 SEQ V3
MIDIbox Logic / Mackie Control Emulator
MIDIbox SID V2 with C64 housing
MIDIbox SID (above) and MIDIbox 64 (below)

MIDIbox is a non-commercial open source project for MIDI hardware and software. Main project is a do-it-yourself - platform based on the PIC microcontroller family as well as on Cortex-M3 ARM builds microcontrollers and allows own MIDI controller , sequencer and synthesizer to build.

history

The MIDIbox hardware platform (MBHP) is based on Thorsten Klose's work with MIDI controllers and represents a standardized environment of reusable and interchangeable modules. Shortly after the first modules were published, a small number of enthusiasts became a steadily growing open -Source developer community formed.

The MIDIbox Hardware Platform (MBHP)

The platform consists of modules that are based on small, uncomplicated circuits in order to make it easier for beginners to get started, which can be connected to form complete structures. All circuit boards are technically documented and can be produced as single-layer PCBs . Prototype boards can be designed with a freeware CAD program. Almost all components are designed using through-hole technology to make manual assembly easier. As microcontroller particular come PIC18F452 , PIC16F88 , PIC18F4620 and PIC18F4685 and STM32F103RE and LPC1769 used.

The MIDIbox project operates its own open source operating system: MIOS (MIDIbox Operating System), which is optimized for high speed and accuracy in PIC assembly language . There is a C - Wrapper -layer, to make it easier to program. MIOS is designed and documented in such a way that simple reconfigurations, adjustments and expansions can also be carried out by less experienced hobbyists.

The MIDIbox Operating System (MIOS)

The MIDIbox Operating System (MIOS) was developed to enable the design of flexible MIDI controller applications. MIOS adheres to the idea of ​​a non-commercial, open platform, which is considered fundamental for the exchange of ideas and personal adjustments that would not be possible with off-the-shelf controllers.

Most controllers that are built by the community insist on pre-documented designs and start their life with the feature set provided by the existing firmware . End users can expand their devices with interchangeable program code and thus adapt the devices of the host application, synthesizers or other MIDI devices. Individual adaptation is also possible, which supports your own preferred workflow.

Application source code, module circuit diagrams and PCB layouts are available free of charge for non-commercial use as templates for changes and improvements. MIOS and the hardware platform thus represent an easy entry into the microcontroller development hobby to enable applications outside the areas of the commercial MIDI mainstream market.

MIOS was licensed under the GNU GPL up to version 1.8 . Later versions now require Thorsten Klose's license for commercial use.

The operating system consists of a kernel that provides the user with hooks on hardware and software events, as well as functions for interacting with modules such as B. Audio plugins.

A core module can process the following with a PIC18F452 microcontroller:

  • up to 128 digital inputs
  • up to 128 digital outputs
  • up to 64 analog inputs
  • Matrix displays and graphic LCDs
  • up to 8 banksticks ( I²C EEPROMs )
  • a MIDI-In and a MIDI-Out or a serial RS-232 COM port

Background drivers are available for the following control tasks:

  • MIDI I / O processing
  • Bootstrap loader
  • Analog conversion for up to 64 buttons, faders or other analog sources with a resolution of 10 bits
  • Motor handling for up to 8 motorized faders with a resolution of 10 bits
  • Handling of up to 64 rotary controls ( incremental encoders )
  • Handling of up to 128 keys, touch sensors or similar digital input devices
  • Handling of up to 128 LEDs , relays, digital-to-analog converters or similar output devices.
  • In multiplex operation, an almost unlimited number of LEDs, LED rings and LED digits can be used
  • Read / write from / to EEPROM, Flash , and Bankstick
  • PIC18F Core Module connection via MIDIbox Link

The complete operating system is written in assembly language and optimized for speed. MIOS currently uses 8kb program memory and 640 bytes of RAM. This only takes 75 μs (microseconds) to read 128 digital input pins and write 128 output pins. 16 rotary controls are updated within 100 μs. Analog inputs are updated in the background every 200 μs; Changes that exceed a definable minimum trigger a hook.

Up to 256 MIDI events can trigger functions; Processing the event list takes 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-based code. Support for other high-level languages ​​besides C is possible.

MIOS hardware

MIOS is a dedicated operating system for the PIC18F452 microcontroller. This PIC is pin compatible with the PIC16F877 that was used in previous MIDIbox projects. So it is backward compatible with older MIDIbox core modules.

The PIC18F452 has more internal flash, more internal RAM, some new instructions and a better system architecture. It is available in most countries for the same price as the PIC16F877.

A core module based on the STM32F103RE ARM Cortex-M3 is available for the newer MIOS32 . This 32-bit controller is significantly faster than its PIC predecessor and has a large number of integrated interfaces. The CORE32 module is fully compatible with the existing modules. The successor to the CORE32 module is the LPC17 module with a 120MHz LPC1769 ARM Cortex-M3.

Complete solutions

There are numerous fully documented projects available, as well as a large number of community user projects. The official projects are as follows:

  • MIDIbox FM V1: Hardware synthesizer based on the Yamaha YMF262 sound chip (also known as OPL3), for generating FM sounds from Sound-Blaster -compatible sound cards from the early 90s.
  • MIDI Merger V1: Routes two separate MIDI inputs to one output
  • MIDI Router V1: Routing different MIDI boxes on a single MIDI port
  • MIDI processor: Provides basic functions for sending and receiving MIDI events
  • MIDIbox 64: Full-fledged 64-channel MIDI controller
  • MIDIbox 64E V2: Extended version of the MIDIbox 64
  • MIDIO128 V2: The MIDIO128 interface is used to control up to 128 digital output pins and to respond to up to 128 digital input pins via MIDI
  • MIDIbox LC V1: Alternative to the MIDIbox 64 / 64E
  • sammichSID: Complete kit from community members Wilba and nILS for a Midibox with 2 SIDs
  • sammichFM: Complete kit from community members Wilba and nILS for a midibox with YMF262 (OPL3) sound chip

Individual evidence

  1. Thorsten Klose: MIDIbox Hardware Platform. In: http://www.ucapps.de . MIDIBOX, February 16, 2020, accessed on July 4, 2020 .
  2. Thorsten Klose: The MIDIbox Operating System. In: http://www.ucapps.de . MIDIBOX, February 16, 2020, accessed on July 4, 2020 .
  3. Alexander Sandau: ARM-cortex-based plug-in system for MIDI synthesizers. In: https://edoc.sub.uni-hamburg.de . Uni Hamburg, 2014, accessed on July 1, 2020 .
  4. MIDIbox Wiki sammichSID
  5. MIDIbox Wiki sammichFM

Web links

Commons : MIDIbox  - collection of images, videos and audio files