WebApp · API · Open Hardware

Huemidifi

Huemidifi originated as my minor diploma in the field of Electronic Media at Hessen State University of Art and Design Offenbach am Main. Researching the project topic I was looking for a way to utilize both of my design passions: web development and creating instruments for electronic music, while solving a real world problem that is not to far-fetched from real use.

After generating the initial idea, the endeavor was splited in two parts: the hardware itself, and an exemplary application that would illustrate the potential of the kit. In that sense Huemidifi is a recursive project that is built upon itself. Even though the focus of the examination and presentation was directed towards the WebApp, the actual hardware is the more reusable and so more valueable.

IoT WebApp

The frontend sends parameter changes one at a time as they are being set by the user. After each change the UI state is updated with server response data that represents the remote state including the applied changes.

Remote API calls

Encapsulated in POST requests, the API calls result in a JSON formatted server response, allowing for max readability by humans and machines. Huemidifi WebApp implements this communication technique by means of AJAX.

Prototyping kit

Huemidifi is an open and extensible platform that encourages freely shared creativity. This device is an attempt to lower the difficulty threshold of experiencing the legacy of MIDI (a technology that is nearly 40 years old).

MIDI messages broadcasted by the device are generated according to its state, which is continuously monitored and set by all client WebApp instances. This is achieved via simple POST-request based API.

The concept of Huemidifi Apps revolves around multi-user control, interactivity, flexibility of interface design while offering exceptional accessibility for electronic musical instruments by interfacing any device capable of receiving MIDI with means of Access Rich Internet Applications, making it attractive option for (visually) impaired individuals.

My particular App is a nonlinear MIDI sequencing solution. It allows for a broad range of artistic techniques and approaches sharing a deep historical context, such as Aleatoricism and Musique concrète, serialism and procedural group collaboration in the spirit of John Cage and John Zorn.

A modifiable and scalable research tool that introduces the flexibility of web 2.0 based collaborative interaction of humans & machines to the realms of MIDI.

Dependencies

The MCU of the board is a widely available ESP32 DOIT v1. It was chosen because of the dual-core architecture which makes implementation of non-blocking logic much easier. MIDI and Web Server routines are running on separate cores with write actions restricted to Web Server routine, eliminating the need for a semaphoring solution. The 4MB FLASH size limit of the ESP offered a fair challenge to create an elegant, pared-down, vanilla frontend without bloating it with otherwise acceptable dependencies.

Designed with EasyEDA editor, both PCB versions are beginner-friendly and rely solely on thu-hole components. After proofing the concept and receiving v1.0 production samples, the design was expanded by multiple MIDI outputs and manufactured by JLCPCB once again.

Due to a very tight schedule this stage was the riskiest one: every design error would lead to a new production cycle. Going well it freed up additional time for feature implementation and testing. The screen is used for debugging and monitoring purposes and is an optional convenience feature especially useful for developers. A switchable rotary encoder is the only physical user input source, being a proven tool for complex menu diving or just scrolling thru monitoring modes, acting so by default.

Written, built, compiled and flashed with PlatformIO, Huemidifi relies on ESP32 core & following libraries:

Esp32 / ESP8266 Multiple Encoder Library
ESPAsyncWebServer Library
TFT_eSPI Library

Documentation

https://huemidi.fi
@nebenfach.in.offenbach