MIDIbox

MIDIbox

The MIDIbox project is an open source modular DIY framework (hardware and software) MIDI platform built around the PIC family of microcontrollers (specifically the PIC18F452, PIC16F88, PIC18F4620 and PIC18F4685) and recently with STM32 32-bit ARM Cortex too. It can 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

The MIDIbox Hardware Platform is the continuation of Thorsten Klose's earlier work on MIDI controllers. 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 which grew into a thriving open source development community.

The MIDIbox Hardware Platform (MBHP)

The focus of the platform is 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 MIDIbox hardware platform runs its own open-source operating system: MIOS (MIDIbox Operating System), written in PIC assembly language for speed and accuracy. There is a C wrapper layer available for simplified coding. MIOS is designed and documented to allow simple reconfiguration, adaptation and extension by hobbyists and enthusiasts.

The modules

Currently there are about 15 separate modules available:

Microcontroller modules

  • Core Module
  • PIC Programmer Modules like an actual PIC-Burner or the JDM Module

Input modules

  • AIN Module Analog Input (0-5V)
  • DIN Module Digital Input (ON/OFF)

Output modules

  • DOUT Module Digital Output (e.g. LED ON/OFF)
  • LCD Module Liquid Crystal Display
  • AOUT Module Analog Out to output Voltages (for Controls)

Sound modules

  • SID Module for the MOS Technology SID (as found in the Commodore 64)
  • OPL3 Module for the FM-Chips YMF262 and YAC512
  • IIC SpeakJet Module for the SpeakJet SoundChip

Memory expansion modules

  • BankStick 32k / 64k Memory module

MIDI I/O modules

  • LTC Module MIDI LED Indicators + 1 MIDI-Out + 1 Thru (+ 1 optional to-COM-Port)
  • USB Modules PC/USB Interface

Miscellaneous modules

  • MF Module to control Motorfaders
  • IIC Modules to communicate to other (Microcontroller-)Devices via I2C

The MIDIbox Operating System (MIOS)

The MIDIbox Operating System (MIOS) has been developed to allow the design of flexible MIDI controller applications. MIOS adheres to a non-commercial, open platform as fundamental to the exchange of ideas and personal adaptations which are 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.[1]

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

  • up to 128 digital inputs
  • up to 128 digital outputs
  • up to 64 analog inputs
  • character and graphical LCDs
  • up to 8 BankSticks (I2C EEPROMs)
  • one MIDI In and one MIDI Out, or an RS232 serial COM port

Background drivers are available for the following control tasks:

  • MIDI I/O processing
  • Bootstrap loader
  • Analog conversion of up to 64 pots, faders or other analog sources with a 10-bit resolution
  • Motor handling for up to 8 motorized moving faders with a 10-bit resolution
  • Handling of up to 64 rotary encoders
  • Handling of up to 128 buttons, touch sensors or similar digital input devices
  • Handling of up to 128 LEDs, relays, Digital-Analog-Converters or similar output devices. In multiplex mode a nearly unlimited number of LEDs, LED rings and LED digits can be driven
  • Read/Write from/to EEPROM, Flash, and BankStick
  • Linking PIC18F Core modules via MIDIbox Link

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

MIOS is a dedicated operating system for the Microchip Technology PIC18F452 microcontroller. This PIC is pin compatible to the PIC16F877 which was used in early MIDIbox projects. Thus it is backwards compatible with older MIDIbox Core modules, with one board modification.

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

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:

  • MIDIbox SEQ V3:

16 Track Live Step and Morph Sequencer + advanced Arpeggiator

  • MIDIbox SID V1:

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

  • MIDIbox FM V1:

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

  • MIDI Merger V1:

Merges two separate MIDI inputs to a single output

  • MIDI Router V1:

Routes various MIDIboxes to a single MIDI port

  • MIDI Processor:

Provides basic functionality to receive and transmit MIDI events

  • MIDIbox CV

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

  • 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 drive up to 128 digital output pins and to react on up to 128 digital input pins via MIDI

  • MIDIbox LC V1:

Alternative to the MIDIbox 64/64E

  • MIDImon V2:

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

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • MIDIbox — SID (oben) und MIDIbox 64 (unten) Das MIDIbox Projekt ist eine nicht kommerzielle, do it yourself Plattform für MIDI Hard und Software, die auf der PIC Mikrocontroller Familie, insbesondere dem PIC18F452, PIC16F88, PIC18F4620 und PIC18F4685,… …   Deutsch Wikipedia

  • MOS Technology SID — MOS Technology SIDs. The right chip is a 6581 from MOS Technology, known at the time as the Commodore Semiconductor Group (CSG.) The left chip is an 8580, also from MOS Technology. The numbers 0488 and 3290 are in WWYY form, i.e. the chips were… …   Wikipedia

  • MOS Technology SID — Микросхемы SID фирмы MOS Technology: Справа  микросхема 6581 производства MOS Technology, в то время называвшейся Commodore Semiconductor Group (CSG). Слева  микросхема 8580 той же фирмы. Числа 0488 и 3290 представляют дату выпуска в… …   Википедия

  • Yamaha YMF262 — (year 1994) The Yamaha YMF262, also known as the OPL3 (OPL is an acronym for FM Operator Type L), is an FM synthesis sound chip. It is an improved version of the Yamaha YM3812 (OPL2), adding the following features: twice as many channels (18… …   Wikipedia

  • Circuit bending — Probing for bends using a jeweler s screwdriver and alligator clips Circuit bending is the creative customization of the circuits within electronic devices such as low voltage, battery powered guitar effects, children s toys and small digital… …   Wikipedia

  • Commodore 64 — Hersteller Commodore …   Deutsch Wikipedia

  • Freie Hardware — ist eine Hardware, welche nach lizenzfreien Bauplänen hergestellt wird. Inhaltsverzeichnis 1 Rechtliche Grundlagen 2 Konzept (Beispielprojekte) 3 Weitere Projekte 4 …   Deutsch Wikipedia

  • MOS Technology SID — Ein 6581er SID Chip auf einem C64 Mainboard Der MOS Technology SID (Sound Interface Device) ist ein programmierbarer 3 stimmiger Soundchip, der hauptsächlich in den Heimcomputern C64 und C128 von Commodore in den 1980er Jahren zum Einsatz kam. Er …   Deutsch Wikipedia

  • Retrosound — ist ein zusammengesetztes Wort aus Retro (v. lat. retro rückwärts) und Sound. Als Retrosound werden elektronisch bzw. digital erzeugte Klänge (engl. sounds) bezeichnet, die mittels eines alten, meist populären und betagten Soundchip erzeugt… …   Deutsch Wikipedia

  • Monodeck — Le Monodeck est un contrôleur MIDI, basé sur le framework opensource midibox mais non open source, construit par Robert Henke (plus connu sous le nom de Monolake) pour ses prestations en concert. Le Monodeck est utilisé avec le logiciel Ableton… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”