Wednesday, November 25, 2015

Drum It! plus: 智慧型節拍器

經過兩個多月的努力,Drum It! 的進階版 Drum It! plus 終於上架了。




這個 App 結合了傳統節拍器和鼓點偵測 (透過手機的麥克風) 的功能,能夠在第一時間把偵測到的鼓點轉換為鼓譜,並且顯示鼓點的時間準確度 (快或慢)。 和上一代 Drum It! 相比,Drum It! plus 增加了許多功能。在鼓點偵測上,除了原有的8分、16分音符,我們還加入了三連音、六連音(*)、以及32分音符(*)偵測。


同時我們也新增了輕重音辨識的功能。這個功能可以從鼓譜上方的 ACCENT 按鍵來控制。一旦啟動了,系統狀態會在偵測到鼓點時轉為"learning"。這代表 App 正在以機器學習(**)的方式來決定輕重音的分界線。當 App 偵測到足夠的輕重音樣本(大約20到30個鼓點)並且能夠成功的分辨,系統狀態會轉為"active"。這個時候鼓譜上就會開始出現重音的標示(如果偵測到的鼓點是重音)。

在節拍器功能上,我們提供了十種不同的聲音選擇: 包括反拍、shuffle 、以及 clave。除此之外,我們還新增了Click Off 的設定,可以將節拍器消音一或二小節,訓練鼓手的節拍穩定度。


在使用者介面上,我們把顯示小節數從2增加到4或8,並可以捲軸方式上下移動。鼓手們也可以透過新的照相功能,將鼓譜以照片檔儲存,分享給好友。


最後放上一段鼓點偵測和輕重音辨識的DEMO。歡迎大家討論使用心得或是提供建議。

Happy Drumming!


(*) 由於六連音以及32分音符的所有變化太過龐大 (64+256),Drum It! plus目前只針對一些常用的節拍進行偵測。如果您有常用的節拍不在偵測範圍內,請跟我們聯絡。我們會在版本更新時加入。以下是目前的偵測範圍:

六連音
3, 6, 13, 16, 34, 36, 46, 123, 134, 136, 146, 345, 346, 456,
1234, 1235, 1256, 1345, 1346, 1356, 1456, 3456, 12345, 12346, 12356, 13456, 123456,
八連音
12, 123, 134, 1234, 1345, 12345, 12357, 13456, 13457, 13567, 13578, 15678,
123456, 123457, 123567, 123578, 134567, 134578, 135678, 1234567, 1234578,
1235678, 1345678, 12345678, 

(**) 輕重音辨識是根據機器學習(machine learning)中的 unsupervised learning。



Thursday, October 1, 2015

An Interactive App for Drum Beat Practice


"Were you rushing or were you dragging?"

Credit Photograph by Daniel McFadden / Sony Pictures Classics / Everett
This is a scene from the movie “Whiplash”. The band director Fletcher was asking the drummer Andrew if he know his beat is rushing or dragging. The movie might have been a bit exaggerated about drummers (for example, getting slapped in the face, or bleeding on snare drum). But in reality, timing accuracy is indeed quite important. A lot of times it is one of the factors that distinguish professional drummer from amateurs.

The best way to improve drum beat timing accuracy is to practice against a metronome. But traditional metronome can only provide click sound, it cannot tell whether the beat you hit is rushing or dragging. Timing accuracy still needs to be determined manually by listening to the relative timing between metronome click and your own beat. Normally this is the task of the drummer himself. Occasionally drum teacher/bandmate would come to help as well.

Now there is a new way: Drum It!






This free App combines the functionalities of both metronome and beat detection. Using iPhone’s built-in microphone, Drum It! will convert detected beats into drum score in real time, and provide timing accuracy measure (early or late, relative to metronome click). Without further ado, let’s check out the video DEMO first.






BPM (Beats Per Minute)
Before start practicing, remember to adjust the BPM to the target value. You can use the stepper (+/- sign) under the BPM icon to change its value (resolution is 1). For bigger changes (say from 100 to 140), you can simply slide your finger on the BPM icon, instead of clicking the plus sign 40 times.

MIC (Microphone)
This setting is used to adjust the sensitivity of beat detection. In a noisy environment, lowering MIC value can avoid spurious beat detection. On the other hand, if the sound of drum beat is too small for Drum It! to pick up, you can increase MIC value in order to minimize missed detection rate.

LEVEL
When Drum It! detects beat from microphone, it will convert it to drum score (based on metronome setting). It will also show timing accuracy of the detected beat. We provided 4 different levels: none, easy, normal, expert. “none” means there will be no timing accuracy result (suitable for first-time practice). With the level increasing from easy —> normal —> expert, the tolerance range of timing error will become smaller and smaller.



Timing Accuracy Measure
When the detected drum beat is later than the metronome click, you will see a red circle with L (Late) under that particular note in the drum score. On the other hand, if the detected beat happens earlier than the metronome click, you will see a blue circle with E (Early).

Conclusion
That’s it! Hopefully Drum It! will help you improve your timing accuracy, as well as overall drum technique. Currently Drum It! is able to detect all quarter, 8th and 16th notes. Detection of other beats such as triplets, sixlets, and double rolls are currently under active development. We will update once these features become available.

In the mean time, if you have any question or suggestion (such as user interface, or new feature request), please feel free to leave your comment here or shoot us an email at drumitapp@yahoo.com. Happy drumming!