Para testar os códigos escritos aqui, abra o site Weblily.net, clique na aba “Run Lilypond”, apague todo o conteúdo da janela da esquerda, copie cada código daqui e cole nessa janela da esquerda. Alguns segundos depois irá aparecer a partitura na janela da direita. Brinque a vontade…
Melodia simples em compasso quaternário (código comentado)
% toda vez que colocamos um "%" na frente da linha, % essa linha não é interpretada pelo programa. A isso % chamamos de comentar o código. Por exemplo, essas quatro % linhas não são interpretadas pelo Lilypond. % Assim sendo, vou comentar o código sempre que necessário % para explicar o que significa cada coisa. Se quiser, % pode deixar os comentários em seu código, ou apagá-los. \version "2.12.2" % é importante deixar a informação sobre a versão do programa. % Não altere essa linha! \header { title = "Esse é o título da música" } % Essa linha informa o título da música. Altere a parte entre aspas. \score { % É melhor usarmos o template sempre com o "\score" para gerar arquivos midi. \new Staff \relative c' { % Essa linha indica que teremos um novo pentagrama, cuja nota inicial % é o dó3. \clef treble % Clave de Sol. Se quiser clave de fá, mude para "\clef bass" \key c \major % Tonalidade de Dó maior. \time 4/4 % Compasso quaternário simples. c2 d e f % As notas da melodia. Note que são todas em minúsculo. \bar "|." % Barra final } % Fechei a chave que abri depois de "\relative c'" \midi{} % serve para gerar um arquivo MIDI \layout{} % Serve para mostrar a partitura. Essencial quando se usa o "\score" } % Fechei a chave que abri depois do "\score"
Melodia simples em compasso quaternário (sem comentários)
\version "2.12.2" \header { title = "Esse é o título da música" } \score { \new Staff \relative c' { \clef treble \key c \major \time 4/4 c2 d e f \bar "|." } \midi{} \layout{} }
Melodia maior em compasso ternário (sem comentários)
\version "2.12.2" \header { title = "Ternário" } \score { \new Staff \relative c' { \clef treble \key c \major \time 3/4 c2 d4 e8 f e d e4 g2. a4 f d b2 d4 c2. \bar "|." } \midi{} \layout{} }
Duas melodias simultâneas (código comentado)
\version "2.12.2" \header { title = "Contraponto simples a duas vozes" } \score { << % Esse símbolo de "<<" serve para indicar simultâneidade % de pentagramas. Quando abre "<<" depois tem que fechar % com ">>". % Note que essa música está em Lá maior, compasso binário simples. % Nas notas, "gis" significa "sol sustenido". O número 2 significa % "mínima" e o número 4 significa "semínima". % Outra coisa que gosto de fazer é organizar o código das notas da % melodia, dando um "Enter" entre cada compasso. Ou seja, cada compasso % fica numa linha diferente. % Também podemos incluir o "%" para iniciar um comentário na mesma linha % do código, mas depois dele. É útil para comentar aquela linha específica, % ou, no caso abaixo, indicar o número do compasso. % Início do pentagrama superior \new Staff \relative c'' { \clef treble \key a \major \time 2/4 a4 gis % Compasso 1 a b % Compasso 2 gis fis % Compasso 3 a gis % Compasso 4 a2 % Compasso 5 } % Fim do pentagrama superior % Início do pentagrama inferior \new Staff \relative c' { \clef treble \key a \major \time 2/4 a4 b % Compasso 1 cis d % Compasso 2 e d % Compasso 3 cis b % Compasso 4 a2 % Compasso 5 \bar "|." } % Fim do pentagrama inferior >> % Fechei a simultaneidade \midi{} \layout{} }
Duas melodias simultâneas (sem comentário)
\version "2.12.2" \header { title = "Contraponto simples a duas vozes" } \score { << \new Staff \relative c'' { \clef treble \key a \major \time 2/4 a4 gis % c. 1 a b % c. 2 gis fis % c. 3 a gis % c. 4 a2 % c. 5 } \new Staff \relative c' { \clef treble \key a \major \time 2/4 a4 b % c. 1 cis d % c. 2 e d % c. 3 cis b % c. 4 a2 % c. 5 \bar "|." } >> \midi{} \layout{} }
Uma partitura simples a duas vozes (sem comentário)
\version "2.10.0" \score { << \new Staff \relative c'' { e2 d2 } \new Staff \relative c'' { g4 a b a } >> \layout { } \midi { } }
Usando Variáveis ou Macros (com comentário)
De acordo com a Wikipedia, na programação, uma variável é um objeto (uma posição, frequentemente localizada na memória) capaz de reter e representar um valor ou expressão. Enquanto as variáveis só “existem” em tempo de execução, elas são associadas a “nomes”, chamados identificadores, durante o tempo de desenvolvimento.
Ou seja, variáveis são informações associadas a um identificador. Para deixar nosso código de Lilypond mais “limpo” podemos utilizar diversas variáveis antes de iniciar a partitura em si. Depois é só chamá-las dentro da partitura.
Para o Lilypond, tudo que começa com a barra invertida “\” é a indicação de uma função do programa, ou uma variável que é “chamada” para aquela posição. Vamos criar uma partitura muito simples com uma variável (notas) associadas a um nome qualquer (identificador da variável). Na hora de criar a variável, o identificador não pode começar com barra invertida. De agora em diante, sempre que ver uma informação sem a barra invertida, pode desconfiar que é uma variável que será chamada mais tarde no meio da partitura.
Vou pegar o exemplo anterior e tirar toda a informação das notas que estão dentro da seção “score”, e colocá-las antes, numa macro para cada uma.
\version "2.10.0" % Aqui iremos criar a primeira variável. Vamos usar % o identificador "cima" para as notas que vão ficar % na voz superior. Depois do nome do identificador, % a gente coloca o sinal de igual "=" e inicia a variável. % Dessa forma, quando a gente chamar a variável "\cima" % tudo que estiver depois do sinal de igual será interpretado % naquela posição. cima = \relative c'' { e2 d2 } % Aqui iremos criar a seguna variável com o % identificador "baixo" para as notas que irão ficar % na voz inferior. baixo = \relative c'' { g4 a b a } % Depois de criadas as duas variáveis, a gente inicia a % partitura e, no local onde seriam escrias as notas, % nós só precisamos chama as variáveis. % Perceba como essa seção está muito mais "limpa". \score { << \new Staff \cima \new Staff \baixo >> \layout { } \midi { } } Usando Variáveis ou Macros (sem comentário) \version "2.10.0" cima = \relative c'' { e2 d2 } baixo = \relative c'' { g4 a b a } \score { << \new Staff \cima \new Staff \baixo >> \layout { } \midi { } }
Contraponto a duas vozes (utilizando variáveis)
\version "2.10.0" %%%%%%%%%%%%%%%%%%%%%%%%%% Cabeçalho %%%%%%%%%%%%% \header { title = "O sapo não lava o pé" subtitle = "Contraponto sobre melodias infantis " composer = "Hugo Ribeiro" tagline = "hugoleo75@gmail.com" } %%%%%%%%%%%%%%%%%%%%%%%%%% Informações gerais %%%%%% global = { \set Staff.instrumentName = #"Flauta " \set Staff.shortInstrumentName = "Fl. " \set Staff.midiInstrument = "acoustic grand" \tempo 4 = 80 } %%%%%%%%%%%%%%%%%%%%%%%%%% Voz superior %%%%%%%%%%%%% cima = \relative c'' { \clef treble \time 2/2 \set Staff.instrumentName = "Cpt" \partial 4*1 b4 % c.Anacruse d2 c4 b c2 g4 b d2 c4 b a2 r4 s4 \bar "|." } %%%%%%%%%%%%%%%%%%%%%%%%%% Voz inferior %%%%%%%%%%%%% baixo = \relative c'' { \clef treble \time 2/2 \set Staff.instrumentName = "CF" \partial 4*1 g4 % c.Anacruse c8 c4 g8 a4 g % c.1 e2 r4 g4 % c.2 c8 c4 g8 a4 g % c.3 f2 r4 s4 % c.4 \bar "|." } %%%%%%%%%%%%%%%%%%%%%%%%%% Imprimir partitura %%%%%%%%%%%%% \score { \new StaffGroup << \new Staff << \cima >> \new Staff << \baixo >> >> \layout { } \midi { } }
Início da Invenção a 2 vozes de J. S. Bach
\version "2.12.2" \header{ composer = "Johann Sebastian Bach (1685-1750)" title = "Invenção a duas vozes - Nº 1" opus = "BWV 772" } voiceone = \relative c' { r16 c[ d e] f[ d e c] g'8[ c b^\prall c] | % 1 d16[ g, a b] c[ a b g] d'8[ g f^\prall g] | % 2 \bar "|." } voicetwo = \relative c { \clef "bass" r2 r16 c[ d e] f[ d e c] | % 1 g'8[ g,] r4 r16 g'[ a b] c[ a b g] | % 2 \bar "|." } \score { \context PianoStaff << \context Staff = "one" << \voiceone >> \context Staff = "two" << \voicetwo >> >> \layout { } \midi { } } Piano com quatro vozes (ideal para condução de vozes) \version "2.12.2" \header { % title = "Kostka Exemplo 11-04" % title = "Bach " subtitle = "" composer = "" } \paper { #(define dump-extents #t) indent = 0\mm line-width = 80\mm - 2.0 * 0.4\in force-assignment = #"" line-width = #(- line-width (* mm 3.000000)) } (set-global-staff-size 15) global = { \key f \major \time 3/4 \partial 4*1 } cima = { \global << \relative c'' { c d e f } \ \relative c' { c d e f } >> } baixo = { \global \clef "bass" << \relative c { c d e f } \ \relative c, { c d e f } >> } \score { \new PianoStaff = "piano" << \new Staff \with {\remove "Time_signature_engraver"} { \cima } \new Staff \with {\remove "Time_signature_engraver"} { \baixo } >> \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 60 4) } } \layout { ragged-right = ##f \context { \Staff \consists Horizontal_bracket_engraver } } }