teaser

Introducing Midimixfix

This is an unedited republication related to the Midimixfix project. It first appeared on the Lars' Electric Endeavors blog on larsee.dk

Lars, January 2018


Midimixfix prototype, as of January, 2013:

Midimixfix prototype

Midimixfix is (going to be) an open source and open hardware MIDI processing platform powered by an Atmel Atmega644P. It has two MIDI inputs, two analog inputs and one MIDI output. It performs mixing and processing operations on the input streams in real time with minimal latency. The most obvious purpose for Midimixfix is to add flexibility and new possibilities when connecting keyboards to MIDI sound modules, but Midimixfix can be useful to insert between any set of MIDI transmitters and receivers to perform processing.

Examples of Midimixfix usage

  • Mixing two MIDI streams to one. Fully configurable merging and using a buffer to avoid collisions (of course).
  • Filtering of MIDI data. All sorts of filters can be implemented.
  • Mapping between MIDI channels, controllers, after touch messages etc.
  • Interfacing analog foot pedal(s). Midimixfix can read two pedals and assign them to MIDI continuous controllers. This is of course mixed with the other MIDI streams.
  • Applying transformation curves to key velocities, continuous controllers or after touch.
  • Sending predefined MIDI messages.
  • Debugging tool. Monitor decoded MIDI messages on Midimixfix’s display.
  • MIDI transformation effects
  • Save / load of entire configurations in preset slots

Midimixfix hardware

The Rev 1 board of Midimixfix:

Midimixfix prototype

Features

  • Controller: ATmega644P running 20 MHz
  • USB Type B receptacle for power supply and bootloader. When Midimixfix is in normal use the USB port is only for power supply.
  • Two MIDI inputs
  • One MIDI output
  • Two analog inputs, intended for 1/4 inch jacks.
  • Interface to HD44780 display. A 20×4 character display is used.
  • Interface to rotary encoder with push
  • Interface to select and back buttons.
  • Two LEDs

History of the idea

The idea of Midimixfix was born when I got annoyed by the way my Roland JV-1080 behaves, when connected to my General Music S3 synthesizer keyboard. The dynamic response of my favorite piano patch on the Roland “Nice Piano” isn’t very natural. Hard key presses are OK, but soft key presses get very quiet, almost inaudible. This is distracting when playing classical works. Of course, dated equipment such as the S3 and the JV-1080 will never make a convincing piano experience, but why not get the best out of it.

Another idea is to play around with the GEM S3 polyphonic after touch abilities, “key after touch”. The Roland only understands channel after touch which applies for the whole channel. The S3 can generate individual after touch readings for each key pressed. With Midimixfix, I want to try out various transformation effects on the MIDI data that use key after touch.

The plan for Midimixfix

The Midimixfix project is going to be completely open source. The license will be the “New BSD license”, which is a nice and short license that only puts few limits on what the source can be used for, while making sure that the original copyright, credits and disclaimers are maintained.

What I see happening, if all goes well:

  1. I will publish articles and videos about the possibilities and workings of Midimixfix
  2. Schematic will be released
  3. Source code will be released on a source code sharing website
  4. People who want to mix and fix MIDI data themselves can either make their own hardware or buy Midimixfix kits from me. Different packages may be available, from bare PCBs to mounted and tested PCBs including display and other components. I will not sell ready to use Midimixfix products in boxes.
  5. People can implement their own algorithms and contribute to the Midimixfix source if they want.
  6. People can use parts of my source or design ideas all they want, as long as they keep the BSD license :)

Stay tuned for further developments on Midimixfix on larsee.dk!


Comments

Comments powered by Talkyard