Skip to main content

Topic: DrumStaff.fso (version 0.1) (Read 862 times) previous topic - next topic

  • Lloyd
  • NWC2 User
DrumStaff.fso (version 0.1)
This plugin is intended to make things a little easier for writing drums and percussion music.

The 'General MIDI Percussion Key Map' does not correspond with actual standard used in the written music for drums, so DrumStaff tries to solve this problem. DrumStaff consists in two different objects: one that improves notation by the adition of some Custom Noteheads and other usual marks, and other that adds playback support to DrumStaff.

To enable the VISUAL Custom Noteheads just insert a DrumStaff.fso object at the start of the staff. Object's Class have to be set to "StaffSig" to make Custom Noteheads work properly. After this you only have to insert notes on their correct staff positions according to the attached DrumKey (more or less standard).

The different tecniques or elements are determined by the Noteheads and other marks (X for cymbals, or snare Rim Shot, 'o' and '+' for open and closed Hi-Hat, etc.). Once the notes are entered at the correct staff position, just select the apropiate NWC Notehead. The plugin automatically will turn the usual Notehead into the Custom one as follows:

Blank Space in the Snare Drum position (E2) turns Rim Shot.
Shape 5 - so in the Snare Drum position (E2) turns Cross Stick.
Non-Pitched in the Hi-Hat Cymbal position (B2) turns Open HH.
X in the Hi-Hat Cymbal position (B2) turns Closed HH.
Blank Space in the Hi-Hat Foot position (F1) turns Splash HH.
Blank Space in the Crash position (C3) turns Crash Cymbals.

Other usual NWC marks must be compatible, like staccatos in Crash Cymbals (for Choked Crash) and text markings or other user objects for some snare tecniques like Buzz Roll or Double Stroke Roll, as well as the rest of usual NWC Noteheads, used for specific elements (Ride Bell, Splash Cymbal, Cowbell, etc.)

In case that the open/closed Hi-Hat markings were unnecessary they can be disabled from the plugin properties. In that case use 'X' notehead (closed Hi-Hat) all the time.

In adition, DrumStaff offers some other markings to use not only in Drums notation: (object's class must be 'Standard' for those ones)

METRIC MODULATION: this options lets to easily add symbols like 'Tempo Figure=Tempo Figure' to the staff. Both first and second tempo marks are fully selectable and combinable and the full mark can be scaled.
MALLETS/STICKS: this options inserts icons and (or) labels for some types of mallets and sticks. Both icons and labels are independent and can be scaled, otherwise, the text style in labels will be Bold Italic.

To enable DrumStaff SOUNDS just follow the next instructions:

Staff MIDI Channel: Must be set to 10, because drums sounds are usually played at this MIDI channel.
Transposition: Transpose your staff (percussion clef) up by 4 octaves (Staff Properties/Instrument/Transposition/+48). That's only for security reasons, because we don't want to overlap sounds.
Insert Plugin: Insert an instance of DrumStaff_AUDIO.fso plugin at the start of your staff and, on properties, click the checkbox to enable playback.
Repeat: After this you will need to insert a new (playback enabled) instance at the end of each meassure. This is the most important (and annoying) step, because if the 'end instance' is not found for too many meassures the plugin will crash and NWC2 will disable it.

Remember:
· Be careful with MMR. Although you will see only one meassure, Multi-Meassure Rest meassures count for more (as many as MMR says). Disable playback before the MMR, and re-enable it when needed.
· There's lots of play styles and drum tecniques but General MIDI hasn't a sound for each one, so Buzz Roll and Double Stroke Rolls are not supported, and other plugins have no effect over the sound. You can writte them, but they can't be played. Sorry  :'( .
· Although other plugins have no effect over the sound, dynamics are supported  ;D .
· You can enable/disable sound of any DrumStaff_AUDIO instance with '+' hotkey.

Finally, scripting the code was a little complicated, so it might be full of bugs (maybe more than usual)... As always, please test and report.
The following clip will show a beautiful sample of DrumStaff. Enjoy drumming...

Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.75)
|AddStaff|Name:"Staff"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:12|BoundaryBottom:12|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:10
|StaffInstrument|Trans:48|DynVel:10,30,45,60,75,92,108,127
|User|DrumStaff.fso|Pos:0|Class:StaffSig
|User|DrumStaff_AUDIO.fso|Pos:-3|Class:StaffSig|InOut:1
|Clef|Type:Percussion
|User|DrumStaff.fso|Pos:-15|Icons:Sticks|Scale3:60|label:"with Jazz-Type sticks (7AN~9AN)."|Sticks:Y
|Tempo|Tempo:100|Text:"ANDANTE"|Pos:20
|TimeSig|Signature:4/4
|Chord|Dur:4th|Pos:6z|Opts:Stem=Up|Dur2:4th|Pos2:-3
|Text|Text:""|Font:StaffSymbols|Pos:-3|Justify:Center|Placement:AtNextNote
|Chord|Dur:16th|Pos:1,5y|Opts:Stem=Up,Beam=First
|Chord|Dur:16th|Pos:1Y,4x|Opts:Stem=Up,Beam
|RestChord|Dur:16th|Opts:Stem=Up,ArticulationsOnStem|Dur2:8th|Pos2:-3
|Note|Dur:16th|Pos:1|Opts:Stem=Up,Beam=End
|Chord|Dur:8th|Pos:4h|Opts:Stem=Up,Beam=First|Dur2:4th|Pos2:-3
|Note|Dur:16th|Pos:1Y|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:4x|Opts:Stem=Up,Beam=End
|Text|Text:""|Font:StaffSymbols|Pos:-3|Justify:Center|Placement:AtNextNote
|Chord|Dur:8th|Pos:1,5y|Opts:Stem=Up,Beam=First
|Chord|Dur:16th|Pos:1Y,7X|Opts:Stem=Up,Beam|Dur2:8th|Pos2:-3
|Note|Dur:16th|Pos:4x|Opts:Stem=Up,Beam=End
|User|DrumStaff_AUDIO.fso|Pos:-3|Class:StaffSig|InOut:1
|Bar
|Chord|Dur:4th|Pos:7X|Opts:Stem=Up|Dur2:4th|Pos2:-3
|Text|Text:""|Font:StaffSymbols|Pos:-3|Justify:Center|Placement:AtNextNote
|Chord|Dur:16th|Pos:1,5y|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:1Y|Opts:Stem=Up,Beam
|RestChord|Dur:16th|Opts:Stem=Up,ArticulationsOnStem|Dur2:8th|Pos2:-3
|Note|Dur:16th|Pos:1Y|Opts:Stem=Up,Beam=End
|Chord|Dur:8th|Pos:5y|Opts:Stem=Up,Beam=First|Dur2:4th|Pos2:-3
|Note|Dur:16th|Pos:1|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:1Y|Opts:Stem=Up,Beam=End
|Chord|Dur:16th|Pos:3,5y|Opts:Stem=Up,Beam=First|Dur2:8th|Pos2:-3
|Note|Dur:16th|Pos:3|Opts:Stem=Up,Beam=End
|Chord|Dur:16th,Triplet=First|Pos:2|Opts:Stem=Up,Beam=First|Dur2:8th|Pos2:-3
|Note|Dur:16th,Triplet|Pos:0|Opts:Stem=Up,Beam
|Note|Dur:16th,Triplet=End|Pos:-1|Opts:Stem=Up,Beam=End
|User|DrumStaff_AUDIO.fso|Pos:-3|Class:StaffSig|InOut:Y
|Bar
|Boundary|Style:NewSystem|NewPage:N
|Chord|Dur:4th|Pos:6z|Opts:Stem=Up|Dur2:4th|Pos2:-3
|Text|Text:""|Font:StaffSymbols|Pos:-6|Justify:Center|Placement:AtNextNote
|Chord|Dur:8th|Pos:1,5y|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:4x|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:1Y|Opts:Stem=Up,Beam=End
|Chord|Dur:16th|Pos:4x|Opts:Stem=Up,Beam=First|Dur2:4th|Pos2:-3
|Chord|Dur:16th|Pos:1Y,4h|Opts:Stem=Up,Beam
|Note|Dur:8th|Pos:4h|Opts:Stem=Up,Beam=End
|Text|Text:""|Font:StaffSymbols|Pos:-6|Justify:Center|Placement:AtNextNote
|Chord|Dur:16th|Pos:1,5y|Opts:Stem=Up,Beam=First
|Chord|Dur:16th|Pos:1Y,4h|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:4h|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:1Y|Opts:Stem=Up,Beam=End
|User|DrumStaff_AUDIO.fso|Pos:-3|Class:StaffSig|InOut:Y
|Bar
|Chord|Dur:8th|Pos:5y|Opts:Stem=Up,Beam=First|Dur2:8th|Pos2:-3
|Chord|Dur:8th|Pos:7a|Opts:Stem=Up,Beam=End|Dur2:8th|Pos2:-5x
|Text|Text:""|Font:StaffSymbols|Pos:-3|Justify:Center|Placement:AtNextNote
|Chord|Dur:16th|Pos:1,7a|Opts:Stem=Up,Beam=First
|Chord|Dur:16th|Pos:1Y,7a|Opts:Stem=Up,Beam
|Chord|Dur:16th|Pos:5x|Opts:Stem=Up,Beam|Dur2:8th|Pos2:-3
|Chord|Dur:16th|Pos:1Y,5x|Opts:Stem=Up,Beam=End
|Chord|Dur:8th|Pos:6z|Opts:Stem=Up,Beam=First|Dur2:4th|Pos2:-3
|Note|Dur:8th|Pos:5y|Opts:Stem=Up,Beam=End
|Text|Text:""|Font:StaffSymbols|Pos:-3|Justify:Center|Placement:AtNextNote
|Note|Dur:16th,Triplet=First|Pos:1|Opts:Stem=Up,Beam=First
|Note|Dur:16th,Triplet|Pos:1|Opts:Stem=Up,Beam=End
|Note|Dur:16th,Triplet|Pos:-3|Opts:Stem=Down,Beam=First
|Note|Dur:16th,Triplet|Pos:-3|Opts:Stem=Down,Beam=End
|Text|Text:""|Font:StaffSymbols|Pos:-3|Justify:Center|Placement:AtNextNote
|Note|Dur:16th,Triplet|Pos:3|Opts:Stem=Up,Beam=First
|Note|Dur:16th,Triplet=End|Pos:2|Opts:Stem=Up,Beam=End
|User|DrumStaff_AUDIO.fso|Pos:-3|Class:StaffSig|InOut:Y
|Bar
|Chord|Dur:4th|Pos:6z|Opts:Stem=Up|Dur2:4th|Pos2:-3
|Rest|Dur:4th|Opts:Stem=Down
|Rest|Dur:Half|Opts:Stem=Up
|User|DrumStaff_AUDIO.fso|Pos:-3|Class:StaffSig|InOut:2
|Bar|Style:SectionClose|SysBreak:Y
!NoteWorthyComposer-End
[...] y el mayor bien es pequeño: que toda la vida es sueño, y los sueños, sueños son.