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
Previous revision
dev:percussion [2016/02/05 23:15]
michael
dev:percussion [2022/05/06 16:07] (current)
Line 1: Line 1:
 ====== Percussion Notation ====== ====== Percussion Notation ======
 ===== Objective ===== ===== Objective =====
-As a new drummer and long-time Rosegarden user, I want to use the computer as an improvement aid to help my drumming.+To use Rosegarden to print drum notation for compositions that exist only in the MIDI realm, such as vintage computer game music.
  
-My original plan was to add drum notation to Rosegarden.  After serious study and contemplationI have concluded this is very impractical.  Rosegarden does all internal work using MIDI-based systemand the existing editors allow you to move notes freely up and down the scale by MIDI pitch.  Height on staff and other factors are ultimately determined by the MIDI pitch.  Rosegarden can manage polyphonic notation, but poorly and awkwardly.  It is best to keep polyphony to a minimum.+Rather than develop a nice, first rate feature that would be enjoyable to usemy aim is only to hack things to point where I can get the task accomplishedeven if the result is brutally ugly to use.
  
-Drum notes need to be written at one particular height by drum.  As drum kits are highly polyphonic; every height represents different instrument, and has to be notated within separate segment.  Some drums can trigger variety of different MIDI pitches from the same staff positionegsnare head/cross stick/rim shotride edge/bell/bowand open/closed hi-hat.  Some drums can trigger the same MIDI pitch from different staff positionseg. the hi-hat pedal is notated toward the bottom of the staff, for the foot, and can play note by itself, but it is also used with and sometimes notated in conjunction with the closed hi-hat sound that it triggers.  The drum score to "I Will Survive" by Gloria Gaynor comes to mind as an example where entering that as notated on the score would trigger duplicate closed hi-hat events Finally, drum notes need to export to LilyPond in totally different way, like "hh4 bd bd hh."+===== Phase 1 ===== 
 +The Edit... Split... Split by Drum feature.  This scans segment to find the discrete pitches, then moves each pitch encountered into new segment.  All the F#3 go into segment by themselves, all the Ab4all the C0, etc This is a good beginningbut it needs refinement. 
 + 
 +===== Phase 2 ===== 
 +To work out which pitches to combine into a single segmentsuch as open and closed hi-hat.  This will be limited to GM percussion only, and hard coded for the basic standard GM drum kit, cross-referenced to whatever LilyPond supports.  If it isn't in basic GM or if LilyPond can't support it, then it doesn't get in.  Hard coding the rules saves a massive amount of work.  If users encounter non-GM files they wish to convert into drum notationthey'll have to remap the drums to GM first If that became a frequent issue for someone with a particular vintage synth or whatever, this remapping could be scripted a lot more cheaply than fancy internals could be constructed.  There just isn't any point in laying all that groundwork to create mappings when one mapping will be used the vast majority of the time, and when there are only a small number of exceptions (all pertaining to the snare and hi-hat as far as I recall). 
 + 
 +===== Phase 3 ===== 
 +Once the drum splitter is smarter, the next step is to collect a list of every kind of drum LilyPond can export, and create way to designate a particular segment as containing that kind of drum.  This means the pitch is irrelevant, and non-GM mappings could be accommodated here easily.  The obvious way to go here is to add a combo box to the SPB to designate that this segment contains a hi-hat or what have you. 
 + 
 +===== Phase 4 ===== 
 +Once it's possible to designate a hi-hat segment, LilyPond export needs to be modified to deal with putting all of this together.  It is probably sufficient to write each segment to a discrete Voice.  I have no idea as yet how to deal with the problem of rests. 
 + 
 +It should be possible to modify LilyPond export to notate things like cross-stick, accents, and ghost notes; the latter two of which could be guessed at reasonably by examining velocity, and using simple hard-coded ranges.  Velocity less than //n// equals an automatic ghost note, velocity higher than //y// equals an accent. 
 + 
 +===== Phase 5 ===== 
 +Possibly add some configuration and whatnot so there is more flexibility.
  
-Added all together, Rosegarden needs something radically different to handle these requirements.  Rosegarden has stretched the limits of what can be done with notation in a sequencer-based application, but after stewing on all of this for a few weeks, I have to conclude that drum notation lies beyond those limits.  The only realistic way to go forward here is to invent a new event paradigm that is not MIDI-based, where it displays at pitch //x//, sounds at pitch //y//, and exports as pitch //z// There could be no way to go back and forth between that and standard Rosegarden events.  It would amount to doing a parallel, notation-driven system within the existing MIDI-driven system. 
  
-It feels tantalizingly possible to overcome all of these objections, but I have concluded that even if it could be done, it just wouldn't be anything to be proud to show off in the end.  It would be hacky and weird in the extreme. 
  
-I have determined that the best solution to my overall requirements is to switch to a notation-driven editor like MusE Score for notating drum parts.  Perhaps I will discover opportunities to improve workflow and integration with that application. 
 
 
dev/percussion.1454714150.txt.gz · 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