Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 3a7b4dfc766af1222d90c7f03a0844e6 > files > 8219

lilypond-doc-2.11.57-1mdv2009.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- header_tag -->
<html lang="en">
<head>
<title>Transpose - GNU LilyPond Notation Reference</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="GNU LilyPond Notation Reference">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Changing-multiple-pitches.html#Changing-multiple-pitches" title="Changing multiple pitches">
<link rel="prev" href="Octave-checks.html#Octave-checks" title="Octave checks">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1999--2007 by the authors

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.1 or any later version published by the Free Software
     Foundation; with no Invariant Sections.  A copy of the license is
     included in the section entitled ``GNU Free Documentation
     License''.
   -->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
hr { border:0; height:1; color: #000000; background-color: #000000; }
/* hr {
  border:  none;
  height: 1px;
  color: #666666;
  background-color: #666666;
}
body {
  border-left: 1px solid #666666;
  border-right: 1px solid #666666;
  color: #332d28;
  margin-right: auto;
  margin-left: auto;
  width: 60em;
  list-style-type: square;
  font-family: Arial,Helvetica,sans-serif;
  padding-right: 1em;
  padding-left: 1em;
}
a {
  border-bottom: 1px dashed #344242;
  text-decoration: none;
  color: #344242;
}
a:link {
  text-decoration: none;
}
a:visited {
  border-bottom: 1px dashed #666666;
  color: #666666;
}
a:active {
  border-bottom: 1px solid #00cccc;
  color: #00cccc;
}
a:hover {
  border-bottom: 1px solid #1d7b85;
  color: #1d7b85;
}
blockquote {
  border: 1px solid #cccccc;
  padding: 3px;
  width: 40em;
}
.node {
  border-left: 1px solid #666666;
  margin: -0.5em 0px 1em;
  padding: 2px 1px 0px;
  font-style: italic;
}
.node a {
  border:  none;
  text-decoration: underline;
  font-style: normal;
  font-weight: bold;
}
.verbatim {
  font-family: "Courier New",Courier,monospace;
}
.unnumberedsubsubsec {
  font-size: large;
  color: #1d7b85;
}
.subsubheading {
  font-size: large;
  color: #3b220d;
}
.contents {
  border: 1px dashed #339999;
  margin: 3px 2em;
  list-style-type: square;
  padding-right: 1em;
  width: 40em;
  background-color: #fcfff9;
}
.contents a {
  border-bottom: 1px dashed #423d34;
  text-decoration: none;
  color: #423d34;
}
.contents a:visited {
  border-bottom: 1px dashed #666666;
  color: #666666;
}
.contents a:active {
  border-bottom: 1px solid #f0d86d;
  color: #f0d86d;
}
.contents a:hover {
  border-bottom: 1px solid #3b220d;
  color: #3b220d;
}
.menu {
  border-left: 1px dashed #339999;
  margin: 3px 2em 1em;
  list-style-type: square;
  padding-left: 1.4em;
  width: 40em;
}
.unnumbered {
}
h2 {
  font-size: x-large;
  color: #1d7b85;
}
*/
--></style>
</head>
<BODY BGCOLOR=WHITE TEXT=BLACK>

<div class="node">
<p>
<a name="Transpose"></a>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Octave-checks.html#Octave-checks">Octave checks</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Changing-multiple-pitches.html#Changing-multiple-pitches">Changing multiple pitches</a>
<hr>
</div>

<h5 class="unnumberedsubsubsec">Transpose</h5>

<p><a name="index-transpose-93"></a><a name="index-transposing-94"></a><a name="index-transposition-95"></a><a name="index-transposition-of-pitches-96"></a><a name="index-transposition-of-notes-97"></a><a name="index-pitches_002c-transposition-of-98"></a><a name="index-notes_002c-transposition-of-99"></a><a name="index-g_t_005ctranspose-100"></a><a name="index-g_t_005ctranspose-101"></a>

   <p>A music expression can be transposed with <code>\transpose</code>.  The
syntax is

<pre class="example">\transpose <var>frompitch</var> <var>topitch</var> <var>musicexpr</var>
</pre>
   <p class="noindent">This means that <var>musicexpr</var> is transposed by the interval
between the pitches <var>frompitch</var> and <var>topitch</var>: any note
with pitch <var>frompitch</var> is changed to <var>topitch</var> and any
other note is transposed by the same interval.  Both pitches are
entered in absolute mode.

   <p>Consider a piece written in the key of D-major.  It can be
transposed up to E-major; note that the key signature is
automatically transposed as well.

   <blockquote>
<pre class="verbatim">     
     \transpose d e {
       \relative c' {
         \key d \major
         d4 fis a d
       }
     }
</pre>
     <p>
 <a href="../08/lily-202cfe8f.ly">
  <img align="middle"
    border="0" src="../08/lily-202cfe8f.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

   <p><a name="index-transposing-instruments-102"></a><a name="index-instruments_002c-transposing-103"></a>
If a part written in C (normal <var>concert pitch</var>) is to be
played on the A clarinet (for which an A is notated as a C and
thus sounds a minor third lower than notated), the appropriate
part will be produced with:

   <blockquote>
<pre class="verbatim">     
     \transpose a c' {
       \relative c' {
         \key c \major
         c4 d e g
       }
     }
</pre>
     <p>
 <a href="../c4/lily-a30d781d.ly">
  <img align="middle"
    border="0" src="../c4/lily-a30d781d.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

<p class="noindent">Note that we specify <code>\key&nbsp;c&nbsp;\major</code><!-- /@w --> explicitly.  If we
do not specify a key signature, the notes will be transposed but
no key signature will be printed.

   <p><code>\transpose</code> distinguishes between enharmonic pitches: both
<code>\transpose&nbsp;c&nbsp;cis</code><!-- /@w --> or <code>\transpose&nbsp;c&nbsp;des</code><!-- /@w --> will
transpose up a semitone.  The first version will print sharps and
the notes will remain on the same scale step, the second version
will print flats on the scale step above.

   <blockquote>
<pre class="verbatim">     
     music = \relative c' { c d e f }
     \new Staff {
       \transpose c cis { \music }
       \transpose c des { \music }
     }
</pre>
     <p>
 <a href="../93/lily-99a44b4c.ly">
  <img align="middle"
    border="0" src="../93/lily-99a44b4c.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

   <p><a name="index-transposing-instruments-104"></a><a name="index-instruments_002c-transposing-105"></a>
<code>\transpose</code> may also be used in a different way, to input
written notes for a transposing instrument.  The previous examples
show how to enter pitches in C (or <var>concert pitch</var>) and
typeset them for a transposing instrument, but the opposite is
also possible if you for example have a set of instrumental parts
and want to print a conductor's score.  For example, when entering
music for a B-flat trumpet that begins on a notated E (concert D),
one would write:

<pre class="example">musicInBflat = { e4 ... }
\transpose c bes, \musicInBflat
</pre>
   <p class="noindent">To print this music in F (e.g., rearranging to a French horn) you
could wrap the existing music with another <code>\transpose</code>:

<pre class="example">musicInBflat = { e4 ... }
\transpose f c' { \transpose c bes, \musicInBflat }
</pre>
   <p class="noindent">For more information about transposing instruments,
see <a href="Instrument-transpositions.html#Instrument-transpositions">Instrument transpositions</a>.

<p class="noindent">

<h5 class="subsubheading">Selected Snippets</h5>

<p><em>Transposing music with minimum accidentals</em>

   <p>This example uses some Scheme code to enforce enharmonic
modifications for notes in order to have the minimum number of
accidentals.  In this case, the following rules apply:

     <ul>
<li>Double accidentals should be removed

     <li>B sharp -&gt; C

     <li>E sharp -&gt; F

     <li>C flat -&gt; B

     <li>F flat -&gt; E

   </ul>

   <p>In this manner, the most natural enharmonic notes are chosen.

   <blockquote>
<pre class="verbatim">     
     #(define  (naturalize-pitch p)
       (let* ((o (ly:pitch-octave p))
              (a (* 4 (ly:pitch-alteration p)))
         ; alteration, a, in quarter tone steps, for historical reasons
              (n (ly:pitch-notename p)))
         (cond
          ((and (> a 1) (or (eq? n 6) (eq? n 2)))
           (set! a (- a 2))
           (set! n (+ n 1)))
          ((and (&lt; a -1) (or (eq? n 0) (eq? n 3)))
           (set! a (+ a 2))
           (set! n (- n 1))))
         (cond
          ((> a 2) (set! a (- a 4)) (set! n (+ n 1)))
          ((&lt; a -2) (set! a (+ a 4)) (set! n (- n 1))))
         (if (&lt; n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))
         (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))
         (ly:make-pitch o n (/ a 4))))
     
     #(define (naturalize music)
       (let* ((es (ly:music-property music 'elements))
              (e (ly:music-property music 'element))
              (p (ly:music-property music 'pitch)))
         (if (pair? es)
             (ly:music-set-property!
              music 'elements
              (map (lambda (x) (naturalize x)) es)))
         (if (ly:music? e)
             (ly:music-set-property!
              music 'element
              (naturalize e)))
         (if (ly:pitch? p)
             (begin
               (set! p (naturalize-pitch p))
               (ly:music-set-property! music 'pitch p)))
         music))
     
     naturalizeMusic =
     #(define-music-function (parser location m)
     					(ly:music?)
     			(naturalize m))
     
     music = \relative c' { c4 d e g }
     
     \score {
       \new Staff {
         \transpose c ais \music
         \naturalizeMusic \transpose c ais \music
         \transpose c deses \music
         \naturalizeMusic \transpose c deses \music
       }
       \layout { }
     }
</pre>
     <p>
 <a href="../c4/lily-abfae8cf.ly">
  <img align="middle"
    border="0" src="../c4/lily-abfae8cf.png" alt="[image of music]">
 </a>
</p>

   </blockquote>

<p class="noindent">

<h5 class="subsubheading">See also</h5>

   <p class="indent">

   <p>Notation Reference:
<a href="Instrument-transpositions.html#Instrument-transpositions">Instrument transpositions</a>.

   <p>Snippets:
<a href="../../../input/lsr/lilypond-snippets/Pitches.html#Pitches">Pitches</a>.

   <p>Internals Reference:
<a name="index-TransposedMusic-106"></a><a href="../lilypond-internals/TransposedMusic.html#TransposedMusic">TransposedMusic</a>.

   <p><a name="index-g_t_005ctranspose-107"></a><a name="index-g_t_005ctranspose-108"></a>
<a name="index-g_t_005cchordmode-109"></a><a name="index-g_t_005cchordmode-110"></a>
<a name="index-g_t_005crelative-111"></a><a name="index-g_t_005crelative-112"></a>

<p class="noindent">

<h5 class="subsubheading">Known issues and warnings</h5>

<p>The relative conversion will not affect <code>\transpose</code>,
<code>\chordmode</code> or <code>\relative</code> sections in its argument. 
To use relative mode within transposed music, an additional
<code>\relative</code> must be placed inside <code>\transpose</code>.

   <!-- footer_tag --><br><hr>
<div class="node">
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Octave-checks.html#Octave-checks">Octave checks</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Changing-multiple-pitches.html#Changing-multiple-pitches">Changing multiple pitches</a>
</div>

<div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;">
<p>
<font size="-1">
This page is for LilyPond-2.11.57 (development-branch).
<br>
<address>
Report errors to <a href="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs">http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs</a>. </address>
<br>
Your <a href="http://lilypond.org/web/devel/participating/documentation-adding">suggestions for the documentation</a> are welcome.
</font>
</p>
</div>


<P>
 Other languages: <a href="Transpose.fr.html">français</a>, <a href="Transpose.es.html">español</a>, <a href="Transpose.de.html">deutsch</a>.
 <BR>
 
</P>
</BODY></html>