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