MIDI and MORE    hard&firm

I am a retired electronics engineer with interest in experimenting
with musical instruments electronics
as well as creating sound-, video- and other media installations and objects.

To me, MIDI seems to be a bridge or methapor between
the universes of electronics and of art.
At this website I would like to present some of my actual, recent and older work.


"RHYTHMIC" simple interactive rhythm composer

screenshot The intention of "RHYTHMIC" is to provide a simple but flexible tool for
generation and handling of rhythm patterns and loops
combined with a polyphonic chromatic instrument track
.

It is structured a little bit like an electric piano player roll or a punchcard
A chromatic bass line and chords can be added to the percussion pattern as a "rhythm section" for musical instrument training.

Navigation by cursor keys is supported in addition to the mouse to enter or delete chromatic notes and percussion phrases interactively
Notes can be played in "live" with a MIDI keyboard and drum patterns may be created with a MIDI drumset.
...more

"NucleoSynth" - 10 voices polyphonic Audio Synthesizer based on STM32 Nucleo-F446

This is a DIY instruction for a simple PCB to plug the Nucleo board on
and the corresponding firmware project.
assembled synthsizer
  • The Synthesizer is controlled fully digital and provides essentially
    -- 2 oscillators,
    -- 3 Lfos,
    -- a digital 300ms delay
    -- 5 programmable IIR filters,
    -- and a simple drumset.
  • Different waveforms and modulations.
  • For many features an individual ADSR is implemented.
  • Playing the instrument and configuration is possible via legacy MIDI IN and USB MIDI interface.
  • Operator panel with LCD display, 4 pushbuttons, 1 encoder, 2 LEDs.
  • 5V power is supplied via USB connector. Optional Li-Ion accu with charger.
  • A DIY construction manual, operation manual, hex code and the source code (EmBitz 1.1 project, tested with 2.41) is available for download.
...more



A family of DMX512 controllers with STM32

Common features of these DIY instructions are:
  • A full speed USB interface allows connection to a host PC as standard USB / MIDI interface or as virtual COM port
  • 5V power is supplied via USB connector
  • A command set based on MIDI channel messages as well as an ASCII text based command set is implemented.
  • With these commands a soft fade transition is possible for any number of DMX channels simultaneously.
  • The MiniDMX protocol is implemented, which is a good bridge between common DMX control software and these boards.
  • The more complex boards support the Art-Net protocol by means of a compact WIZ850io Ethernet module
  • A detailled DIY construction manual, hex code and the source code for each version is available for download

Simple USB controlled DMX512 Interface

assembled junior PCB The "junior": a simple and tiny DMX512 controller
with STM32F042F6 (20 pin TSSOP) processor.

In addition to a MIDI based command set, ASCII text commands are supported.
As a special case, the MiniDMX protocol is implemented

Board size 43x30 mm including a 6 mm strip for fixture by 2 screws.

No Art-Net
...more


Small USB/DMX controllers with STM32G431

assembled USB/DMX PCB These models extend the features of the "Simple USB controlled DMX512 Interface" described above.
Additional features:
--- hue, saturation or luminance of RGB lamps each is set with a single command
--- a simple chaser is implemented
--- more lighting scenes are stored in Flash.
In addition to a MIDI based command set, ASCII text commands are supported.

Two different hardware solutions are provided with almost the same circuit layout:

The size of the small PCB is 63x25 mm including two 6 mm strips for fixture by 2 screws.
The Veroboard version is 70x65mm. It takes less technology for reproduction and provides more user accessible I/O at the pinheads. A TIF layout for conventional PCB production is available.


No Art-Net       ...more

An alternative firmware is available for both hardware versions:
An experimental appoach for a DMX controller
which is user programmable with Forth programming language

The DMX output is expanded with analog and digital I/O, SPI, I2C, PWM, stepper motor control - accessable via socket or pinhead arrays.
Simple time sequenced and/or interactive lighting shows can be programmed this way, which specifically may be used for media installations and objects.

A manual of the CForth interpreter is available.

...more


STM32 Nucleo-L476 based Art~Net DMX512 Interface

assembled Nucleo PCB This Art~Net capable version is designed as a Veroboard base plate
a PCB layout in 1:1 TIF format is provided, too.

...more

STM32F042 based Art~Net DMX512 Interface

STM32F042 with Ethernet The Art~Net capable version with STM32F042 processor (20 pin TSSOP)
is mounted in a case of aluminium.
This version is more compact and handy than the Nucleo version, but takes more technical skills and tools for reproduction
Size of the electronically relevant area of the PCB: 65x37mm
...more



Interconnect  Ethernet & MIDI & USB by STM32

MIDI Merger based on STM32 Nucleo-L476

assembled PCB This device merges/bundles up to 4 conventional MIDI IN to a PC via Ethernet (WIZ850io module) or via USB, selectable with a DIP switch.
Vice versa, a stream of MIDI messages sent over Ethernet or USB is distributed to up to 4 conventional MIDI OUT. For each MIDI OUT a configurable filter is provided, which MIDI channels shall be sent there or blocked.

By default Ethernet operates in UDP Multicast mode together with the ipMIDI driver which provides a standard MIDI port at the host PC. Alternatively, standard UDP can be used.
The USB interface works as MIDI Streaming Class device and is seen as a standard MIDI port at the host PC too.
For configuration USB is reconfigured to provide a virtual COM Port at the PC.
...more


Ethernet-MIDI-USB Data Converter with STM32F042 or STM32F070

device mounted in enclosure A simple and versatile triple port communication interface connects wired Ethernet, USB and a combined legacy MIDI or serial RS-232 port in different modes.
The basic mode is 1:1 bidirectional "transparent" transfer of MIDI messages respectively serial data bytes. In serial RS-232 mode, a User Setup is available.

The hardware is built around a STM32F042F6 or STM32F070F6 microcontroller (20 pin TSSOP), which provides the USB interface.
The wired Ethernet interface is realized with a compact Wiznet WIZ850io module and supports UDP (incl Multicast) and TCP (Telnet).
By means of 2 jumpers or switches MIDI or Serial COM behaviour can be selected
and Ethernet or USB can be prioritized communication interface.

The PCB is strictly designed in 2.54mm raster and the microcontroller is mounted on a commonly available TSSOP to DIL adaptor. So the complete project can be realized on a Veroboard without etching PCB.
...more




USB <-> Midi or RS232 Conversion

Different STM32 based hardware solutions were developed over a period of time for different purposes, using essentially the same code. The basic mode is 1:1 bidirectional "transparent" transfer of MIDI messages respectively serial data bytes.

Optionally a number of pushbuttons or potentiometers can be attached. When their input level changes, MIDI or ASCII text formatted messages are merged over the bidirectional data traffic.
As an extension of this concept, for each hardware a CForth based command interpreter is available. This way, the modules provide a flexible base for small user programmable electronic art objects and installations./span>

At each version, system parameters (USB Vid/Pid, baud rates, input message configuration) and save/load of user configuration are managed ASCII text based in "Configuration Mode". This is accessible from RS-232 based communication with a fast input of '+++', as known from legacy modems. The configuration can be stored permanently in the microcontroller Flash.


USB-MidiCom on small PCB

assembled PCB This small interface with STM32F042F6 or STM32F070F6 processor works as a
native USB-to-MIDI converter or as USB-to-RS-232 converter, selected by a jumper/switch, which is connected between port pin PA14 and Ground.

Up to 6 pushbuttons or potentiometers can be connected with the socket arrays at the top side to trigger user configurable MIDI or ASCII text formatted messages, which are merged over the bidirectional data stream, when the input level changes.This effect is switched on/off with a jumper/switch between port pin PA13 and Ground.
...more


Alternative Hardware for the small USB <->MIDI or RS232 Converter developed by Boleslaw Jamroz

assembly detail This is a simplified hardware design which can be built on a veroboard without etching a PCB.
The TSSOP microcontroller is soldered on a commercially available breakout PCB.
The firmware is the same that is used for the small SMD version of the converter.

Additionally a corresponding shield for pushbuttons and potentiometer is presented, built on veroboard too.
...more


Alternative Hardware for the small USB <->MIDI or RS232 Converter developed by Mateusz Jagocha

assembly detail This is a modified design with STM32F070, which fits into the housing of another low-cost USB to MIDI interface.
The firmware is the same as described above.

The project link leads you to Dropbox. It is not necessary to register at Google or Dropbox. Simply close the registration window, then click at "Download --> Direct Download".
Complete DIY information is provided there packed in a .zip file - including a detailled description of the project and its background, see file INFO.pdf there.


STM32 USB-MidiCom - STM32F042 Veroboard version

assembled Veroboard This hardware design with STM32F042F6 or STM32F070F6 processor was originally developed for the CForth interpreter, but has almost the same I/O features as the small PCB. It is less compact but needs less technology for reproduction.
Selected by a jumper or switch, which is connected between port pin PA14 (programming connector) and Ground, it works as native USB-to-MIDI converter or as USB-to-RS-232 converter.

Up to 7 pushbuttons or potentiometers can be attached at the pinhead connector to trigger user configurable MIDI or ASCII text formatted messages, which are merged over the bidirectional data stream, when the input level changes.This effect is switched on/off with a jumper/switch between port pin PA13 and Ground.
...more


STM32 USB-MidiCom - STM32 Nucleo-L476 version

assembled PCB This interface with STM32F042F6 or STM32F070F6 processor works as a native USB-to-MIDI converter or as USB-to-RS-232 converter, selected by a DIP switch.
This is the least elegant solution but can be used with an unmodified STM32 Nucleo-L476 board.
As a better solution, the ST-LINK module of the Nucleo may be cut off and used as separate STM32 programmer. This reduces size and supply current of the interface.

Up to 9 potentiometers plus 7 pushbuttons (or less pots and more pushbuttons, total max.16) can be attached at the pinhead connectors to trigger user configurable MIDI or ASCII text formatted messages, which are merged over the bidirectional data stream, when the input level changes. This effect is de/activated with a DIP switch.
...more





"MIDITERM" simple MIDI test console

screenshot MIDITERM is a simple but very useful MIDI terminal emulation for Windows.

It is especially helpful as a debugging tool to send any MIDI messages by PC keyboard input and list all received MIDI messages on the PC screen.
Furthermore it is very practical to handle up- and download of MIDI SysEx files.
...more

WindowsTM program for up-and download MIDI dump (.SYX or Sysex) files developed by Boleslaw Jamroz

screen design This software supports the USB to MIDI converter and standard USB MIDI interfaces
as well as the conventional MIDI / RS-232 Converter.
Proper structure of SysEx files or packages is a condition for the correct transmission of data.
...more



ATmega based Interfaces

Conventional MIDI / RS-232 Converter

assembled PCB This electronic circuit transforms the physical layer and baudrate of a standard RS-232 signal
into MIDI physical layer and baudrate
- and vice versa.

The RS-232 interface supports 4800, 9600, 19200 and 38400 Baud. The basic mode of operation is bidirectional 1:1 retransmission of every byte.

Optionally bytes sent as hex formatted ASCII text to the RS-232 interface are retransmitted in 8 bit format from MIDI OUT. In the opposite direction, every byte received at MIDI IN is retransmitted then as ASCII text from RS-232.

Hex code is provided for ATmega328P, ATmega168 and ATmega88

The power supply is designed for 8-28Vdc.
...more


Simple USB to DMX512 Interface for Arduino Micro or Leonardo

assembled USB/DMX-box The design is held as simple as possible for easy reconstruction on a Veroboard.
The Leonardo version even takes less handicraft.

Due to limited SRAM, the standard firmware supports max. 256 DMX channels, but has special features like soft fade transitions and nonvolatile storage of user designed lighting scenes combined with a simple chaser.

Selectable by a jumper or switch,
--- USB works as virtual COM port (USB CDC/ACM class device). In this case, a simple ASCII text based command set is combined with the
--- MiniDMX protocol, which is compatible with freeware lighting software "DMXControl".
--- or USB works as MIDI interface on the host PC (USB MIDIStraming class). In this case, a MIDI message based command set for DMX is provided

An alternative firmware is provided where the MIDI option is replaced by the MiniDMX protocol for 512 DMX channels without faders and stored lighting scenes. ...more

Logo

* State of information March 2024.
* The hints presented here are for information only. No product features, specifications or useability are assured in juridical sense.
* All information based on best knowledge, but without any warranty. Any responsibility is excluded.
* Trademarks and product names cited in this text are property of their respective owners.

* Informationsstand März 2024.
* Die hier präsentierten Ratschläge dienen allein zur Information,
sie geben keine Zusicherung von Produkteigenschaften und -Tauglichkeiten im rechtlichen Sinne
* Alle Informationen nach bestem Wissen, jedoch ohne Gewähr und unter Ausschluß jeglicher Haftung.
* Im Text zitierte Warenzeichen und Produktnamen sind geschütztes Eigentum ihrer jeweiligen Eigentümer.