Thanks for your help. We've received your bug report.

MIDI Merlin

Randy George
2011-2012
Europe

Download version 1.02 for Mac HERE   Download version 1.02 for Windows HERE

To stay updated with MIDI Merlin’s progress, visit the Facebook Page HERE

MIDI Merlin extends the capabilities of live performed monophonic instruments with the assistance Audio-to-MIDI conversion and the wireless control interface of the Nintendo Wii remote. It is a versatile tool for acoustic or electronic sources with many possible applications in the realm of audio/MIDI.  In one configuration, it can be a creative tool for interacting with hardware and software MIDI devices. In another configuration, it can be utilized as an application for ear-training and improving relative pitch acuity. In another configuration, it can be a real-time audio to MIDI converter for use in live performance scenarios.

MIDI Merlin employs a MIDI interaction model that combines continuous data with momentary data to generate its range of output note values. The continuously changing variables dictate pitch and velocity values while a separate momentary variable engages the values to output the appropriate note-on/note-off MIDI messages.

Although MIDI Merlin was designed to function with the Nintendo Wii Remote (with the help of OSCulator or GlovePIE), it is not an absolute requirement. Any MIDI device that can provide continuous data (CC messages) and momentary messages (Note-on/off or CC messages) can be used. The MIDI data output from MIDI Merlin appears as normal MIDI keyboard controller data with all note-on, note-off, sustain, pitch bend and modulation data intact on the receiving end. The ideal interface for MIDI Merlin is the Nintendo Wii remote because of its combination of 3 axis accelerometer and 11 momentary switches. With customizations in OSCulator or GlovePIE, the Wii nunchuk adapter can also be used to control pitch bend and modulation data. For systems with no Bluetooth or external MIDI input capabilities, MIDI Merlin can still function normally with the use of computer mouse and custom keyboard mappings.

The short story of how this project came to be: I am a thereminist. (see wikipedia). I wanted to be able to do more with my theremin performance. With the help of Max, I was able to do more. Then I wanted to share those possibilities with everyone else. Finally, MIDI Merlin was born.

Main features of MIDI Merlin:   (** denotes new features in v1.02)

– translation of continuous MIDI data into momentary note-on/note-off messages
– audio to MIDI conversion for monophonic instrument sources
– keyboard display window for feedback of note preview, engaged notes, sustaining notes, and for providing an clickable source for triggering note/velocity**
– integrated tuner graphically displaying the pitch of the audio input signal and precision in cents
– toggle sustain function that automates the release of notes by suppressing note-off messages
– preset memory slots for temporarily saving sequences of notes or sequences of toggle sustained notes
– double-time function enabling note-on messages to be generated by the “release” of the note-on function
– customizable keyboard shortcuts and MIDI input values with “MIDI learn” functionality.
– three selectable sources for continuous data: MIDI CC, Audio Input pitch/amplitude, and Mouse cursor x/y position
– aux MIDI input for displaying auxiliary note information in the keyboard feedback window
– aux MIDI input monitor switch to enable the Aux Input to be used as an optional note/velocity/trigger source and monophonic MIDI note filter (only one note-on message passed at any given moment)**
– interactive help window featuring dynamic help on mouse over of any item in MIDI Merlin**

MIDI Merlin is FREE and can be distributed freely.  For users of OSCulator I have included two configuration files for Wii Remotes with and without Wii Motion Plus.  For Windows Users, a custom GlovePIE script is included. Also included are a Full pdf manual and Wii Remote Setup Guide. Demonstration videos are coming soon and will be posted on youtube and facebook.  MIDI Merlin does not generate tones. A separate MIDI controlled software or hardware synth or sampler is required for tone generation. For a list of some free software sample players visit: http://lesitedeburnie.free.fr/lalistedeburnie8-en.html . The Wii Remote Setup Guide contains links for downloading the free Kontakt Player by Native Instruments.

Please visit and ‘like’ MIDI Merlin on Facebook for news, updates, videos and more. If you enjoy MIDI Merlin and or find it useful, please let me know:  http://www.facebook.com/midimerlin

If you would like to see some of what is possible with a theremin visit me:

on my facebook page at: http://www.facebook.com/randygeorgemusic

and on my youtube channel: http://youtube.com/user/ooo6

My website is: http://randygeorgemusic.com

 

Version History

v1.01
-added audio-midi note range setting
-added tuning base setting
-fixed main ui output device list refresh

v1.02
-cross-platform mac/pc compatibility
-fixed note feedback for non-continuous MIDI CC messages
-View menu now reflects open subwindows with a check mark
-velocity feedback moved to the Keyboard subwindow
-mouse can now engage MIDI from the Keyboard subwindow
-added Interactive Help window with help text on mouse-over
-octave offset buttons added to Keyboard subwindow
-added Donation link and Check for Update link to Tools menu
-redesigned Settings window with integrated audio setup
-Aux MIDI Input Device now provides note/velocity data and triggers output

 

How was MAX used?

The entire application was made using Max. The palette of tools, Max externals and object libraries available to Max are what made this project possible. Every single time there was a new feature to implement, Max could always offer a solution to realize the implementation.

DISCUSSION

18 Comments

leonhard kuhn says:

Hi,
I’m very interested in your project. i was working on something similar, but not to invent the wheel twice (do we say that in english?) i’d like to try your application. unfortunately, i could not open the dmg-file. could you upload another file? maybe ven a max-app?
looking forward,
greetings,
leonhard

Randy George says:

Hello, I have added a new link to a zip archive. If anyone else is having a problem opening the dmg please let me know by leaving a comment. Thanks very much, cheers, Randy

Thierry says:

My MacBook Pro (OSX Lion 10.7.2 French) tells my that the dmg is corrupted an cannot be opened.

alex motteux says:

hallo, i’m an engeneering student from belgium, and yesterday we got a new project: a midi controlled theremin, so this will help a lot, thanks! if you want we can stay in touch and share our findings, additions or ideas!

great work! and your theremin handling skills are amazing .

greets

lex

leonhard kuhn says:

it took me a while to figure out, i have to use the continuous mode for audio-to-midi conversion. but now its just woking fine. thanks for the great app!
and it tracks so well. how did you actually manage this? i would be interested in wich algorithm you used.

greetz,
leonhard

Randy George says:

Thanks Leonhard. I hope I can make it more intuitive in future versions. The tracking is done with the Max external called sigmund~ written by Miller Puckette. MIDI Merlin is free because many of the components, plus the huge library of objects within Max were not coded by me. Max(MSP) deserves the credit. I’m just a wizard that mixes existing ingredients to make something new.

Thanks Alex. I hope everything works out great. In a near future version, I will implement “custom canvassing” to allow only certain selected MIDI notes to be triggered by the incoming tracked audio. I will use it in my own theremin playing, but I’m sure it would be useful for projects like yours.

Thanks Thierry. I have left the zip version available until I can find a solution for easily creating a dmg compatible with All Mac OS X versions from 10.5 – 10.7.

Cheers,
Randy

Luke says:

Hi Randy, I have a friend who has been using your software. I’m really interested in giving it ago myself at home but only have a PC. Is there any chance of a Windows version being made available? or is there one already out there that I’m unaware of?

Thanks,
Luke

Randy George says:

Hi Luke, Thanks for the question. I’m happy to be able to give you a good answer. I will be posting the newest version of MIDI Merlin very soon, which is compatible with both Mac and PC. there are also some new features in this upcoming release. the time frame is about a week to two weeks from today.

Cheers,
Randy

Randy George says:

MIDI Merlin version 1.02 for Mac OSX and Windows, now published. download links at the top of the project description. Enjoy. make some Magic, and then let me know about it at the MIDI Merlin Facebook Page. Cheers, Randy

Steve says:

Is it possible to have it pitch bend automatically? Possibly by detecting the base note and then sending the pitch offset. Also, polyphony would be a nice addition.

Steve says:

I should have specified that the automatic pitch bend feature would be for Audio Input mode. Any chance at open sourcing this?

Steve says:

Could you release the Max project?

Randy George says:

Hi Steve,
I created a test of automated pitch bend in Audio Input mode, but it does not work well. The pitch bend mode would have to be manually enabled ‘on demand’, otherwise every midi note would be generated with continuously shifting PitchBend data, and the output MIDI data starts sounding like a microtonal mess. maybe in a future version, I can find a good solution.

Sorry, I don’t choose at this time to make the project open source. it’s quite complex on the inside and not well documented either. I am also currently at a standstill with development because of a strange bug in the current version of Max.

Polyphony is not possible with MIDI Merlin, except for sequentially entered notes held with sustain… for instance, slowly strumming a guitar, while holding down the ‘sustain’ function.

Steve says:

I can see how the MIDI data would sound like a mess when using your instrument of choice (the theremin), but I was thinking more along the lines of an instrument like a guitar where every note is (almost) exactly centered and can then be shifted. I’m a guitarist and I really enjoy being able to play other instruments with my guitar (at no extra cost). On demand is the best way to go anyways. More user control. This feature would mean a lot to me and I’m sure a lot of others, even if it’s just a beta test.

Who better to document and debug than the community? I respect your choice of close sourcing it (especially if you plan on selling it in the future), but I think releasing this to the community could really speed up its development. I’m not entirely sure how Max projects work or how version control could be implemented for them, but if you could put the project up on a site like GitHub it might get the attention of a few other Max developers or even inspire a few people to learn Max for themselves.

I figured it would be. Is that a limitation of Max or is it just too complex for this particular project?

Randy George says:

I would very much like to earn something from the project, since it was quite an undertaking. I included a donation link in the application, but have yet to receive any support. at the moment, my focus is on a few other projects, so this also slows things down a bit.

I was about to write what you suggested… yes, for guitar or other fretted/keyed instruments, the pitch bend could work better…

the problem with opening this project really comes down to organization. I am not really a software developer by trade, i was just having a ton of fun in Max, and it evolved into an incredible monster. I’m also not ready to just release all my hard work. Max development is pretty much an open environment by its nature… the Max ‘standalone’ is the only way to “close source” a project.

Thanks for your interest and feedback. I’ll definitely put the pitch bend option at the top of the list for the next release. send me your email address to midimerlin [at] randygeorgemusic [dot] com and I if/when I have a beta version you can try, I’ll let you know.

Steffen says:

Hi Randy,
is it possible to use Merlin as a percussion input device?
My idea is to drum on a desk or something else and Merlin translates the audio input to Midi Notes. For this it would be necessary to avoid the pitch detection, right?
Thanks for your great application.

Cheers,
Steffen

Randy George says:

Hello Steffen, thanks for your message. MIDI Merlin doesn’t respond well to sounds with ambiguous tone, such as noise, percussion hits or breath sound. Perhaps in a future version, I could implement what you are suggesting. it would take quite a bit of work, but there is a good possibility that it could plug in nicely. The max external written by Miller Puckette called bonk~ is a percussion follower, able to detect sudden changes in frequency range of percussive sound in the spectral domain. the audio input source could then be switched to a percussion mode and the output MIDI could trigger General MIDI percussion mappings.

Nathan says:

And so the gates to the great city in the sky opened up. And lo, was this app.

Leave a Reply