+@cindex instrument switch
+@cindex switching instruments
+
+@funindex \addInstrumentDefinition
+@funindex addInstrumentDefinition
+@funindex \instrumentSwitch
+@funindex instrumentSwitch
+
+If an instrument @emph{switch} is needed,
+@code{\addInstrumentDefinition} may be used in combination with
+@code{\instrumentSwitch} to create a detailed list of the
+necessary changes for the switch. The
+@code{\addInstrumentDefinition} command has two arguments: an
+identifying string, and an association list of context properties
+and values to be used for the instrument. It must be placed in
+the toplevel scope. @code{\instrumentSwitch} is used in the music
+expression to declare the instrument switch:
+
+@lilypond[verbatim,quote,ragged-right]
+\addInstrumentDefinition #"contrabassoon"
+ #`((instrumentTransposition . ,(ly:make-pitch -1 0 0))
+ (shortInstrumentName . "Cbsn.")
+ (clefGlyph . "clefs.F")
+ (middleCPosition . 6)
+ (clefPosition . 2)
+ (instrumentCueName . ,(make-bold-markup "cbsn."))
+ (midiInstrument . "bassoon"))
+
+\new Staff \with {
+ instrumentName = #"Bassoon"
+}
+\relative c' {
+ \clef tenor
+ \compressFullBarRests
+ c2 g'
+ R1*16
+ \instrumentSwitch "contrabassoon"
+ c,,2 g \break
+ c,1 ~ | c1
+}
+@end lilypond