Theory of Operation

From MegaDrumWiki
Revision as of 22:24, 7 December 2014 by Airflamesred (Talk | contribs) (Note Selection and Velocity Scaling)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Connecting a Yamaha or Roland drum brain to the corresponding pads is usually pretty simple. However, if you want to use a Roland pad with your Yamaha brain you may end up having to do some tweaking if you can even get it to work at all.

MegaDrum is agnostic with regards to the pad vendor and even supports a wide variety of DIY triggers. In order to do this, it needs to expose many more configuration options than the vendor specific units do. Unfortunately, having this large number of parameters available can make it difficult to understand just what parameter you should adjust when something is not behaving correctly.  It can be hard to see the forest for the trees.

The purpose of this document is to explain the forest and where each tree fits.

(I have pictures that I will add when the wiki allows me to)

Block Diagram

Consider the following (very simplified) block diagram:

Sampling

The inputs from your pads are presenting some sort of analog signal.   The purpose of sampling is to convert this signal into discrete events that can be dealt with more simply.

Filtering

Filtering is used to remove unwanted events from the event stream.  A good example of this would be if a strike on one drum pad caused a faint strike to register on another pad that was connected to the same rack.  MD allows a filter to be created that can reduce or eliminate this problem.

Note Selection and Velocity Scaling

This is the final step before transmitting a note.  Based upon the input, a MIDI note and MIDI channel are selected and, based upon how hard the input was hit, a velocity is selected.  MD provides some very nice tools for transforming input strike strength into a note velocity. 

Input Types

Sampling