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

MIDI Merlin

Randy George
2011-2012
Europe

Attention Friends: The next iteration of MIDI Merlin, version 2.0, will be a commercial release and it will no longer be free software. As a thank you treat to current users, I’ve decided that anyone making a contribution (20USD+) to the project will receive a license free of charge when the next version is released. The final pricing is yet to be determined. Supporting the project today is recommended. Links are below!

Donate to this Project via Paypal HERE
To stay updated, visit the Facebook Page HERE

Download version 1.02 for Mac HERE   Download version 1.02 for Windows 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.

MIDI Merlin

Jan 6, 2012 at 12:47am

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

#262463
Jan 6, 2012 at 8:04am

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

#262464
Jan 7, 2012 at 4:46pm

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

#262465
Jan 13, 2012 at 12:52am

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

#262466
Jan 16, 2012 at 3:01pm

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

#262467
Jan 17, 2012 at 12:58pm

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

#262468
May 30, 2012 at 9:02am

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

#262469
May 30, 2012 at 3:12pm

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

#262470
Jun 14, 2012 at 3:21pm

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

#262471
Dec 18, 2012 at 8:26am

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.

#262472
Dec 18, 2012 at 8:30am

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

#262473
Dec 18, 2012 at 1:15pm

Could you release the Max project?

#262474
Dec 18, 2012 at 4:12pm

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.

#262475
Dec 18, 2012 at 4:40pm

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?

#262476
Dec 18, 2012 at 5:52pm

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.

#262477
Jan 16, 2013 at 12:18am

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

#262478
Jan 16, 2013 at 9:12am

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.

#262479
May 16, 2013 at 10:09pm

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

#262480
Aug 11, 2013 at 5:47am

I played with this device all day long and I really like it!
one thing that bothers me though is that I cannot seem to get rid of the long latency. my AI buffer size is set to 2 ms, and I’ve set both I/O and Signal vector sizes to 64 samples. Still, it sounds like I have a latency of several hundreds of ms…is there anything else I might not be considering here?

#262481
Aug 12, 2013 at 8:25am

Hi Omer, I’ve answered your question on your post on MIDI Merlin’s facebook page. For anyone else interested, it’s about signal quality. the input signal’s quality can have some impact on tracking performance and can sometimes give the impression of latency. Good results are obtained from MIDI Merlin after a bit of trial and error, configuring settings and adjusting levels, but most important is that the quality rule applies. Quality in => Quality out

#262482

You must be logged in to reply to this topic.