Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
dev:percussion [2016/01/01 14:52]
michael
dev:percussion [2016/01/04 09:00]
michael
Line 1: Line 1:
 ====== Percussion Notation ====== ====== Percussion Notation ======
-Now that I'm learning to play the drums, it's inevitable that I will want to use Rosegarden to notate something.  Instead of trying to implement the entire spectrum of percussion notation, I want to begin by focusing on notation for a drum set.  This is basically four voices on one staff, with various special symbols.  Working backwards from LilyPond is the way to go here.  If LilyPond can't render itwe needn't bother.+===== Objective ===== 
 +Now that I'm learning to play the drums, I find it is not that easy to find a written drum part for a particular song I want to learn.  I have many of these songs available as standard MIDI filesand I want to use Rosegarden to turn those into written drum notation I can read while in front of the kit.  Any other objectives I achieve in this are secondary to this primary goal.  FurthermoreI am focused on functionality much more than ease of use or shiny looks, and this is likely to be hacky rather than pretty.
  
 ===== Clef ===== ===== Clef =====
-The usual way to decide where to draw a note involves using clefkey, and accidental information to choose a height on staff and presentation for a given MIDI pitch.+In this implementationthe two-bar clef will be effectively the same as the treble clef.  This is purely for my own convenience, as I think in treble clef.
  
-A standard clef won't work for percussion.  We need a way of mapping the bass drum sounding pitch to the correct staff height for the bass drum.  This wants to be configurable and editable.  Are there three toms or four?  A cowbell?+===== Handling Polyphony ===== 
 +Drum kit notation is fundamentally polyphonic notation.  While the beats sometimes line up in such a way that split-and-tied chords would work, I am going to take an approach that requires drum parts to be polyphonic 100% of the time, with separate segments for each type of drum played.
  
-It shouldn't be too unreasonable to make the clef examine the pitch, compare to the tableand return the height in the usual fashion.+===== Drum Splitter ===== 
 +Toward the ends of converting existing parts to written notation and of handling polyphony, the first thing I need to implement is a drum-oriented split function.
  
-===== Questions to Consider ===== +The function shall: 
-Drum kit notation is polyphonic notation.  By the nature of the notation and of Rosegarden, it's going to have to work as four (or moretotally independent segments.+  * for each pitch 0 to 127 
 +  * search the segment for this pitch 
 +  * if the pitch is found, create a new segment for this pitch, taking the label from the percussion key map 
 +  * for known pitches (eg. snare) transpose the segment such that the pitch sounds suitably and the note is rendered at the correct height (eg. middle space C) 
 +  * for known pitches (egclosed hi-hat) notate using correct note heads automatically
  
-Seems like a workflow to consider is loading a standard GM file with a percussion part you want to learn.  The Split function needs a new capability to split a segment such that each individual pitch ends up in a new segment.+etc.?
  
-Some things will want to be combined.  There are at least three standard hi-hat sounds that will all want to translate onto the hi-hat line.  A smart function would notate each of them appropriately.  Closed hat gets the X note headetc.+meh...  I think I'll implement a rudimentary splitter to get started, and see where it all goes once my sleeves are rolled up.  I don't have a firm plan for a number of issuesincluding:
  
-How to handle the ride vs. ride bell in GM?  On my personal electronic drum kitgetting the bell sound is dependent on the drum kit used.  Some of them have layered patchessome of them don't, and on the layered ones, you get the bell sound by crossing velocity threshold.  A smart function would take a GM ride bell and turn it into a ride with a suitably scaled velocity.  How much of that is general practice, and how much of that is hard coding things for Michael's particular cheap entry level starter drum kit? +  * hi-hatcrashride, and snare can all trigger variety of different samples via different pitches, and all but a handful of these pitches need to be notated on the same line 
- +  * our handling of rests in polyphonic parts is really bad, and this drum stuff will showcase the absolute worst of itabsolutely all the time, and this needs gone through and sorted out
-I'm done thinking for now.  I'm going to need to do a lot of thinking and planning before I think about coding anything, and I don't know what odds I'd put on my actually getting this done. +
- +
-Random thought:  maybe the lookup table could exist in track parameters instead of being associated with the clef. +
- +
-Meh.  Sleepy now. +
- +
-Quick note to self:  As I learn and grow with the new drum set, the number one thing I'in a hurry to do is load some classic MIDI file and use it to learn the patternvia printed notation.  Before I go off and spend a month of free time writing a notation feature, I should go look at MusE Score for one thing, and see if there's something already on the shelf.  I'd rather spend time learning drums than writing code at this point.  I got into drumming to get my fat ass some exercise, and it's working! +
- +
-===== A Bazillion Standards ===== +
-So I got a couple of drum books from Hal Leonard.  To my surprise, there is no key to what line is which drum. +
- +
-Surveying what's what, it looks like they expect me to know this is that, because they follow the standard of the Percussive Arts Society.  Just at a casual glanceit's highly obvious that the scheme LilyPond supports by default is quite different from this.  Maybe it's an America vs. everyone else in the world kind of thinglike our weights and measures and our name for what every other country on the fricking planet calls football. +
- +
-Anyway, it's highly obvious that drum notation will have to be extremely configurable and flexible if it is to do anyone any good.  Failing that, I'll just implement it the same way as all these books, since that's what I'm learning.  (And getting the hang of to a rather satisfying degree.)+
 
 
dev/percussion.txt · Last modified: 2022/05/06 16:07 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki