P.E.A.R.T. - The Robotic Drum Machine





If you want to see a thorough design document, check out our IEEE Design Paper submitted for the IEEE Region 5 Paper Contest.


Overview

P.E.A.R.T. is basically a device that can be programmed to play on a drum set.  Most electronic drum machines have very bad, unrealistic sounds although they are improving rapidly.  Our idea to recreate authentic drum sounds was to build a device that actually played a real drumset.

In our design, we had a few objectives:

  1. Programmable - the device must be programmable using a file format that would allow one to compose music to be played easily
  2. Realistic - the sounds created need to be realistic. An average listener should have trouble distinguishing a human drummer and the robotic one.
  3. Versatile - the machine needs to have certain versatilities such as:
    • The sticks and percussion interfaces should be interchangeable to allow different sounds to be created on the same drum.
    • The setup must be able to adapt to an existing drum set (i.e. the components should be separate from the drums and not permanently attached to the drums in any way).
    • The user should be able to map drum sounds to the drums that are available at that time. For example, if only two cymbals are available, the user should be able to map all the different cymbal types used in the song down to the two available.
    • The force with which the sticks strike the drum needs to be adjustable.
    • The interface should not require the drums to be set up in any specific fashion - it should be able to adjust to any drum set in various positions.

The Project has 5 main parts:

  1. Software
  2. I/O (USB)
  3. Electronics
  4. Pneumatics
  5. Mechanical Levers


Software

The first part of the software was designed to complete the necessary preprocessing for the user, allowing him/her to map drums found in the selected midi file to drums on his/her set.  In this preprocessing section, the methods used are as follows:

Figure 1

Figure 1

First, the user selects the MIDI file they would like to process using the load file dialog in Figure 1.  The file is then checked for errors and converted to a readable format.  The readable format contains numeric information about each MIDI instrument event including:

  • the event's time from the beginning of the song
  • the channel used
  • the instrument used
  • the volume used

The preprocessing software then filters out this information for all note events on channel 10, which is the channel where all General MIDI percussion instruments are defined.  After this initial preprocessing, the user is prompted to input which types of drums they have in his/her set (e.g. snare, bass, hi-hat, cowbell).  Figure 2 shows this prompt.

Figure 2

Figure 2

Next, the user maps his/her drums to drums found in the MIDI file using the interface found in Figure 3.

Figure 3

Figure 3

After entering this information, the preprocessing continues, linking the user's drum mapping to output information suitable for the USB device, which is described in the next section.  The user is then prompted to save the mapping configuration to a file for later use in a ".mos" file format.

The second portion of the software, the actual player, gives commands listed inside the loaded .mos mapping configuration file to the USB device in sequential order.  The player also handles the timing of the output by "sleeping" for the amount of time until the very next output happens. 

Figure 4

Figure 4

Shown in Figure 4, the player console gives the user common commands such as play, pause, stop, and load file.



I/O

After preprocessing, the software outputs data in real-time to a USB device.  This device from ActiveWire has 16 programmable Input/Output pins and comes with a driver library making it easily controlled from C++ or Visual Basic.  This device creates the interface from the software to the electrical circuit.  Whenever a drum note is to occur, its corresponding pin is set high. Then the pin is reset to a low state creating a short pulse.

Figure 5

Figure 5



Electronics

Figure 6 shows the electrical interface circuit for one individual drum.  This circuit functions as the interface between the output from the USB device and mechanical components.  As the software outputs data to the USB device, the signals are then used to turn on transistors so that the voltage from the USB device can be amplified.  This is required so that the pulse is significant enough for its rising edge to be able to trigger a monostable multivibrator.

Figure 6

Figure 6

The monostable multivibrator used is the CD4047BC by Fairchild Semiconductor. It is set up to give a pulse of a predetermined amount of time that is used to turn on an additional transistor. This transistor saturates during that pulse, allowing a significant amount of current to flow to activate a solenoid.



Pneumatics

Figure 7 shows the heart of the mechanical devices, the valve and cylinder.

Figure 7

Figure 7

The mechanical device is controlled by a solenoidal valve. The solenoid receives a voltage from the interface circuit in order to operate. At 12 volts, 125 milliamps, the solenoid is activated, turning on a pneumatic valve. The activated solenoid uses the valve to control airflow to a double-acting pneumatic cylinder. When the solenoid is activated, the valve opens, allowing a high pressure to flow to one side of the cylinder and opens the other side of the valve to release its air. This changes the pneumatic cylinder from its normally open position to a position that causes the swing of a stick. The pneumatic valves used are model H180-4E1 made by Humphrey.



Mechanical Levers

The mechanical devices were hand-made by Jeremy Moreau and Moreau's Welding Service. To see pictures of these devices, see the pictures page.




Last Modified: 06.16.17    Valid XHTML 1.0!    Valid CSS! Powered by Blogger