Description: Do you have rhythm? Would you like to transfer that rhythm to your computer or hardware sequencer? One of the easiest methods to achieve this is by using MIDI drum pads that can be struck with drumsticks, allowing data to be recorded in real time with the option to correct any errors afterward. A previously designed MIDI drum pad system had the velocity byte fixed at maximum.
Now, an 8-way velocity-sensitive circuit has been developed, built around the PIC 16F877 microcontroller. This unit provides MIDI data that must be sent to a drum synthesizer or sound module. The velocity byte varies based on the force applied to the piezo transducer. The drum selection is fully programmable, and the MIDI transmit channel can also be configured, although drum sounds are typically assigned to MIDI channel 10. At power-on, if the Menu switch is pressed, the unit will enter programming mode. Each press of the Menu switch navigates through the options. The menu consists of the following: Programming Mode is accessed by pressing the Menu switch ON, while Normal Mode is activated by keeping the Menu switch OFF during power-on. Each press of the Menu switch cycles through the menu options, which range from 1 to 14. The values for each selected menu item can be adjusted using increment and decrement switches. The available menus are displayed on the LCD.
Programming the Drum to MIDI Unit is a one-time process, and the drum values are stored in the EEPROM, allowing the unit to retain its settings even when powered off, until reprogrammed. An adjustable Threshold value (0-127) is implemented to prevent false triggering from adjacent drum triggers or external noise, initially set to 11. Similarly, an adjustable Sensitivity value (0-127) can enhance the detection from the piezo transducer when low sensitivity sensors are used, initially set to 20. The unit operates according to the General MIDI drum map, although alternative drum maps can be utilized. If a different drum value is needed at any time, the programming procedure can be repeated. In Normal mode, the drum inputs are scanned, and the corresponding MIDI note on/off data is transmitted on MIDI channel 10. The MIDI drum range extends from 0 to 127, as indicated in the accompanying table, but the actual drum range and sound depend on the MIDI sound module employed.
The design of this MIDI drum pad system leverages the capabilities of the PIC 16F877 microcontroller, which features built-in support for handling MIDI communications. The microcontroller's ADC (Analog to Digital Converter) can be utilized to process the signals from the piezo transducers effectively, translating the analog hits into digital MIDI messages.
The circuit design includes connections for the piezo transducers to the microcontroller's input pins, along with necessary pull-up resistors to ensure stable readings. The menu system is implemented using a simple state machine, allowing intuitive navigation through the programming options. The LCD display is interfaced via an appropriate communication protocol, such as I2C or parallel, depending on the design requirements, to show real-time feedback to the user.
The EEPROM is configured to store the programmed values securely, ensuring that the settings persist through power cycles. Careful consideration is given to the power supply requirements of the circuit, which may include voltage regulators to maintain stable operation within the specified voltage range for the microcontroller and other components.
Overall, this MIDI drum pad system offers a versatile solution for musicians and producers looking to integrate physical drumming into their digital audio workstations, providing a user-friendly interface and programmable features that adapt to various creative needs.Have you got rhythm Do you want to transfer that rhythm to your computer or hardware sequencer Probably the easiest way of achieving this is to use MIDI drum pads that can be hit with drumsticks, and the data can be stored in real time with any errors corrected afterwards. I previously designed a MIDI drum pad system with the velocity byte fixed at maximum. Now I have designed an 8-way velocity sensitive circuit and built this unit based around the PIC 16F877 microcontroller. It provides MIDI data which has to be sent to a drum/synthesiser or sound module. The velocity byte is dependent on how hard the piezo transducer is hit. The drum selection is completely programmable, and the MIDI transmit channel is programmable. However, normally the drum sounds are assigned to MIDI channel 10. At power-on, if the Menu switch is simultaneously held ON, then the unit will enter programme mode. Then each push of the menu switch moves through the menu. The menu consists of the following: Programme Mode is entered by pressing the Menu switchON. Normal Mode is entered by having the Menu switch OFF at power-on. Each time the menu switch is pressed the next menu is selected from 1 to 14. The value for each selected menu item can be increased or decreased using the increment and decrement switches, respectively.
The available menus are shown on the LCD displays. Programming the Drum to MIDI Unit only has to be done once and the drum values are stored internally in the EEPROM and the unit will continue to operate in this mode, even when power is removed, until reprogrammed. The adjustable Threshold value (0-127) is used to prevent false triggering from adjacent drum triggers or external noise.
It is initially pre-set to a value of 11. The adjustable Sensitivity value (0-127) is used to increase the value detected from the piezo transducer if low sensitivity sensors are utilised. It is initially pre-set to a value of 20. The unit will operate as shown for the General MIDI drum map. Other drum maps can be used. If a different drum value is required, at any time, then the programming procedure can be repeated. In Normal mode the drum inputs are scanned and the corresponding MIDI note on/off data is transmitted on MIDI channel 10.
The MIDI drum range choice is from 0 to 127 as shown in table 1. However the actual drum range and sound depends on the MIDI sound module.
The MIDI Drum Machine began in the Fall of 1991 as a project for a microprocessor system design course, shortly after I wrote PAULMON1, the 8051 monitor/debugger. A friend, Rod Seely, both a musician and electronics hobbyist suggested I design...
MIDI, or Musical Instrument Digital Interface, is a protocol designed for controlling synthesizers, sequencers, and various musical devices. MIDI devices are typically categorized into two main classes: controllers, which generate MIDI signals based on user input, and synthesizers, which include...
A code has been developed to process MIDI data received on the RX pin of the USART. It stores three bytes of data in a buffer, checks the first byte to determine if it is a MIDI "on" message (indicated...
The schematic circuit board features switches that output -2V when activated and 0V when deactivated. Four 4067 multiplexers combine the 64 switch signals into 4 signals that return to the main PIC board.
The circuit design incorporates a series of switches,...
Simplified Analog Input Schematic This schematic represents the input circuitry for a single input. This circuit is a track and hold. The idea is that the input waveform may reach a peak at any instant as the drummer strikes the...
This circuit generates MIDI clocks and start/stop messages.
The described circuit is designed to produce MIDI clock signals and control messages, which are essential for synchronizing musical devices that utilize the MIDI (Musical Instrument Digital Interface) protocol. The primary function of...
Sometimes when experimenting with different soundcards and MIDI interfaces it is useful to see if there is some data going in MIDI interface. This can be easily tested with this adapter, which converts the midi signals to visible light pulses....
A few nice MIDI controller interfaces were discovered. The Knee(Audio)Pads are a wearable MIDI device.
The MIDI controller interfaces mentioned provide innovative solutions for music production and performance. The Knee(Audio)Pads, in particular, represent a unique advancement in wearable MIDI technology. These...
This page covers only the details of MIDI communication on the Arduino module. For a more general introduction to MIDI on a microprocessor, see the MIDI notes on Tom's physical computing site. MIDI, the Musical Instrument Digital Interface, is a...
We use cookies to enhance your experience, analyze traffic, and (if you allow) serve personalized ads.
By clicking Accept All, you agree to our use of cookies.
Learn more