Next: , Previous: Instruments (File), Up: `.fms' File Examples


6.11 Percussion

6.11.1 Percussion Examples

Percussion instruments appearing on the same staff can be assigned notes and voices. The percussion instrument ID is then specified instead of a pitch to place a note in the proper location.

To set up a group of percussion instruments for a part, you must create an inst object that contains one or more percinst objects. The following example shows a simple setup using the perc-note setting in each percussion definition to assign to it a specific note on the staff. Percussion instruments are defined separately and are included in the ‘pinst’ instrument by referencing their IDs.

// percussion instruments
percinst <id wb1, perc-note a3>
percinst <id wb2, perc-note e4>

// group the two woodblocks into one instrument
// based off of the built-in `percussion' instrument
inst <id myperc, template percussion,
      percinsts (wb1 wb2)>

// parts
part <id perc, inst myperc>

// events
part perc
duration 1/2
time 0 pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;

ex035.png

Figure 6.57: High/Low Woodblocks

The percussion instrument definitions are changed in this example so that the woodblocks are notated in separate voices.

// percussion instruments
percinst <id wb1, perc-note a3, perc-voice 2>
percinst <id wb2, perc-note e4, perc-voice 1>

// group the two woodblocks into one instrument
// based off of the built-in `percussion' instrument
inst <id myperc, template percussion,
      percinsts (wb1 wb2)>

// parts
part <id perc, inst myperc>

// events
part perc
duration 1/2
time 0 pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;

ex036.png

Figure 6.58: Percussion with Voice Assignments

The following uses inlined percinst and inst definitions but is otherwise equivalent to the example above:

// parts with inlined instruments and percussion instruments
part <id perc,
      inst <template percussion,
            percinsts (<id "wb1" perc-note a3, perc-voice 2>
                       <id "wb2" perc-note e4, perc-voice 1>)>>

// events
part perc
duration 1/2
time 0 pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb1 ;
time + pitch wb1 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;
time + pitch wb2 ;

ex063.png

Figure 6.59: Inlined Percussion and Instrument Definitions

If perc-name is set inside a percussion instrument definition, FOMUS places this name above the staff whenever there is a change from one percussion instrument to another.

// percussion instruments
percinst <id bdr, perc-note c4, perc-name "B. Drum">
percinst <id cym, perc-note c4, perc-name "Cymbal">

// group the two woodblocks into one instrument
// based off of the built-in `percussion' instrument
inst <id myperc, template percussion,
      percinsts (bdr cym)>

// parts
part <id perc, inst myperc>

// events
part perc
duration 1
time 0 pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch cym ;
time + pitch cym ;
time + pitch cym ;
time + pitch cym ;
time + pitch cym ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;
time + pitch bdr ;

ex064.png

Figure 6.60: Percussion Changes

6.11.2 Percussion Library

If you find yourself reusing the same percussion instrument definitions in multiple files, you could insert something resembling the following in your .fomus file located in your home directory (make sure you use ‘+=’ instead of ‘=’ to append the values to FOMUS's default list).

     percinst-defs += (<id cym, perc-note c4, perc-name "Cymbal">
                       <id bdr, perc-note c4, perc-name "B. Drum">)

All of FOMUS's built-in percussion instruments are contained in the file fomus.conf, which is located in /install_prefix/shared/ (install_prefix is most likely /usr/local or /usr).