Browse Source

Introduce the new songbook format.

This release now uses JSON coded data to represent a songbook. Songbook are stored in .sb files. The generation of the corresponding .tex file is done by the songbook.py program and uses templates stored in templates/. The default template is songbook.tmpl. It produces songbooks similar to the previous version of the songbook software suite.
remotes/origin/translate_notes
Alexandre Dupas 14 years ago
parent
commit
99657d6c86
  1. 106
      makefile
  2. 34
      naheulbeuk.sb
  3. 138
      songbook.py
  4. 12
      songbook.sb
  5. 73
      templates/songbook.tmpl
  6. 17
      test.sb
  7. 185
      volume-1.sb
  8. 93
      volume-2.sb

106
makefile

@ -1,4 +1,4 @@
# Copyright (c) 2008 Alexandre Dupas <alexandre.dupas@gmail.com>
# Copyright (c) 2008-2010 Alexandre Dupas <alexandre.dupas@gmail.com>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
@ -15,62 +15,35 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
SRC := $(wildcard *.tex)
SONGBOOKS := $(wildcard *.sb)
TARGETS = $(SONGBOOKS:%.sb=%)
SOURCES := $(shell egrep -l '^[^%]*\\begin\{document\}' *.tex)
CIBLE = $(SOURCES:%.tex=%) $(SONGBOOKS:%.sb=%)
PDF = $(CIBLE:%=%.pdf)
PSF = $(CIBLE:%=%.ps.gz)
SONGS = songs.sbd
SONGS_SRC = $(shell ls songs/*/*.sg)
PDF = $(TARGETS:%=%.pdf)
PSF = $(TARGETS:%=%.ps.gz)
CHORDS = chords.tex
CHORDS_SRC = $(shell ls songs/*/*.sg)
MAKE_INDEX=./songbook-makeindex.py
MAKE_SONGDB=./songbook-volume.py
MAKE_CHORDS=./utils/songbook-gtab.py
PRINT=printf "%s\n"
PRINTTAB=printf "\t%s\n"
ifeq ($(shell which ikiwiki),)
IKIWIKI=$(ECHO) "** ikiwiki not found" >&2 ; $(ECHO) ikiwiki
else
IKIWIKI=ikiwiki
endif
MAKE_SONGBOOK=./songbook.py
MAKE_INDEX=./songbook-makeindex.py
MAKE_CHORDS=./utils/songbook-gtab.py
ifeq ($(shell which lilypond),)
LILYPOND=$(ECHO) "** lilypond not found" >&2 ; $(ECHO) lilypond
LILYFILE=''
LILYPOND=$(ECHO) "** lilypond not found" >&2 ; $(ECHO) lilypond
LILYFILE=''
else
LILYPOND=lilypond
LILYSRC=$(wildcard lilypond/*.ly)
LILYFILE=$(LILYSRC:%.ly=%.pdf)
LILYPOND=lilypond
LILY_SRC=$(wildcard lilypond/*.ly)
LILYFILE=$(LILY_SRC:%.ly=%.pdf)
endif
# Get dependencies (that can also have dependencies)
define get_dependencies
deps=`perl -ne '($$_)=/^[^%]*\\\(?:include|input)\{(.*?)\}/;@_=split /,/; foreach $$t (@_) { print "$$t "}' $<`
endef
# Get inclusion only files (that can not have dependencies)
define get_inclusions
incl=`perl -ne '($$_)=/^[^%]*\\\(?:newauthorindex|newindex)\{.*\}\{(.*?)\}/;@_=split /,/; foreach $$t (@_) { print "$$t.sbx "}' $<`
endef
define get_prereq
prep=`perl -ne '($$_)=/^[^%]*\\\(?:newauthorindex|newindex)\{.*\}\{(.*?)\}/;@_=split /,/; foreach $$t (@_) { print "$$t.sxd "}' $<`
endef
############################################################
### Cibles
### Targets
default: chordbook.pdf
default: songbook.pdf
all: $(PDF)
@ -82,17 +55,11 @@ pdf: $(PDF)
lilypond: $(LILYFILE)
clean: cleandoc
@rm -f $(SRC:%.tex=%.d)
@rm -f $(CIBLE:%=%.aux)
@rm -f $(CIBLE:%=%.toc)
@rm -f $(CIBLE:%=%.out) $(CIBLE:%=%.log) $(CIBLE:%=%.nav) $(CIBLE:%=%.snm)
@rm -f $(CIBLE:%=%.dvi)
@rm -f $(SONGS)
@rm -f *.sbd
clean:
@rm -f $(TARGETS:%=%.d) $(TARGETS:%=%.tex) $(TARGETS:%=%.aux) \
$(TARGETS:%=%.toc) $(TARGETS:%=%.out) $(TARGETS:%=%.log) \
$(TARGETS:%=%.nav) $(TARGETS:%=%.snm) $(TARGETS:%=%.dvi)
@rm -f *.sbx *.sxd
@rm -f ./lilypond/*.ps
@rm -f $(SONGBOOKS:%.sb=%.tex)
cleanall: clean
@rm -f $(PDF) $(PSF)
@ -100,14 +67,6 @@ cleanall: clean
depend:
doc : documentation
documentation:
$(IKIWIKI) doc html -v --wikiname "Songbook Documentation" --plugin=goodstuff --set usedirs=0
cleandoc:
@rm -rf "doc/.ikiwiki" html
############################################################
$(PSF): LATEX = latex
@ -129,23 +88,13 @@ $(PDF): %.pdf: %.tex %.aux
%.sbx: %.sxd
$(MAKE_INDEX) $< > $@
%.d: %.tex
@$(get_dependencies) ; $(PRINT) "$< $@: $$deps" > $@
@$(get_inclusions) ; $(PRINT) "$(patsubst %.tex,%.pdf,$<) : $$incl" >> $@ ; $(PRINTTAB) "\$$(LATEX) $<" >> $@ ;
@$(get_prereq) ; $(PRINT) "$$prep : $(patsubst %.tex,%.aux,$<)" >> $@ ;
include $(SOURCES:%.tex=%.d)
# songbook related rules
%.aux: $(SONGS)
%.tex: %.sb
$(MAKE_SONGBOOK) -s $< -o $@
COMMA=,
$(SONGS): $(SONGS_SRC)
@$(PRINT) "\graphicspath{{img/},$(patsubst %,{%}$(COMMA),$(dir $(SONGS_SRC)))}" > $@
@cat $(SONGS_SRC) >> $@
%.d: %.sb
$(MAKE_SONGBOOK) -s $< -d -o $@
%.sbd: %.sgl
@$(MAKE_SONGDB) --songs=$< --output=$@
include $(SONGBOOKS:%.sb=%.d)
%.pdf: %.ly
@$(LILYPOND) --output=$(@:%.pdf=%) $<
@ -154,12 +103,3 @@ $(SONGS): $(SONGS_SRC)
$(CHORDS): $(CHORDS_SRC)
$(MAKE_CHORDS) -o $@
%.tex: %.sb
$(PRINT) "\newcommand{\template}{" > $@
cat $< >> $@
$(PRINT) "}" >> $@
$(PRINT) "\input{template.tex}" >> $@
# Create an empty mybook.sgl file if it does not exist
mybook.sgl:
touch $@

34
naheulbeuk.sb

@ -0,0 +1,34 @@
{
"template" : "songbook.tmpl",
"title" : "Le Donjon de Naheulbeuk",
"author" : "Crep (R.Goffe) \\and Lohrun (A.Dupas)",
"subtitle" : "Recueil de chansons non-officiel",
"version" : "0.4",
"mail" : "crep@team-on-fire.com",
"picture" : "naheulbeuk01",
"picturecopyrigth" : "©PenOfChaos",
"footer" : "",
"licence" : "\\input{license.tex}",
"songs" : [
"Belyscendre/Mon_pere_veut_me_marier.sg",
"Belyscendre/Prends_garde_au_loup.sg",
"Le_Donjon_de_Naheulbeuk/10_sous_dans_ma_poche.sg",
"Le_Donjon_de_Naheulbeuk/A_l_aventure_compagnons.sg",
"Le_Donjon_de_Naheulbeuk/Bugger_off.sg",
"Le_Donjon_de_Naheulbeuk/Geste_heroique.sg",
"Le_Donjon_de_Naheulbeuk/La_biere_du_donjon.sg",
"Le_Donjon_de_Naheulbeuk/La_compagnie_du_chien_rugissant.sg",
"Le_Donjon_de_Naheulbeuk/La_complainte_de_la_serveuse.sg",
"Le_Donjon_de_Naheulbeuk/La_polka_du_menestrel.sg",
"Le_Donjon_de_Naheulbeuk/La_vie_d_aventurier.sg",
"Le_Donjon_de_Naheulbeuk/Les_chaussettes_du_nain.sg",
"Le_Donjon_de_Naheulbeuk/Les_elfes_de_GreenElven.sg",
"Le_Donjon_de_Naheulbeuk/Les_epees_Durandil.sg",
"Le_Donjon_de_Naheulbeuk/Les_souliers_de_Lady_Fae.sg",
"Le_Donjon_de_Naheulbeuk/Meme_pas_mage.sg",
"Le_Donjon_de_Naheulbeuk/Mon_ancetre_Gurdil.sg",
"Le_Donjon_de_Naheulbeuk/Noel_en_Mordor.sg",
"Le_Donjon_de_Naheulbeuk/Troll_farceur_et_elfe_farci.sg",
"Le_Donjon_de_Naheulbeuk/Un_boulet_dans_le_groupe.sg"
]
}

138
songbook.py

@ -0,0 +1,138 @@
#!/usr/bin/python
#
import getopt, sys
import os.path
import glob
import re
import json
def makeTexFile(songbook, output):
name = output[:-4]
# default value
dir = ['img']
template = "songbook.tmpl"
songs = []
booktype = ["chorded"]
# parse the songbook data
if "template" in songbook:
template = songbook["template"]
if "songs" in songbook:
songs = songbook["songs"]
if "booktype" in songbook:
booktype = songbook["booktype"]
# output relevant fields
out = open(output, 'w')
# output \template
out.write('\\newcommand{\\template}{\n')
for key in ["title", "author", "subtitle", "version", "mail", "picture", "picturecopyright", "footer", "licence"]:
if key in songbook:
out.write(' \\'+key+'{{{data}}}\n'.format(data=songbook[key]))
out.write('}\n')
# output \booktype
out.write('\\newcommand{{\\booktype}}{{{data}}}'.format(data=','.join(booktype)))
# output \songlist
if not type(songs) is list:
if songs == "all":
songs = map(lambda x: x[6:], glob.glob('songs/*/*.sg'))
if len(songs) > 0:
out.write('\\newcommand{\\songslist}{\n')
dir += map(os.path.dirname, map(lambda x:"songs/"+x, songs))
dir = set(dir)
out.write(' \\graphicspath{\n')
for dirname in dir:
out.write(' {{{imagedir}/}},\n'.format(imagedir=dirname))
out.write(' }\n')
for song in songs:
out.write(' \\input{{songs/{songfile}}}\n'.format(songfile=song.strip()))
out.write('}\n')
tmpl = open("templates/"+template, 'r')
out.write(tmpl.read().replace("SONGBOOKNAME", name+"_index"))
tmpl.close()
out.close()
def makeDepend(sb, output):
name = output[:-2]
# pattern that get dependencies
dependsPattern = re.compile(r"^[^%]*(?:include|input)\{(.*?)\}")
indexPattern = re.compile(r"^[^%]*\\(?:newauthor|new)index\{.*\}\{(.*?)\}")
# check for deps (in sb data)
deps = []
if type(sb["songs"]) is list:
deps += map(lambda x: "songs/"+x, sb["songs"])
for k in sb.keys():
if not type(sb[k]) is list:
match = dependsPattern.match(sb[k])
if match:
deps += [match.group(1)]
# check for index (in template file)
if "template" in sb:
filename = "templates/"+sb["template"]
else:
filename = "templates/songbook.tmpl"
idx = []
tmpl = open(filename)
for l in tmpl:
match = indexPattern.match(l)
if match:
idx.append(match.group(1).replace("SONGBOOKNAME", name+"_index"))
tmpl.close()
# write .d file
out = open(output, 'w')
out.write('{0} {1} : {2}\n'.format(output, name+".tex", ' '.join(deps)))
out.write('{0} : {1}\n'.format(name+".pdf", ' '.join(map(lambda x: x+".sbx",idx))))
out.write('\t$(LATEX) {0}\n'.format(name+".tex"))
out.write('{0} : {1}\n'.format(' '.join(map(lambda x: x+".sxd",idx)), name+".aux"))
out.close()
def usage():
print "No usage information yet."
def main():
try:
opts, args = getopt.getopt(sys.argv[1:],
"hs:o:d",
["help","songbook=","output=","depend"])
except getopt.GetoptError, err:
# print help and exit
print str(err)
usage()
sys.exit(2)
songbook = None
depend = False
output = None
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit()
elif o in ("-s", "--songbook"):
songbook = a
elif o in ("-d", "--depend"):
depend = True
elif o in ("-o", "--output"):
output = a
else:
assert False, "unhandled option"
if songbook and output:
f = open(songbook)
sb = json.load(f)
f.close()
if depend:
makeDepend(sb, output)
else:
makeTexFile(sb, output)
if __name__ == '__main__':
main()

12
songbook.sb

@ -0,0 +1,12 @@
{
"template" : "songbook.tmpl",
"title" : "Recueil de chansons pour guitare",
"author" : "Romain Goffe \\and Alexandre Dupas",
"version" : "3.1",
"mail" : "crep@team-on-fire.com",
"picture" : "feel-the-music",
"picturecopyrigth" : "©foxygamergirl @ deviantart.com",
"footer" : "\\begin{flushleft}\\includegraphics[width=3cm]{on-fire}\\end{flushleft}",
"licence" : "\\input{license.tex}",
"songs" : "all"
}

73
templates/songbook.tmpl

@ -0,0 +1,73 @@
% Copyright (C) 2009-2010 Romain Goffe, Alexandre Dupas
% Copyright (C) 2008 Kevin W. Hamlen
%
% This program is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License
% as published by the Free Software Foundation; either version 2
% of the License, or (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
% MA 02110-1301, USA.
%
% The latest version of this program can be obtained from
% http://songs.sourceforge.net.
%
% Modified to serve personnal purposes. Newer versions can be
% obtained from http://www.lohrun.net.
% template variables
\providecommand{\template}{}
\providecommand{\songslist}{}
\providecommand{\booktype}{chorded}
% default template
\newcommand{\defaulttemplate}{
\title{Recueil de chansons pour guitare}
\author{Romain Goffe \and Alexandre Dupas}
\subtitle{}
\version{3.1}
\mail{crep@team-on-fire.com}
\picture{feel-the-music}
\picturecopyright{©foxygamergirl @ deviantart.com}
\footer{
\begin{flushleft}
\includegraphics[width=3cm]{on-fire}
\end{flushleft}
}
\licence{\input{license.tex}}
}
% begin document
\documentclass[\booktype]{crepbook}
\usepackage[utf8]{inputenc}
\usepackage[english,french]{babel}
\defaulttemplate
\template
\newindex{titleidx}{SONGBOOKNAME_title}
\newauthorindex{authidx}{SONGBOOKNAME_auth}
\graphicspath{
{img/},
}
\begin{document}
\maketitle
\showindex{Index des chansons}{titleidx}
\showindex{Index des auteurs}{authidx}
\songsection{Chansons}
\begin{songs}{titleidx,authidx}
\songslist
\end{songs}
\end{document}
% end document

17
test.sb

@ -1,10 +1,9 @@
\defaulttemplate
\title{Ceci est un test du template}
\renewcommand{\songslist}{
\graphicspath{
{img/},
{songs/Le_Donjon_de_Naheulbeuk/},
}
\input{songs/Le_Donjon_de_Naheulbeuk/Geste_heroique.sg}
\input{songs/Le_Donjon_de_Naheulbeuk/La_biere_du_donjon.sg}
{
"template" : "songbook.tmpl",
"booktype" : ["lyric"],
"title" : "Ceci est un test du template",
"songs" : [
"Le_Donjon_de_Naheulbeuk/Geste_heroique.sg",
"Le_Donjon_de_Naheulbeuk/La_biere_du_donjon.sg"
]
}

185
volume-1.sb

@ -0,0 +1,185 @@
{
"template" : "songbook.tmpl",
"title" : "Recueil de chansons pour guitare",
"author" : "Romain Goffe \\and Alexandre Dupas",
"subtitle" : "Tome 1",
"version" : "3.1",
"mail" : "crep@team-on-fire.com",
"picture" : "feel-the-music",
"picturecopyrigth" : "©foxygamergirl @ deviantart.com",
"footer" : "\\begin{flushleft}\\includegraphics[width=3cm]{on-fire}\\end{flushleft}",
"licence" : "\\input{license.tex}",
"songs" : [
"Alain_Bashung/Gaby_oh_gaby.sg",
"Amy_MacDonald/Mr._Rock_n_Roll.sg",
"Amy_MacDonald/This_is_the_life.sg",
"Anais/Mon_coeur_mon_amour.sg",
"Avril_Lavigne/Things_I_ll_never_say.sg",
"Barry_Louis_Polisar/All_I_Want_Is_You.sg",
"Belle_Sebastian/Piazza_New-York_catcher.sg",
"Benabar/Le_diner.sg",
"Benabar/Quatre_murs_et_un_toit.sg",
"Benabar/Y_a_une_fille_qu_habite_chez_moi.sg",
"Bob_Dylan/Blowin_in_the_wind.sg",
"Bob_Dylan/Knocking_on_heavens_door.sg",
"Bruce_Springsteen/Bring_em_home.sg",
"Bruce_Springsteen/Buffalo_gals.sg",
"Bruce_Springsteen/O_Mary_don_t_you_weep.sg",
"Carter_Family/In_the_highways.sg",
"Carter_Family/Keep_on_the_sunny_side.sg",
"Cat_Stevens/My_Lady_d_Arbanville.sg",
"Cat_Stevens/Sad_Lisa.sg",
"Cat_Stevens/The_wind.sg",
"Charles_Aznavour/Emmenez-moi.sg",
"Dessins_Animes/Les_mysterieuses_cites_d_or.sg",
"Dessins_Animes/L_histoire_d_Actarus.sg",
"Dessins_Animes/Nicky_Larson.sg",
"Dessins_Animes/Tom_Sawyer_debut.sg",
"Dessins_Animes/Tom_Sawyer_fin.sg",
"Eels/Dirty_girl.sg",
"Eels/Hey_man.sg",
"Eels/I_like_birds.sg",
"Eels/Packing_blankets.sg",
"Francis_Cabrel/Je_l_aime_a_mourir.sg",
"Francis_Cabrel/Petite_Marie.sg",
"Garfunkel_and_Oates/Fuck_you.sg",
"Georges_Brassens/Cupidon_s_en_fout.sg",
"Georges_Brassens/Grand_pere.sg",
"Georges_Brassens/La_chanson_du_herisson.sg",
"Georges_Brassens/La_mauvaise_reputation.sg",
"Georges_Brassens/Le_gorille.sg",
"Georges_Brassens/Les_copains_d_abord.sg",
"Graeme_Allwright/Ca_je_l_ai_jamais_vu.sg",
"Graeme_Allwright/Il_faut_que_je_m_en_aille.sg",
"Graeme_Allwright/Johnny.sg",
"Graeme_Allwright/Jolie_Bouteille.sg",
"Graeme_Allwright/Jusqu_a_la_ceinture.sg",
"Graeme_Allwright/La_mouche_bleue.sg",
"Graeme_Allwright/Petites_boites.sg",
"Graeme_Allwright/Petit_garcon.sg",
"Green_Day/Boulevard_of_broken_dreams.sg",
"Herman_Dune/I_wish_I_could_see_you_soon.sg",
"Howie_Day/Collide.sg",
"Hugues_Aufray/Je_reviens.sg",
"Hugues_Aufray/Le_Bon_Dieu_s_enervait.sg",
"Hugues_Aufray/Le_petit_ane_gris.sg",
"Hugues_Aufray/N_y_pense_plus_tout_est_bien.sg",
"Hugues_Aufray/Santiano.sg",
"Hugues_Aufray/Tu_sens_bon_la_terre.sg",
"Jacques_Brel/Vesoul.sg",
"Jeff_Buckley/Hallelujah.sg",
"Joe_Dassin/Le_chemin_de_Papa.sg",
"Joe_Dassin/Siffler_sur_la_colline.sg",
"Kana/Plantation.sg",
"Karpatt/Le_magicien.sg",
"Karpatt/Les_ptits_cailloux.sg",
"Karpatt/Melisande.sg",
"Kimya_Dawson/Tree_hugger.sg",
"La_Rue_Ketanou/Impossible.sg",
"La_Rue_Ketanou/La_rue_ketanou.sg",
"La_Rue_Ketanou/Les_cigales.sg",
"La_Rue_Ketanou/Les_mots.sg",
"La_Rue_Ketanou/Ma_faute_a_toi.sg",
"La_Rue_Ketanou/Tu_parles_trop.sg",
"Le_Donjon_de_Naheulbeuk/10_sous_dans_ma_poche.sg",
"Le_Donjon_de_Naheulbeuk/A_l_aventure_compagnons.sg",
"Le_Donjon_de_Naheulbeuk/Bugger_off.sg",
"Le_Donjon_de_Naheulbeuk/La_biere_du_donjon.sg",
"Le_Donjon_de_Naheulbeuk/La_vie_d_aventurier.sg",
"Le_Donjon_de_Naheulbeuk/Les_elfes_de_GreenElven.sg",
"Le_Donjon_de_Naheulbeuk/Les_epees_Durandil.sg",
"Le_Donjon_de_Naheulbeuk/Les_souliers_de_Lady_Fae.sg",
"Le_Donjon_de_Naheulbeuk/Mon_ancetre_Gurdil.sg",
"Le_Donjon_de_Naheulbeuk/Troll_farceur_et_elfe_farci.sg",
"Le_Donjon_de_Naheulbeuk/Un_boulet_dans_le_groupe.sg",
"Les_Amis_D_Ta_Femme/Cayenne.sg",
"Les_Amis_D_Ta_Femme/Maree_Basse.sg",
"Les_Cowboys_Fringants/Droit_devant.sg",
"Les_Cowboys_Fringants/Etoiles_filantes.sg",
"Les_Cowboys_Fringants/Histoire_de_peche.sg",
"Les_Cowboys_Fringants/La_manifestation.sg",
"Les_Cowboys_Fringants/Les_hirondelles.sg",
"Les_Cowboys_Fringants/Toune_d_automne.sg",
"Les_Fatals_Picards/Chasse_peche_et_nature.sg",
"Les_Hurlements_d_Leo/Poemes.sg",
"Les_Momes_du_CE2/Mamadou_avait_mal_aux_dents.sg",
"Les_Ogres_de_Barback/3_-_0.sg",
"Les_Ogres_de_Barback/Accordeon_pour_les_cons.sg",
"Les_Ogres_de_Barback/Contes_vents_et_marees.sg",
"Les_Ogres_de_Barback/Grand-mere.sg",
"Les_Ogres_de_Barback/L_air_bete.sg",
"Les_Ogres_de_Barback/La_premiere_fois.sg",
"Les_Ogres_de_Barback/Petite_societe.sg",
"Les_Ogres_de_Barback/Pour_me_rendre_a_mon_bureau.sg",
"Les_Ogres_de_Barback/Rue_de_Panam.sg",
"Les_Tetes_Raides/L_iditente.sg",
"Les_Tetes_Raides/Patalo.sg",
"Les_Tit_s_Nassels/Les_tit_s_ballades.sg",
"Les_VRP/Leo.sg",
"Les_Wriggles/Julie_la_petite_olive.sg",
"Les_Wriggles/Monolithe.sg",
"Les_Wriggles/Poupine_et_Thierry.sg",
"Linkin_Park/Numb.sg",
"Louise_Attaque/Depuis_toujours.sg",
"Louise_Attaque/Lea.sg",
"Mano_Negra/Out_of_time_man.sg",
"Manu_Chao/Bienvenida_a_Tijuana.sg",
"Manu_Chao/Clandestino.sg",
"Manu_Chao/Desaparecido.sg",
"Maurice_Dulac/Dis_a_ton_fils.sg",
"Mes_souliers_sont_rouges/Les_souliers_rouges.sg",
"Mes_souliers_sont_rouges/Sainte-Cecile.sg",
"Mes_souliers_sont_rouges/The_rooster.sg",
"Moriarty/Jimmy.sg",
"Noir_Desir/Aux_sombres_heros_de_l_amer.sg",
"Norah_Jones/Somewhere_over_the_rainbow.sg",
"Oasis/Wonderwall.sg",
"Oldelaf_et_Monsieur_D/Cafe.sg",
"Oldelaf_et_Monsieur_D/Nathalie.sg",
"Oldelaf_et_Monsieur_D/Petit_Pierrot.sg",
"Oldelaf_et_Monsieur_D/Raoul_le_pitbull.sg",
"Oldelaf_et_Monsieur_D/Rue_de_Nantes.sg",
"Oldelaf_et_Monsieur_D/Trahis.sg",
"Patrick_Bouchitey/Jesus_reviens.sg",
"Pierre_Perret/Lily.sg",
"Pixies/Where_Is_My_Mind.sg",
"Pow_Wow/Le_lion_est_mort_ce_soir.sg",
"Radiohead/Creep.sg",
"Renaud/Des_que_le_vent_soufflera.sg",
"Renaud/Hexagone.sg",
"Renaud/Laisse_Beton.sg",
"Renaud/Manu.sg",
"Renaud/Marche_a_l_ombre.sg",
"Renaud/Mistral_Gagnant.sg",
"Renaud/Petite_fillle_des_sombres_rues.sg",
"Simon_Garfunkel/Cecilia.sg",
"Simon_Garfunkel/El_condor_pasa.sg",
"Simon_Garfunkel/Feeling_groovy.sg",
"Simon_Garfunkel/Scarborough_Fair.sg",
"Simon_Garfunkel/The_boxer.sg",
"Simon_Garfunkel/The_leaves_that_are_green.sg",
"Simon_Garfunkel/The_sounds_of_silence.sg",
"Simon_Garfunkel/Wednesday_morning_3a.m.sg",
"Sinsemilia/J_prefere_100_fois.sg",
"Steve_Waring/Le_matou.sg",
"Terra_Naomi/Say_It_s_Possible.sg",
"The_Beatles/Hey_Jude.sg",
"The_Beatles/Ob-la-di_ob-la-da.sg",
"The_Beatles/Yellow_submarine.sg",
"The_Beatles/Yesterday.sg",
"The_Eagles/Hotel_California.sg",
"The_Moldy_Peaches/Anyone_Else_But_You.sg",
"The_Pogues/Dirty_Old_Town.sg",
"The_Pogues/Fairytale_of_New-York.sg",
"Tri_Yann/La_jument_de_Michao.sg",
"Tri_Yann/La_ville_que_j_ai_tant_aimee.sg",
"Tri_Yann/Les_prisons_de_Nantes.sg",
"Tri_Yann/Si_mort_a_mors.sg",
"Tryo/Ce_que_l_on_s_aime.sg",
"Tryo/Le_petit_chose.sg",
"Tryo/L_hymne_de_nos_campagnes.sg",
"Yves_Jamait/Et_je_bois.sg",
"Yvon_Etienne/Chemise_rouge.sg",
"Yvon_Etienne/Y_a_des_nouilles_et_du_nougat.sg"
]
}

93
volume-2.sb

@ -0,0 +1,93 @@
{
"template" : "songbook.tmpl",
"title" : "Recueil de chansons pour guitare",
"author" : "Crep (R. Goffe) \\and Lohrun (A. Dupas)",
"subtitle" : "Tome 2",
"version" : "3.1",
"mail" : "crep@team-on-fire.com",
"picture" : "Sound__by_Ellesh",
"picturecopyrigth" : "©foxygamergirl @ deviantart.com",
"footer" : "\\begin{flushleft}\\includegraphics[width=3cm]{on-fire}\\end{flushleft}",
"licence" : "\\input{license.tex}",
"songs" : [
"Aaron/U_turn_lili.sg",
"Alexis_HK/Gaspard.sg",
"Anny_Et_Jean-Marc_Versini/La_danse_des_esquimaux.sg",
"Beau_Dommage/La_complainte_du_phoque_en_alaska.sg",
"Belyscendre/Mon_pere_veut_me_marier.sg",
"Belyscendre/Prends_garde_au_loup.sg",
"Ben_Harper/Waiting_on_an_angel.sg",
"Ben_Harper/Widow_of_a_living_man.sg",
"Bob_Dylan/Mr_tambourine_man.sg",
"Boby_Lapointe/La_maman_des_poissons.sg",
"Britney_Spears/Baby_one_more_time.sg",
"Bruce_Springsteen/Pay_me_my_money_down.sg",
"Cat_Stevens/Father_and_son.sg",
"Cat_Stevens/Here_comes_my_baby.sg",
"Claude_Nougaro/Armstrong.sg",
"Cranberries/Animal_instinct.sg",
"Cranberries/Zombie.sg",
"Debout_Sur_Le_Zinc/Poil_aux_yeux.sg",
"Dessins_Animes/Themis_et_Nono.sg",
"Georges_Brassens/Le_petit_cheval.sg",
"Green_Day/American_idiot.sg",
"Henri_Des/Les_betises_a_l_ecole.sg",
"Henri_Des/Mon_cheval_gris.sg",
"Joe_Dassin/La_fleur_aux_dents.sg",
"Jonathan_Coulton/Still_alive.sg",
"Karpatt/Des_gnons_pour_des_pelles.sg",
"Karpatt/Des_idees.sg",
"Karpatt/Leon.sg",
"Karpatt/Les_canards_en_plastique.sg",
"La_Famille_Maestro/Le_rat_de_l_opera.sg",
"Le_Donjon_de_Naheulbeuk/Geste_heroique.sg",
"Le_Donjon_de_Naheulbeuk/La_compagnie_du_chien_rugissant.sg",
"Le_Donjon_de_Naheulbeuk/La_complainte_de_la_serveuse.sg",
"Le_Donjon_de_Naheulbeuk/La_polka_du_menestrel.sg",
"Le_Donjon_de_Naheulbeuk/Les_chaussettes_du_nain.sg",
"Le_Donjon_de_Naheulbeuk/Meme_pas_mage.sg",
"Le_Donjon_de_Naheulbeuk/Noel_en_Mordor.sg",
"Les_Cowboys_Fringants/1994.sg",
"Les_Cowboys_Fringants/La_reine.sg",
"Les_Cowboys_Fringants/Ti-Cul.sg",
"Les_Fatals_Picards/La_ferme.sg",
"Les_Naufrages/L_harmonica.sg",
"Les_Ogres_de_Barback/Jojo.sg",
"Les_Ogres_de_Barback/Le_temps.sg",
"Les_Ogres_de_Barback/Ptit_chat.sg",
"Los_Lobos/Cancion_del_Mariachi.sg",
"Maxime_Le_Forestier/San_Fransico.sg",
"MC_Solaar/Caroline.sg",
"Mes_souliers_sont_rouges/Le_cycle_du_vin.sg",
"Mes_souliers_sont_rouges/Nuit_humide.sg",
"Michel_Sardou/Les_lacs_du_Connemara.sg",
"Negro_Spiritual/Lord_I_want.sg",
"Oldelaf_et_Monsieur_D/Davy_Crockett.sg",
"Oldelaf_et_Monsieur_D/J_veux_etre_muscle.sg",
"Oldelaf_et_Monsieur_D/Mon_ange.sg",
"Pornophonique/Sad_robot.sg",
"Renaud/Amoureux_de_paname.sg",
"Renaud/Societe_tu_m_auras_pas.sg",
"Rise_Against/Hero_of_war.sg",
"Ritchie_Valens/Come_on_let_s_go.sg",
"Ritchie_Valens/La_bamba.sg",
"Sheepbox/Devil_s_way.sg",
"Simon_Garfunkel/April_come_she_will.sg",
"Simon_Garfunkel/Kathy_s_song.sg",
"Simon_Garfunkel/Mrs_Robinson.sg",
"Steve_Waring/La_baleine_bleue.sg",
"System_of_a_Down/Roulette.sg",
"The_Animals/The_house_of_rising_sun.sg",
"The_Beatles/Let_it_be.sg",
"The_Beatles/Octopus_garden.sg",
"The_Calling/Wherever_you_will_go.sg",
"The_Carpenters/Breaking_up_is_hard_to_do.sg",
"The_Dubliners/Whiskey_in_the_jar.sg",
"The_Nightwatchman/Let_freedom_ring.sg",
"The_White_Stripes/Well_it_s_true_that_we_love_one_another.sg",
"U2/Sunday_bloody_sunday.sg",
"Vincent_Malone/L_escargot_malheureux.sg",
"Yodelice/Sunday_with_a_flu.sg",
"Yuki_Kajiura/Fake_wings.sg"
]
}
Loading…
Cancel
Save