From 99657d6c86f4739a0c1dd15ff648729751e137dc Mon Sep 17 00:00:00 2001 From: Alexandre Dupas Date: Tue, 8 Jun 2010 20:03:58 +0200 Subject: [PATCH] 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. --- makefile | 106 +++++------------------ naheulbeuk.sb | 34 ++++++++ songbook.py | 138 ++++++++++++++++++++++++++++++ songbook.sb | 12 +++ templates/songbook.tmpl | 73 ++++++++++++++++ test.sb | 17 ++-- volume-1.sb | 185 ++++++++++++++++++++++++++++++++++++++++ volume-2.sb | 93 ++++++++++++++++++++ 8 files changed, 566 insertions(+), 92 deletions(-) create mode 100644 naheulbeuk.sb create mode 100755 songbook.py create mode 100644 songbook.sb create mode 100644 templates/songbook.tmpl create mode 100644 volume-1.sb create mode 100644 volume-2.sb diff --git a/makefile b/makefile index df3928f4..c0eaafeb 100644 --- a/makefile +++ b/makefile @@ -1,4 +1,4 @@ -# Copyright (c) 2008 Alexandre Dupas +# Copyright (c) 2008-2010 Alexandre Dupas # # 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 $@ diff --git a/naheulbeuk.sb b/naheulbeuk.sb new file mode 100644 index 00000000..dba229a7 --- /dev/null +++ b/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" + ] +} diff --git a/songbook.py b/songbook.py new file mode 100755 index 00000000..690f2379 --- /dev/null +++ b/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() diff --git a/songbook.sb b/songbook.sb new file mode 100644 index 00000000..cd8bd400 --- /dev/null +++ b/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" +} diff --git a/templates/songbook.tmpl b/templates/songbook.tmpl new file mode 100644 index 00000000..ed96d1a6 --- /dev/null +++ b/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 diff --git a/test.sb b/test.sb index ba529213..4c666bb2 100644 --- a/test.sb +++ b/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" + ] } diff --git a/volume-1.sb b/volume-1.sb new file mode 100644 index 00000000..54b26f09 --- /dev/null +++ b/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" + ] +} diff --git a/volume-2.sb b/volume-2.sb new file mode 100644 index 00000000..4eb77ed0 --- /dev/null +++ b/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" + ] +}