Templates de Lilypond

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...

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