Introduction: MesoTune - Magnetic MIDI Controller

Note: I want to give credit of this project to by Alex Bluhme. So please check it out here https://vimeo.com/171612791.

Are you a music composer, melodist, symphonist or a tunesmith who loves to create their own beats, but got bored with all those push button traditional MIDI Controllers.

So, this hardware is for you, as in this instructable we switched the push button with a series of discs containing with easily swappable sphere magnets which will synthesis complex beats. This Instructable is to simiplify the sound sampling and enhance your creativity in the field of beat making.

Let's Hope you enjoy and let's begin!

Step 1: How It Works?

MIDI - Musical Instrument Digital Interface, MIDI is an electronic musical instruments, software, computers and other digital controllers share musical information.

Best way to understand what MIDI is to first understand what it is not:

  • MIDI isn't music
  • MIDI doesn't contain any actual sounds
  • MIDI isn't a digital music file format like MP3 or WAV

MIDI is nothing more than data -- a set of instructions. MIDI data contains a list of events or messages that tell an electronic device (musical instrument, computer sound card, cell phone, et cetera) how to generate a certain sound. Here are a few examples of typical MIDI messages:

  • Note On signals that a key has been pressed or a note on another instrument (like a MIDI guitar or clarinet) has been played. The Note On message includes instructions for what key was pressed and at what velocity (how hard the note was played).
  • Note Off signals that the key has been released or the note is done playing.
  • Polyphonic Key Pressure is a measurement of how hard a key is pressed once it "bottoms out." On some keyboards, this adds vibrato or other effects to the note.
  • Control Change indicates that a controller -- perhaps a foot pedal or a fader knob -- has been pressed or turned. The control change message includes the number assigned to the controller and the value of the change (0-127).
  • Pitch Wheel Change signals that the pitch of the note has been bent with the keyboard's pitch wheel.

[source: How Stuff Works]

Step 2: The Mechanism

Step 3: The Design

Complete Project is designed in Solidworks while keeping all the parameters for additive manufacturing, using off the shelf-components, compact and desktop friendly design, precise and cost efficient.

Step 4: What Components We Need?

Electronic Components:

  • 1x Arduino Micro
  • 1x Arduino Mega Pro Mini
  • 1x TTP229 16 Key Touch Pad
  • 1x TM1637 4-bit 7-Segment Display
  • 8x A3144 Hall Sensor
  • 8x 22K 30mm Slider Potentiometer
  • 1x 28-BYJ48 Stepper Motor
  • 1x ULN2003 Stepper Motor Driver Board

Hardware Components:

  • 2x 688zz Bearing
  • 128x 4mmx1.5mm Neodymium Magnets
  • 128x 5mm Spherical Neodymium Magnets
  • 1x 184mm Length 8mm Dia Shaft
  • 2x M3x30 Bolts
  • 2x M3x25 Bolts
  • Matt Black and Matt White Spray Paints

Tools:

  • 3D Printer
  • Allen Keys
  • Plier
  • Screw driver
  • Soldering Station
  • Glue Gun

Step 5: FDM 3D Printing

We printed bigger parts on FDM 3D Printer

My FDM 3D Printer Settings:

  • Material (PLA)
  • Layer Height (0.2mm)
  • Shell Thickness (1.2mm)
  • Fill Density (20%)
  • Print Speed (60mm/s)
  • Nozzle Temp (210°C)
  • Support Type (Everywhere)
  • Platform Adhesion Type (None)

You can download all the files that are used in this project -

Step 6: DLP 3D Printing

We printed smaller parts which required higher details and smoother surface on DLP 3D Printer

My DLP 3D Printer Settings:

  • Layer Thickness (0.05mm)

You can download all the files that are used in this project -

Step 7: Assembly of Electronics in the Base

To assemble the electronics we will need following parts:

  • 1x Base (3D Printed Part)
  • 1x Arduino Micro
  • 1x Arduino Mega Pro Mini
  • 1x TTP229 16 Key TouchPad
  • 8x A3144 Hall Sensor
  • 8x 22K 30mm Slider Potentiometer
  • 1x ULN2003 Stepper Motor Driver Board

As described in the images, snap fit all the components in their respective places. No need of bolts or glue is required as designing is done with all tolerances and all the components gets fit on their own.

Step 8: Assembly of Electronics Components in Motor Cover

To assemble the electronics we will need following parts:

  • 1x Motor Cover (3D Printed Part)
  • 1x LCD Cover (3D Printed Part)
  • 1x TM1637 4-bit 7-Segment Display
  • 1x 28-BYJ48 Stepper Motor

As described in the images, plug in the stepper motor and 4-bit 7-Segment Display at their respective places. And paste the LCD Cover which will hide the LCD and only allow the light to pass through.

Step 9: Assembly of Magnet in Magnet Wheels

To assemble the electronics we will need following parts:

  • 8x Magnet Wheels (3D Printed Part)
  • 128x 4mmx1.5mm Neodymium Magnets
  • 128x 5mm Spherical Neodymium Magnets

Here, we will insert the disc magnets in each slot of the magnet wheel. This will allow us to swap the spherical magnets with ease.

Follow the step with all 8 Magnet Wheels, and prepare the magnet wheel assembly for next step.

NOTE: Make sure to face the South pole of the Disc magnets towards outside while the North Pole facing towards the center of the Magnet Wheel

Step 10: Assembly of Magnet Wheels on Shaft

To assemble the electronics we will need following parts:

  • 8x Magnet Wheels Assembly (3D Printed Part)
  • 7x Magnet Wheel Spacer (3D Printed Part)
  • 1x Magnet Wheel Spacer 8.5mm (3D Printed Part)
  • 1x Magnet Wheel Spacer 10mm (3D Printed Part)
  • 1x Coupler (3D Printed Part)
  • 1x 184mm Length 8mm Dia Shaft
  • 2x M3 Grub Screws

Here, Insert the 'Magnet Wheel Spacer 10mm' till the extreme left end of the Shaft, after that start inserting all the 8 'Magnet Wheels Assembly' following with the 'Magnet Wheel Spacer' and plug in the 'Magnet Wheel Spacer 10mm'. At extreme right end of the shaft, plug in the Coupler and fix them using M3 Grub Screws.

Step 11: Complete the Assmebly

To assemble the electronics we will need the following parts:

  • Assembly of Electronics in the Base
  • Assembly of Electronics Components in Motor Cover
  • Assembly of Magnet Wheels on Shaft
  • 1x Wheel Mount Left (3D Printed Part)
  • 1x Wheel mount Right (3D Printed Part)
  • 2x Standoffs 20mm (3D Printed Part)
  • Slider knob (3D Printed Part)
  • Slide Pot Cover (3D Printed Part)
  • Base Cover full size (3D Printed Part)
  • 2x 688zz Radial Bearing
  • 2x M3x30 Bolts
  • 2x M3x25 Bolts
  • 2x M3x20 Bolts
  • 5x M3x10 Bolts

In this step, we will compile all the subassemblies, and complete the assembly. Fix the bearing in the slot given in both the 'Wheel Mounts'. Then mount the 'Motor Cover assembly' on 'Wheel Mount Left' using M3x30 bolts and 3D Printed Standoffs. After that Install the 'Magnet Wheels on Shaft Subassembly' on the 'Wheel Mount'. Follow the images given in this step to complete the assembly.

Paste Slide Pot Covers on the Base around the Potentiometers and Fix the Slider Knob on the Potentiometer's Lever.

Your assembly is complete and ready for the wiring.

Step 12: Arduino Micro Firmware

MIDI Interface Firmware

For communicating with the Laptop/Computer via MIDI interface we'll be using Arduino Micro's ATmega32U4 microcontroller.

We used mocoLUFA MIDI firmware compiled for ATmega32U4.

Using mocoLUFA firmware, Arduino Micro will works as a native MIDI device which sends MIDI command to Laptop/Cmputer via USB port.

Also, mocoLUFA firmware provides the Arduino Serial mode in order to flash firmware on the connected controller.

Instructions to follow:

  1. Extract the Arduino Micro Firmware compressed file.
  2. Compile the firmware using 'make all' command
  3. Wire the Arduino Micro with Arduino Uno (Arduino as ISP)
  4. Upload dualMOCO.hex and dualMOCO.eep to the Arduino Micro using AVRDUDESS program. (LINK)

Source : Github

Step 13: Wiring

Follow the Schematic to wire all the electronics in the following way:

Arduino Micro <==> Arduino Mega
     TXD               RXD
     RXD               TXD
Arduino Mega <==> ULN2003
     2              IN1
     4              IN2
     5              IN3
     3              IN4
Arduino Mega <==> Slider Potentiometer
  A0 to A7             1 to 8
Arduino Mega <==> Hall Sensors
 D32 to D39         1 to 8
Arduino <==> TTP229 <==> TM1637
  46          CLK         CLK 
  47          SDO         SDO

Step 14: Arduino MEGA Firmware

Main Controller Firmware

Arduino Mega will act as the controller interface which senses the actuators and sends MIDI signals to the Arduino Micro (MIDI Device).

Download the Arduino Mega Firmware given below and upload it to the Arduino Mega.

Instructions to follow:

  1. Extract the Arduino Mega Firmware compressed file.
  2. Pull Arduino Micro pin16 (MOSI) low and connect the Arduino Micro to the Computer via USB cable.
  3. Arduino Micro will detected as USB Serial Device and act as Arduino Serial.
  4. Flash the Arduino Mega Firmware in the main controller via Arduino Micro.

Arduino libraries used:

  1. UniStep2
  2. Grove_4Digital_Display
  3. Arduino MIDI
  4. TaskScheduler

NOTE: To put Arduino Micro into MIDI Device mode pull the reset pin of Arduino Micro low.

Step 15: And We're DONE !!

You're finally done! Here's how the final product should look and work like.

Step 16: Please VOTE !

If you like this project, please vote for the "Instrument" Contest.

Really much appreciated! I hope you guys enjoyed the project!

Instrument Contest

Grand Prize in the
Instrument Contest