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)
- Melodia simples em compasso quaternário (sem comentários)
- Melodia maior em compasso ternário (sem comentários)
- Duas melodias simultâneas (código comentado)
- Duas melodias simultâneas (sem comentário)
- Uma partitura simples a duas vozes (sem comentário)
- Usando Variáveis ou Macros (com comentário)
- Usando Variáveis ou Macros (sem comentário)
- Contraponto a duas vozes (utilizando variáveis)
- Início da Invenção a 2 vozes de J. S. Bach
- Piano com quatro vozes (ideal para condução de vozes)
% 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"
\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{}
}
\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{}
}
\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{}
}
\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{}
}
\version "2.10.0"
\score {
<<
\new Staff \relative c'' {
e2 d2
}
\new Staff \relative c'' {
g4 a b a
}
>>
\layout { }
\midi { }
}
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 { }
}
\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 { }
}
\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 { }
}
\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 { }
}
\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
}
}
}