Browse Source

Moving out files that belong to songbook-data or songbook-extras

Closes #2
pull/20/head
Louis 11 years ago
parent
commit
44b9b9f08f
  1. 842
      NEWS
  2. 35
      utils/cover.sh
  3. 44
      utils/emacs-format-file.el
  4. 13
      utils/header-english
  5. 10
      utils/header-french
  6. 13
      utils/header-last-volume
  7. 11
      utils/indent.sh
  8. 28
      utils/langbooks.sh
  9. 17
      utils/language.sh
  10. 46
      utils/last-volume.sh
  11. 119
      utils/make-html
  12. 20
      utils/new-songs-list.sh
  13. 11
      utils/perms.sh
  14. 94
      utils/release.sh
  15. 39
      utils/resize-cover.py
  16. 276
      utils/rules.py
  17. 85
      utils/songbook-gtab.py

842
NEWS

@ -1,806 +1,102 @@
version 3.7.2
Louis:
Narz:
Hubert-F矇lix Thi矇faine - Sweet amanit phalloide queen
Georges Brassens - Les trompettes de la renomm矇e
Romain Goffe:
m@rco:
Hubert-F矇lix Thi矇faine - Alligators 427
Thomas Fersen - Borborygmes
Thomas Fersen - Cosmos
spalax:
Undocumented bug corrections and improvements.
version 3.7.1
JBB:
Buddy Holly - Everyday
Cranberries - Dreaming my dreams
Cranberries - Linger
Cranberries - No need to argue
Cranberries - Ode to my family
Daniel Powter - Bad day
Eddy Mitchell - La derni癡re s矇ance
Gr矇goire - Toi + moi
Hoobastank - The reason
Joe Dassin - � toi
Kenny Rogers - The greatest
Monty Python - Always look on the bright side of life
Renaud - La m矇daille
Roch Voisine - La l矇gende oochigeas
Suzanne Vega - Luka
Terry Bush - Maybe tomorrow
Romain Goffe:
Traditionnel - Sur le pont d'Avignon
Traditionnel - Il pleut berg癡re
Undocumented.
version 3.7.0
Alexandre Dupas:
Dominique Goffe:
Pipiou:
Charles Aznavour - Comme ils disent
Gilbert B矇caud - Et maintenant
Michel Polnareff - Goodbye Maryloo
Michel Polnareff - L'amour avec toi
Michel Polnareff - Lettre � France
Michel Polnareff - Love me, please love me
Romain Goffe:
broph:
Soan - En chemin
Axel Bauer - �teins la lumi癡re
Soan - The storm
�tienne Daho - Comme un boomerang
m@rco:
Hubert-F矇lix Thi矇faine - 542 lunes et 7 jours environ
Hubert-F矇lix Thi矇faine - Ad orgasmum aeternum
Hubert-F矇lix Thi矇faine - Autorisation de d矇lirer
Hubert-F矇lix Thi矇faine - La d癡che, le twist et le reste
Hubert-F矇lix Thi矇faine - La fille du coupeur de joints
Hubert-F矇lix Thi矇faine - La fin du Saint Empire Romain-germanique
Hubert-F矇lix Thi矇faine - La m繫me kal矇idoscope
Hubert-F矇lix Thi矇faine - Le chant du fou
Hubert-F矇lix Thi矇faine - Lorelei Sebasto Cha
Hubert-F矇lix Thi矇faine - Maison Borniol
Mano Solo - Je suis venu vous voir
Mano Solo - Pas du g璽teau
Undocumented.
version 3.6.7
Mickael Chazaux:
Jean-Jacques Goldman - Et l'on y peut rien
Olive:
Manu Chao - El viente
Pipiou:
Georges Brassens - L'orage
Romain Goffe:
Michael Jackson - We are the world
Crep - Ptit pingouin
Adele - Rolling in the deep
broph:
Pink Floyd - Comfortably numb
The Rolling Stones - Mother's little helper
Pink Floyd - Hey you
Undocumented.
version 3.6.6
Charles Fl癡che:
Noir D矇sir - Un jour en France
Creedence Clearwater Revival - Bad moon rising
Olive:
Manu chao - Bongo bong
Manu Chao - Je ne t'aime plus
Renaud - Morgane de toi
Les Ogres de Barback - Le voyageur
La Rue K矇tanou - O羅 je vais
Romain Goffe:
John Denver - The last hobo
La chanson du dimanche - Super pouvoir d'achat
Georges Brassens - Quatre-vingt-quinze pour cent
Undocumented.
version 3.6.5
JBB:
3 doors down - Here without you
Arlo Guthrie - Hobos lullaby
Ralph McTell - Streets of London
Raphael - Caravane
Romain Goffe:
Booze Brothers - I'm sorry
Charlie Winston - Like a hobo
Tom Petty - American girl
karagrat:
Les Innocents - Un homme extraordinaire
Balbino Medellin - Super h矇ros
Undocumented.
version 3.6.4
Romain Goffe:
Green Day - Misery
Jacques Brel - Au suivant
Debout sur le zinc - Se dire adieu
Graeme Allwright - La ligne Holworth
La maison Tellier - Babouin
Antoine - Les 矇lucubrations
Iggy Pop - In the death car
Vincent Malone - Bad Bili
Soul Asylum - Runaway train
Traditionnel - Greensleeves
Billy Ray Cyrus - Achy breaky heart
Bob Seger - Against the wind
Johnny Hallyday - Gabrielle
Yves Simon - Diabolo menthe
broph:
The Rolling Stones - Gimme shelter
Parabellum - La belle
Parabellum - Osmose 99
Undocumented.
version 3.6.3
Alexandre Dupas:
Romain Goffe:
Karpatt - La chose qui dort dans mon lit
Bob Dylan - I want you
Pink Floyd - Another brick in the wall
broph:
Parabellum - Le dernier trocson
Noir D矇sir - Lola
Noir D矇sir - The holy economic war
Pink Floyd - Mother
REM - Losing my religion
Undocumented
version 3.6.2
Alexandre Dupas:
Gotye - Somebody that I used to know
Romain Goffe:
Debout sur le zinc - Aller simple
Debout sur le zinc - Je cherche encore
HK & Les Saltimbanks - Indignez-vous
HK & Les Saltimbanks - Niquons la plan癡te
Yves Jamait - Etc
Yves Jamait - Jean-Louis
The Beach Boys - Surfin' USA
olivier desrobert:
The Kingston Trio - Greenback dollar
Undocumented.
version 3.6.1
Romain Goffe:
Le Donjon de Naheulbeuk - Chicken quest
Le Donjon de Naheulbeuk - Crom
Le Donjon de Naheulbeuk - H矇, la petite dame
Le Donjon de Naheulbeuk - La hache Durandil
Le Donjon de Naheulbeuk - Le petit gobelin
Le Donjon de Naheulbeuk - Tralala du nain
Les Amis d'ta femme - Le tango du viagra
olivier desrobert:
Thomas Fersen - Au caf� de la paix
Thomas Fersen - Saint-Jean-du-Doigt
Renan Luce - Le Lacrymal Circus
Les Wriggles - Petit bonhomme
Undocumented.
version 3.6.0
Romain Goffe:
Bloodhound Gang - Fire water burn
Pascale Picard - Smilin'
Coluche - Sois fain矇ant
yoyoma:
Razorlight - America
U2 - One
America - A Horse With No Name
Undocumented.
version 3.5.9
broph:
Patrick Coutin - J'aime regarder les filles
Noir D矇sir - O羅 veux-tu que je regarde ?
Calvin RUssell - 5m2
Dire Straits - Brothers in arms
Noir D矇sir - Toujours 礙tre ailleurs
Olivier Desrobert:
As de Trefle - Pauvre planete
As de trefle - La revolution
Les cowboys fringants - Hannah
Les Ogres de Barback - Rue Mazarine
Undocumented.
version 3.5.8
Kaosun:
As de Tr癡fle - � l'oreille de ta femme
As de Trefle - Pauvre planete
As de trefle - La revolution
Les cowboys fringants - Hannah
Romain Goffe:
Tourn矇e G矇n矇rale - Avancer mes grolles
Undocumented.
version 3.5.7
Hanarka:
Alain Souchon - La ballade de Jim
Francis Cabrel - Octobre
Maxime Le Forestier - Passer ma route
Alain Souchon - Sous les jupes des filles
Phil Barney - Un enfant de toi
Roch Voisine - H矇l癡ne
T矇l矇phone - Le jour s'est lev矇
Romain Goffe:
Gerry Rafferty - To each and everyone
Le Donjon de Naheulbeuk - Ma簾tre du donjon
broph:
Jean-Jacques Goldman - On ira
Undocumented.
version 3.5.6
Hanarka:
Belyscendre - H矇las madame
Francis Cabrel - La corrida
Romain Goffe:
The Bloody Irish Boys - Drunk tonight
Jacques Dutronc - La fille du P癡re No禱l
broph:
Calvin Russel - Down down down
Kaosun:
Debout sur le zinc - J'ai d矇j� donn矇
Debout sur le zinc - Comme un frisson
Debout sur le Zinc - Sur le fil
Debout sur le zinc - Elle m'ennuie
Debout sur le zinc - Les angles
Undocumented.
version 3.5.5
Kaosun:
Thomas Fersen - Bambi
Thomas Fersen - Croque
Thomas Fersen - Ir癡ne
Thomas Fersen - L'histoire d'une heure
Thomas Fersen - Les cravates
Thomas Fersen - Louise
Gary Jules - Mad world
Les Fatals Picards - Au mariage de K矇vin et de ma soeur
Thomas Fersen - Rititi, ratata
Thomas Fersen - Le bouton
Anis - Dans tes yeux
Les Cowboys Fringants - Ces temps-ci
Le clandestin - Rue Grenelle
Jali - Espa簽ola
La rue k矇tanou - Sao Loucas
Les Cowboys Fringants - 8 secondes
Debout sur le Zinc - Scylla
Romain Goffe:
Les Booze Brothers - Fields of Athenry
The Dubliners - The wild rover
Undocumented.
version 3.5.4
BeXa:
Jeanne Moreau - Les mots de rien
Israel Kamakawiwo - Over the rainbow
Francis Cabrel - Les vidanges du diable
Crash Test Dummies - mmmm
Compay Segundo - Chan Chan
Bill Withers - Just two of us
Louis Chedid - Tout le monde se presse
Ridan - Ulysse
Rose - La liste
Sixpence None the richer - Kiss me
Kaosun:
La Rue K矇tanou - Bonhomme de chien
Soldat Louis - C'est un pays
Thomas Fersen - Deux pieds
Thomas Fersen - Diane de Poitiers
Thomas Fersen - Dugenou
Thomas Fersen - Le chat bott矇
Thomas Fersen - Les malheurs du lion
Thomas Fersen - Monsieur
Thomas Fersen - Que l'on est bete
Undocumented.
version 3.5.3
BeXa:
Vincent Delerm - La natation synchronis矇e
Kaosun:
Renaud - Ma gonzesse
Renaud - It is not because you are
Renaud - Je suis une bande de jeunes
Renaud - La chanson du loubard
Renaud - Mort les enfants
Thomas Fersen - Chocolat
Thomas Fersen - J'ai pas la gale
Thomas Fersen - La malle
Thomas Fersen - Le balafr矇
Thomas Fersen - Mon iguanodon
Thomas Fersen - Mon macabre
Thomas Fersen - Je suis au paradis
Thomas Fersen - P矇gase
Thomas Fersen - Zaza
Thomas Fersen - Punaise
Matteo Cypriani:
Fleetwood Mac - Temporary One
Jean Leloup - Sang d'encre
Nirvana - Dumb
Romain Goffe:
Les Cowboys Fringants - Paris-Montr矇al
Les Cowboys Fringants - L'horloge
HK & Les Saltimbanks - On l璽che rien
HK & Les Saltimbanks - Passer ma vie
HK & Les Saltimbanks - Citoyen du monde
Ast矇rix et Cl矇op璽tre - Le pudding � l'arsenic
broph:
Jean-Pierre Mader - Macumba
Noir D矇sir - Les 矇corch矇s
Louis Bertignac - Ces id矇es l��
Rita Mitsouko - C'est comme 癟a
Calvin Russel - Baby I love you
Calvin Russel - Crossroad
Calvin Russel - One meat ball
Eddy Mitchell - Il ne rentre pas ce soir
Jean-Jacques Goldman - Comme toi
Roger Glover - Love is all
Calvin Russel - Midnite man
Undocumented.
version 3.5.2
broph:
Noir D矇sir - Lazy
William Bald矇 - Rayon de soleil
Undocumented.
version 3.5.1
broph:
M - La Seine
Noir D矇sir - Charlie
Noir D矇sir - Elle va o羅 elle veut
Noir D矇sir - Joey I
Noir D矇sir - La chaleur
Noir D矇sir - La rage
Noir D矇sir - Le fleuve
Noir D矇sir - Si rien ne bouge
Noir D矇sir - Tu m'donnes le mal
Pigalle - Le chaland
Eddy Mitchell - Pas de boogie woogie
Eddy Mitchell - Tu peux pr矇parer le caf矇 noir
Georges Brassens - � l'ombre des maris
Georges Brassens - Supplique pour 礙tre enterr矇 sur la plage de S癡te
Jimi Hendrix - The wind cries Mary
Johnny Hallyday - Le p矇nitencier
Julien Dor矇 - Kiss me forever
R.E.M. - Everybody hurts
Renaud - La ballade nord-irlandaise
Soan - Pas pour lui
Soan - Putain de ballerine
Stealers Wheel - Stuck in the middle with you
T矇l矇phone - New York avec toi
Undocumented.
version 3.5.0
Matteo Cypriani:
Jean Leloup - Promeneur
Maxime Le Forestier - Parachutiste
Yves Simon - Les bateaux du m矇tro
Soldat Louis - Du rhum des femmes
Soldat Louis - Tirer des caisses
Soldat Louis - Savannah
Thi矇faine - Sentiments num矇riques revisit矇s
Leonard Cohen - Winter Lady
Leonard Cohen - A Bunch of Lonesome Heroes
Leonard Cohen - The Old Revolution
Jacques Higelin - Je ne peux plus dire je t'aime
Romain Goffe:
Ben E.King - Stand by me
Coldplay - Paradise
Undocumented.
version 3.4.8
Romain Goffe:
G矇rald De Palmas - Sur la route
Tonton David - Chacun sa route
Les Hurlements d'L矇o - La malle en mai
Philippe Chatel & Robert Charlebois - La compagnie des lapins bleus
Oldelaf - Les mains froides
Soggy Bottom Boys - I am a man of constant sorrow
Pierre Perret - Bernard Pivot
Undocumented.
version 3.4.7
Pipiou:
Lucienne Delyle - Mon amant de Saint-Jean
Francis Cabrel - L'encre de tes yeux
Daniel Guichard - Mon vieux
Soan - Emily
Romain Goffe:
Marie Cherrier - Les baleines
Marie Cherrier - Manouche
Undocumented.
songbook (v0.8)
(various authors) Add songs
Alexandre Dupas:
Sheepbox - Not scared to die
Avenue Q - The internet is for porn
Johk - La reine de France
La Maison Tellier - La chambre rose
Lylloo - Ma soir矇e MSN
The Rolling Stones - You can't always get what you want
Outkast - Hey Ya
BeXa:
Alanis Morissette - Ironic
Alanis Morissette - Ironic
Benoit Ga羹z癡re:
The Rolling Stones - Route 66
Elvis Presley - Don't be cruel
Eddie Vedder - Guaranteed
The Beautiful Girls - La Mar
Dominique Goffe:
Graeme Allwright - Le jour de clart矇
Hugues Aufray - Alouette
Hugues Aufray - Hasta Luego
Hugues Aufray - L'矇pervier
Jeanette - Porque te vas
Maxime Le Forestier - Je ne sais rien faire
Daniel Lanois - Jolie Louise
Gr矇goire Goffe:
Paco Ibanez - A galopar
Matthias Bussonnier:
Alex Beaupain - Je n'aime que toi
Pierre Caserta:
Oasis - I'm outta time
Red Hot Chili Peppers - By the time
Red Hot Chili Peppers - Californication
Red Hot Chili Peppers - Can't stop
Red Hot Chili Peppers - Dani California
Red Hot Chili Peppers - Road trippin'
Red Hot Chili Peppers - Under the bridge
Red Hot Chili Peppers - Snow
Elton John - Can you fell the love tonight?
Pipiou:
Matticus - Le p'tit gars
Bob Marley - Redemption song
Christophe - Les mots bleus
Pep's - Liberta
Alain Souchon - Bidon
Maxime Le Forestier - L'auto-stop
�dith Piaf - Padam-Padam
Maxime Le Forestier - Entre 14 et 40 ans
Maxime Le Forestier - Fontenay-aux-Roses
Catherine Le Forestier - La petite fugue
Tracy Chapman - Talkin' about the revolution
Jeanne Moreau - Le tourbillon de la vie
Charles Aznavour - Mes emmerdes
Oldelaf et Monsieur D - Super h矇ros
Pigalle - Dans la salle du bar-tabac de la rue des martyrs
Renan Luce - La lettre
Renan Luce - Monsieur Marcel
Michel Fugain - Forteresse
Romain Goffe:
Antsy Pants - Vampire
Leonard Cohen - If it be your will
Bob Dylan - The times they are a-changin
Joan Baez - Here's to you
Joe Dassin - Les petits pains au chocolat
Renaud - Chanson pour Pierrot
Renaud - En cloque
The Doors - Light my fire
The Rolling Stones - Paint it black
The Rolling Stones - Angie
The Rolling Stones - Ruby Tuesday
Simon & Garfunkel - Me and Julio down by the schoolyard
Georges Brassens - � l'ombre du coeur de ma mie
Georges Brassens - Je me suis fait tout petit
Yuki Kajiura - Jr
Crep - Kartopo
Crep - M矇lancolie
Crep - Les ptits chemins
Bobby McFerrin - Don't worry, be happy
Karpatt - Lino
Les Amis d'ta femme - Laisse tomber, gros
Mon c繫t矇 punk - Youssef
The Nightwatchman - California's dark
Karpatt - Fan de maman
Karpatt - Soul癡ve ta jupe
Gipsy Kings - Baila me
Gipsy Kings - Bamboleo
Debout sur le zinc - Le tanticide
Gogol Bordello - Alcohol
Boby Lapointe - Framboise
Boby Lapointe - M矇li-M矇lodie
Crep - Nostalgeek
Les Booze Brothers - I want sex
Dropkick Murphys - Dirty glass
The Pogues - The Irish Rover
Crep - Encore
La Rue K矇tanou - Les tontons
Les VRP - Ramon Perez
Mes souliers sont rouges - Cahin-Caha
Mes souliers sont rouges - L'arbre est dans ses feuilles
Mes souliers sont rouges - Sortis du bois
Les Ogres de Barback - L'ennui et le jour
Gogol Bordello - Supertheory of supereverything
Tri Yann - Les filles de Redon
Tri Yann - Kiss the children for me Mary
Les Fatals Picards - Goldorak est mort
Charles Aznavour - Les com矇diens
Matmatah - L'apologie
Philippe Lavil - Il tape sur des bambous
Les Ogres de Barback - Comment je suis devenu voyageur
Jean-Jacques Goldman - Le coureur
Bruce Springsteen - Old Dan Tucker
Renaud - La blanche
Renaud - Salut manouche
Pierre Perret - Les jolies colonies de vacances
The Connells - '74-'75
Noir D矇sir - L'homme press矇
Noir D矇sir - Le vent nous portera
La T礙te � Toto - Petit bonhomme
La T礙te � Toto - Les projets
Renaud - C'est quand qu'on va o羅 ?
Bruce Springsteen - Mrs McGrath
Henri Salvador - Une chanson douce
Nirvana - Come as you are
Michel Fugain - Je n'aurai pas le temps
Michel Fugain - Les Acadiens
Bob Dylan - One more cup of coffee
Johnny Cash - It ain't me, babe
Johnny Cash - I walk the line
Le Donjon de Naheulbeuk - Le larid矇 du poulet
Le Donjon de Naheulbeuk - Nanana de l'elfe
Cat Stevens - Wild world
Maxime Le Forestier - Mon fr癡re
Loic Lantoine - C繫t矇 punk
Mon c繫t矇 punk - Inch-Allah
Pierre Perret - Au caf矇 du canal
Pierre Perret - Mon p'tit loup
La Rue K矇tanou - Almarita
Hugues Aufray - C矇line
Hugues Aufray - Le jour o羅 le bateau viendra
Hugues Aufray - Les couleurs
Hugues Aufray - Stewball
Les Ogres de Barback - Little gentleman
Les hurlements d'L矇o - Une danseuse
Les hurlements d'L矇o - � bout d'souffle
Jacques Brel - Amsterdam
Jacques Brel - Ces gens-l��
Jacques Brel - La valse � mille temps
Cookie Dingler - Femme lib矇r矇e
Jacques Higelin - Poil dans la main
Jacques Higelin - Tomb矇 du ciel
La Rue K矇tanou - Personne n'a l'pr矇nom d'ma femme
Les Innocents - L'autre finist癡re
Mes souliers sont rouges - Tape la galoche
Tit Patapons - Marchand de couleurs
Herv矇 Cristiani - Il est libre Max
Los Lobos - Rango theme song
Herman D羹ne - Tell me something I don't know
Herman D羹ne - Bristol
Herman D羹ne - Pure heart
Herman D羹ne - When the water gets cold
Herman D羹ne - Your name, my game
Elton John - Crocodile rock
Manau - La tribu de Dana
Daniel Balavoine - Vivre ou survivre
Vivre ou mourir
France Gall - Il jouait du piano debout
Louise Attaque - Je t'emm癡ne au vent
Louise Attaque - Ton invitation
Crep - SNCeuFeu
G矇rard Lenorman - La ballade des gens heureux
G矇rard Lenorman - Si j'矇tais pr矇sident
Les hurlements d'L矇o - Fabulous and luxury holidays for todos in Barbados
Les bl矇rots de R.A.V.E.L - Dans les gares
Les bl矇rots de R.A.V.E.L - Le retour de Petrouchka
Les bl矇rots de R.A.V.E.L - Les ptits plaisirs
Les hurlements d'L矇o - Ici, d'ailleurs
Fran癟ois Corbier - Les vieux copains de la t矇l矇
Bob Dylan - Ballad of Hollis Brown
Bob Dylan - Don't think twice, it's all right
Emiliana Torrini - Jungle drum
Herman D羹ne - My friends kill my folks
Herman D羹ne - Be a doll and take my heart
Bob Dylan - Hurricane
Karpatt - Les vieilles
Cesaria Evora - Petit pays
Hugues Aufray - Le joueur de pipeau
Jean-Jacques Goldman - Il changeait la vie
Johnny Cash - Jackson
Johnny Cash - The ring of fire
Joe Dassin - Les Champs-�lys矇es
JCFrog - Je t'emm癡ne dedans
JCFrog - La mauvaise er矇putation
JCFrog - Russians
Sting - Russians
Elvis Presley - Love me tender
Traditionnel - L'homme de cromagnon
Jean-Jacques Goldman - Encore un matin
Georges Brassens - Chanson pour l'Auvergnat
La compagnie cr矇ole - �a fait rire les oiseaux
La compagnie cr矇ole - La machine � danser
La compagnie cr矇ole - Le bal masqu矇
Karpatt - En pleine mer
Karpatt - Le d矇m矇nagement
Les Fatals Picards - L'amour � la fran癟aise
Les Fatals Picards - La s矇curit矇 de l'emploi
Joe Dassin - Ma bonne 矇toile
Julien Clerc - Travailler, c'est trop dur
Julien Clerc - M矇lissa
Julien Clerc - Ce n'est rien
Laura Veirs - Ballad of John Vogelin
Laura Veirs - Jailhouse fire
Bob Marley - No woman, no cry
Laura Veirs - Black-eyed Susan
T矇l矇phone - Cendrillon
N矇gresses vertes - Sous le soleil de Bodega
Yves Duteil - Le petit pont de bois
Oldelaf - Mamy blue
Christophe - Aline
Nino Ferrer - Mirza
Laura Veirs - Icebound stream
Herman's Hermits - No milk today
Oldelaf - Courseulles-sur-Mer
Oldelaf - Mon testament
Oldelaf - Vendredi
Oldelaf - Le monde est beau
Oldelaf et Monsieur D - Nous, les vedettes
Leonard Cohen - Suzanne
Les Fatals Picards - Mon p癡re 矇tait tellement de gauche
Les Fatals Picards - Seul et c矇libataire
Damien Rice - Cannonball
Jean-Jacques Goldman - Long is the road
La crevette d'acier - Moi si un jour
Les Ogres de Barback - La gare de Caen
Boby Lapointe - Aragon et Castille
Francis Cabrel - Je t'aimais, je t'aime et je t'aimerai
Neil Young - Heart of gold
Green Day - Minority
Les Ogres de Barback - Touche pas � mon 矇cole
Yuki Kajiura - Vanity
Bruce Springsteen - John Henry
Gogol Bordello - Oh no
Dessins Anim矇s - Boumbo
Dessins Anim矇s - Denver, le dernier dinosaure
Dessins Anim矇s - Dragon Ball
Dessins Anim矇s - Dragon Ball Z
Dessins Anim矇s - Les chevaliers du zodiaque
Dessins Anim矇s - Lucky Luke
Dessins Anim矇s - Sherlock Holmes
Debout sur le Zinc - Ma petite ch矇rie
Les Cowboys Fringants - Quand tu pars
Gilles Servat - La blanche hermine
�dith Piaf - L'homme � la moto
Karpatt - Le fil
Le Donjon de Naheulbeuk - Marche barbare
Le Donjon de Naheulbeuk - Massacrons-nous dans la taverne
Maxime Le Forestier - Comme un arbre
Maxime Le Forestier - Le steak
Georges Brassens - Ballade des dames du temps jadis
Maxime Le Forestier - �ducation sentimentale
The mamas and the papas - California dream
Jean-Jacques Goldman - Je te donne
Traditionnel - V'la l'bon vent
Barbara - L'aigle noir
Les Ogres de Barback - Ma fille
Alain Souchon - L'amour � la machine
Fool's Garden - Lemon tree
The Innocence Mission - The lakes of Canada
Crep - Fichu doctorat
Crep - Soir矇e p矇p癡re
Crep - iScream
Crep - Bioman
Crep - Calim矇ro
Oldelaf - Michel
Karpatt - Histoires de famille
Undocumented.
songbook (v0.7)
(various authors) Add songs
Alexandre Dupas:
Alexis HK - Gaspard
The White Stripes - Well It's True That We Love One Another
Yodelice - Sunday with a flu
The Calling - Wherever you will go
The Nightwatchman - Let Freedom Ring
MC Solaar - Caroline
System of a Down - Roulette
The Fray - How to save a life
The Beatles - Twist and shout
John Lennon - Working Class Hero
Les Wriggles - Plouf
Dominique Goffe:
Mes souliers sont rouges - Le cycle du vin
Michel Sardou - Les lacs du Connemara
Dorian Goffe:
Le Donjon de Naheulbeuk - Geste h矇ro簿que
Jeanne Dupas:
AaRON - U-Turn
Ben Harper - Waiting on an angel
Pierre Caserta:
Alicia Keys - If I ain't got you
Jason Marz - I'm yours
Jack Johnson - Taylor
Romain Goffe:
The Beatles - Octopus Garden
Bob Dylan - Mr Tambourine Man
Cat Stevens - Here comes my baby
Cat Stevens - Father and Son
Karpatt - Des gnons pour des pelles
Karpatt - Les canards en plastique
Les Cowboys Fringants - 1994
Les Ogres de Barback - Jojo
Simon & Garfunkel - April come she will
Simon & Garfunkel - Kathy's song
The Carpenters - Breaking up is hard to do
The Dubliners - Whiskey in the jar
Mes souliers sont rouges - Nuit humide
Ritchie Valens - Come on, let's go!
Claude Nougaro - Armstrong
Maxime Le Forestier - San Francisco
Simon & Garfunkel - Mrs. Robinson
Les Fatals Picards - La ferme
Beau Dommage - La complainte du phoque en Alaska
Anny et Jean-Marc Versini - La danse des esquimaux
Debout sur le Zinc - Poil aux yeux
Georges Brassens - Le petit cheval
Les ogres de barback - Le temps
Vincent Malone - L'escargot malheureux
Boby Lapointe - La maman des poissons
La Famille Maestro - Le rat de l'op矇ra
Jonathan Coulton - Still alive
Los Lobos - Cancion del Mariachi
Renaud - Soci矇t矇 tu m'auras pas
Renaud - Amoureux de Paname
Henri D癡s - Mon cheval gris
Henri D癡s - Les b礙tises � l'矇cole
Le Donjon de Naheulbeuk - Noel en Mordor
Joe Dassin - La fleur aux dents
Pierre Bachelet - En l'an 2001
Pierre Bachelet - Vingt ans
La Rue K矇tanou - La chance
La Rue K矇tanou - Les hommes que j'aime
Joe Dassin - Le moustique
Graeme Allwright - Henrik
Graeme Allwright - Le clochard am矇ricain
Hugues Aufray - Elle descend de la montagne
Traditionnel - Chevaliers de la table ronde
Hugues Aufray - Debout les gars
Indochine - L'aventurier
Indochine - J'ai demand矇 � la lune
Traditionnel - Vent frais
Traditionnel - La cucaracha
Parabellum - Saturnin
Dessins Anim矇s - Inspecteur Gadget
Dessins Anim矇s - L'oiseau bleu
Alain Souchon - Foule sentimentale
Les Ogres de Barback - Bumbaia
Francine Pohl - La sorci癡re Grabouilla
Francine Pohl - La sorci癡re Grabouilla
La Rue K矇tanou - La fianc矇e de l'eau
Debout sur le Zinc - La d矇claration
Debout sur le Zinc - Les mots d'amour
Les Ogres de Barback - Rue du temps
Les Amis d'ta femme - A las barricadas
Mes souliers sont rouges - Bassin d'Irlande
Debout sur le Zinc - Rester debout
Simon & Garfunkel - The only living boy in New-York
Les Cowboys Fringants - Plus rien
Les Cowboys Fringants - Plus rien
Maxime Le Forestier - La rouille
Les Petites Bourettes - Et si je t'aime
Les Cowboys Fringants - La bonne pomme
Les Cowboys Fringants - Entre deux taxis
Les Petites Bourrettes - Dans la t礙te
Les Petites Bourrettes - La vieille
As de Tr礙fle - Jessica
Le Colporteur - Comme on dit
Les Vieilles Valises - �milie
Sans矇v矇rino - Dimanche dernier
I wanna be like you
La Rue K矇tanou - Sur les chemins de la boh癡me
Louise Attaque - Les nuits parisiennes
Marie Lafor礙t - Ivan, Boris et moi
Lila Downs - La cumbia del mole
Les Petites Bourrettes - Notre monde
Thomas Bellet:
Sheepbox - Devil's way.
(lohrun) New songbook format (not compatible with older version).
Changes have been made to the compilation toolchain that prevent
compilation of old format songbook.
@ -810,30 +106,6 @@ songbook (v0.7)
songbook (v0.6)
(crep, Jeanne Dupas, lohrun) Add songs
Alexandre Dupas:
Ben Harper - Widow of a Living Man Song requested by Jeanne Dupas
Jeanne Dupas:
The Animals - The house of rising sun
The Beatles - Let it be
Romain Goffe:
Oldelaf et Monsieur D. - David Crockett
Steve Waring - La baleine bleue
Ritchie Valens - La bamba
Pornophonique - Sad robot
Les Naufrag矇s - L'harmonica
Steve Waring - La baleine bleue
Ritchie Valens - La bamba
Pornophonique - Sad robot
Les Naufrag矇s - L'harmonica
Th矇mis et Nono
Les Cowboys Fringants - Ti-Cul
Bruce Springsteen - Pay me my money down
Karpatt - Des id矇es
Karpatt - L矇on
Les Cowboys Fringants - La Reine
Les Ogres de Barback - Ptit chat
Yuki Kajiura - Fake Wings
(crep, lohrun) Corrections of mistakes and typos.
(lohrun) Use plain songs package v2.9
(lohrun) Replace makeindex script with a new python version
@ -846,23 +118,6 @@ songbook (v0.6)
songbook (0.5)
(crep, lohrun, Gr矇goire Goffe) New songs:
Belyscendre - Mon p癡re veut me marier
Belyscendre - Prend farge au loup
Britney Spears - ...Baby one more time
Cranberries - Animal Instinct
Cranberries - Zombie
Green Day - American Idiot
Le Donjon de Naheulbeuk - La compagnie du chien rugissant
Le Donjon de Naheulbeuk - La complainte de la serveuse
Le Donjon de Naheulbeuk - La polka du menestrel
Le Donjon de Naheulbeuk - Les chaussettes du nain
Le Donjon de Naheulbeuk - M礙me pas mage
Negro Spiritual - Lord I want
Oldelaf - J'veux 礙tre muscl矇
Oldelaf - Mon ange
Rise Against - Hero of War
U2 - Sunday Bloody Sunday
(crep, lohrun) Corrections of mistakes and typos.
(lohrun) Add a proper volume mechanism
(lohrun) Add volume-1 source containing about 165 songs
@ -875,52 +130,6 @@ songbook (0.5)
songbook (0.4)
(crep, lohrun, Gr矇goire Goffe) New songs:
Alain Bashung - Gaby, oh Gaby
Avril Lavigne - Things I'll never say
Bob Dylan - Blowin in the wind
Carter Family - In the highways + Keep on the sunny side
Cat Stevens - Sad Lisa
Cat Stevens - The wind
Eels - Dirty girl
Eels - Hey man
Eels - I like birds
Eels - Packing blankets
Garfunkel and Oates - Fuck You.
Georges Brassens - Cupidon s'en fout
Georges Brassens - Grand-p癡re
Georges Brassens - Le gorille
Georges Brassens - Les copains d'abord
Graeme Allwright - Johnny
Graeme Allwright - La mouche bleue
Graeme Allwright - Petit garcon
Green Day - Boulevard of Broken Dreams
Howie Day - Collide
Kana - Plantation
La Rue Ketanou - La Rue Ketanou
Les Cowboys Fringants - La manifestation
Les Cowboys Fringants - Toune d'Automne
Les Tit's Nassels - Les Tit's ballades
Linkin Park - Numb
Moriarty - Jimmy
Oasis - Wonderwall
Oldelaf et Monsieur.D - Nathalie
Patrick Bouchitey - Jesus reviens
Pierre Perret - Lily
Pow Wow - Le lion est mort ce soir
Radiohead - Creep
Renaud - Petite fille des sombres rues
Simon & Garfunkel - Cecilia
Simon & Garfunkel - El condor pasa
Simon & Garfunkel - Feeling groovy
Terra Naomi - Say it's possible
The Beatles - Ob-la-di ob-la-da
The Beatles - Yellow submarine
The Beatles - Yesterday
The Eagles - Hotel California
The Pogues - Fairytale of New-York
Tri Yann - Les prisons de Nantes
Tri Yann - Si Mors A Mors
(crep, lohrun) Corrections of mistakes and typos.
(crep, lohrun) Add cover picture to each song
(lohrun) Update to the Songs Package v2.8
@ -930,7 +139,6 @@ songbook (0.4)
songbook (0.3)
(crep, lohrun) Major update with many new songs.
(crep) Corrections of a lot of mistakes.
(crep) Include image support.
(lohrun) Add make-html utility.

35
utils/cover.sh

@ -1,35 +0,0 @@
#!/bin/sh
for directory in songs/*; do
images=`ls $directory/*.{jpg,png} 2> /dev/null`
val=`echo $images | wc -w`
for song in $directory/*.sg; do
sg=`basename $song`
sed -i '0,/\\gtab/s//\\cover\n\\gtab/' $song
if [ $val -gt 1 ]
then
i=1
for image in $images; do
img=`basename $image .jpg`
img=`echo $img | sed 's/.png$//'`
echo "Apply $img to $song ? ($i/$val)"
i=$(($i+1))
read answer
case "$answer" in
"y")
sed -i 's/beginsong{\([^}]*\)}\[\([^]]*\)\]/beginsong{\1}[\2,cov='$img']/' $song
break;
;;
"n")
true
;;
esac
done;
elif [ $val -eq 1 ]
then
img=`basename $images .jpg`
img=`echo $img | sed 's/.png$//'`
echo "Applying $img to $sg"
sed -i 's/beginsong{\([^}]*\)}\[\([^]]*\)\]/beginsong{\1}[\2,cov='$img']/' $song
fi;
done;
done;

44
utils/emacs-format-file.el

@ -1,44 +0,0 @@
;;; File: emacs-format-file.el
;;; Description: use this for batch indentation with emacs (see indent.sh)
;;; Author: Romain Goffe
;;; Date: 27/10/2010
;;; Commentary: based on the work of Stan Warford (emacs-format-mode) and Scott Andrew Borton (indent-mode)
(defun songbook-indent-line ()
"Indent current line as SONGBOOK code."
(interactive)
(beginning-of-line)
(if (bobp)
(indent-line-to 0) ; First line is always non-indented
(let ((not-indented t) cur-indent)
(if (looking-at "^[ \t]*\\(\\\\end\\)") ; If the line we are looking at is the end of a block, then decrease the indentation
(progn
(save-excursion
(forward-line -1)
(setq cur-indent (- (current-indentation) 2)))
(if (< cur-indent 0) ; We can't indent past the left margin
(setq cur-indent 0)))
(save-excursion
(while not-indented ; Iterate backwards until we find an indentation hint
(forward-line -1)
(if (looking-at "^[ \t]*\\(\\\\end\\)") ; This hint indicates that we need to indent at the level of the END_ token
(progn
(setq cur-indent (current-indentation))
(setq not-indented nil))
(if (looking-at "^[ \t]*\\(\\\\begin\\)") ; This hint indicates that we need to indent an extra level
(progn
(setq cur-indent (+ (current-indentation) 2)) ; Do the actual indenting
(setq not-indented nil))
(if (bobp)
(setq not-indented nil)))))))
(if cur-indent
(indent-line-to cur-indent)
(indent-line-to 0))))) ; If we didn't see an indentation hint, then allow no indentation
(defun emacs-format-function ()
"Format the whole buffer."
(set (make-local-variable 'indent-line-function) 'songbook-indent-line)
(indent-region (point-min) (point-max) nil)
(untabify (point-min) (point-max))
(save-buffer)
)

13
utils/header-english

@ -1,13 +0,0 @@
{
"template" : "patacrep.tmpl",
"lang" : "english",
"bookoptions" : [
"diagram",
"lilypond",
"pictures"
],
"booktype" : "chorded",
"subtitle" : "English songs",
"picture" : "Music_by_Katie8594",
"title" : "Guitar Songbook",
"songs" : [

10
utils/header-french

@ -1,10 +0,0 @@
{
"template" : "patacrep.tmpl",
"lang" : "french",
"subtitle" : "chanson francaise",
"bookoptions" : [
"diagram",
"lilypond",
"pictures"
],
"songs" : [

13
utils/header-last-volume

@ -1,13 +0,0 @@
{
"template" : "patacrep.tmpl",
"lang" : "french",
"bookoptions" : [
"diagram",
"lilypond",
"pictures"
],
"booktype" : "chorded",
"picture" : "The_Music_Machine_by_hit_squad",
"picturecopyright" : "hit-squad @ deviantart.com",
"subtitle" : "Tome 5",
"songs" : [

11
utils/indent.sh

@ -1,11 +0,0 @@
#!/bin/sh
#Author: Romain Goffe
#Date: 27/10/2010
#Descritpion: correctly indent all songs with emacs
#Commentary: can't manage to use a relative path to emacs-format-file.el
# so be sure to indicate the right path
for song in songs/*/*.sg ; do
emacs -batch $song -l ~/songbook/utils/emacs-format-file.el -f emacs-format-function ;
done;

28
utils/langbooks.sh

@ -1,28 +0,0 @@
#!/bin/sh
#Author: Romain Goffe
#Date: 14/11/2010
#Description: Generate an sb file containing all the songs in a given language
if [ $# -ne 1 ];
then
echo "Usage: $0 LANG"
exit 1
fi;
GREP="$GREP_OPTIONS"
export GREP_OPTIONS=""
LANG=$1
BOOKS_DIR="books/"
if [ $LANG="english" -o $LANG="french" ];
then
cp "./utils/header-$LANG" "$BOOKS_DIR$LANG.sb"
grep "selectlanguage{$LANG}" songs/*/*.sg | sed 's|songs/\(.*\):.*| \"\1\",|; $ s|,$|\n ]\n}\n|' >> "$BOOKS_DIR$LANG.sb"
else
echo "Error: $LANG is not a supported language"
exit 2
fi;
export GREP_OPTIONS="$GREP"

17
utils/language.sh

@ -1,17 +0,0 @@
#!/bin/sh
echo "Choose langage: 1 (english), 2 (french), 3 (spanish)"
for song in songs/*/*.sg; do
echo "Apply language to $song ?"
read answer
case "$answer" in
1)
sed -i '1i\\\\selectlanguage{english}' $song
;;
2)
sed -i '1i\\\\selectlanguage{french}' $song
;;
3)
sed -i '1i\\\\selectlanguage{spanish}' $song
;;
esac
done;

46
utils/last-volume.sh

@ -1,46 +0,0 @@
#!/bin/sh
#Author: Romain Goffe
#Date: 07/05/2011
#Description: Generate an sb file containing all the songs that are not
# already in previous volumes
GREP="$GREP_OPTIONS"
export GREP_OPTIONS=""
BOOKS_DIR="books"
#all songs
cd songs
ls -1 */*.sg > ../res1
cd ..
for i in 1 2 3 4
do
#get volume i list
tail -n +14 "$BOOKS_DIR/volume-$i.sb" > tmp$i
head -n -2 tmp$i > list$i
sed -i -e "s/\",//g" -e "s/ \"//g" -e "s/\"//g" list$i
#remove volume i songs
grep -vf list$i res$i > res$(($i+1))
done
#format song list
sed -i -e "s/^/ \"/g" -e "s/$/\",/g" res$(($i+1))
head -c -2 res$(($i+1)) > res
#make volume i+1 sb file
cat utils/header-last-volume > "$BOOKS_DIR/volume-$(($i+1)).sb"
cat res >> "$BOOKS_DIR/volume-$(($i+1)).sb"
echo "]" >> "$BOOKS_DIR/volume-$(($i+1)).sb"
echo "}" >> "$BOOKS_DIR/volume-$(($i+1)).sb"
#remove tmp files
for i in 1 2 3 4
do
rm -f res$i list$i tmp$i
done
rm -f res res$(($i+1))
export GREP_OPTIONS="$GREP"

119
utils/make-html

@ -1,119 +0,0 @@
#!/usr/bin/perl -w
#
# Generate html index for the Crep's chorbook.
#
# Usage: make-html [options] source
# source should be an .sg or .sbd file
#
use warnings;
use strict;
use utf8;
sub uppercase($)
{
my $letter = shift;
$letter =~ tr/a-zàéèëê/A-ZAEEEE/;
return $letter;
}
# Create the latex-proof function
sub latex2utf8($)
{
my $result = shift;
$result =~ s/\\'e/é/g;
$result =~ s/\\¨e/ë/g;
$result =~ s/\\`e/è/g;
$result =~ s/\\\^e/ê/g;
$result =~ s/\\\^o/ô/g;
$result =~ s/\\\^a/â/g;
$result =~ s/\\\^i/î/g;
$result =~ s/\\`a/à/g;
$result =~ s/\\`u/ù/g;
$result =~ s/\\&/&/g;
$result =~ s/\\oe\s*{}/oe/g;
return ($result);
}
#'
sub usage ()
{
die "usage: make-html [options] source", "\n";
}
sub defaultoptions()
{
return (
titleprefix => "",
);
}
my %options;
sub getoptions ()
{
%options = defaultoptions();
eval q{use Getopt::Long};
Getopt::Long::Configure('pass_through');
GetOptions(
# "verbose|v!" => \$options{verbose},
"titleprefix|p=s" => \$options{titleprefix},
) || usage();
}
getoptions();
my $prefix = '(('.$options{titleprefix}.')[\s\'])';
# Filter function
sub process_titleprefix($)
{
my $string = shift;
if( $string =~ /^$prefix\W*(\w)/ )
{
my $letter = uppercase $3;
$string =~ s/^$prefix\W*\w(.*)/$letter$3, $1/;
}
return $string;
}
# Process command line
usage() unless @ARGV;
my $file = shift;
# Open file and store date before closing the file
open( FILE, $file ) or die("unable to open $file");
# Process data
my %table;
my $author;
my $title;
while( <FILE> )
{
if( $_ =~ /\\beginsong{(.*)}\[.*by=(.*),.*\]/ )
{
$author = latex2utf8 $2;
$title = latex2utf8 $1;
$title = process_titleprefix $title unless $options{titleprefix} eq "";
# Create empty data index if needed
$table{$author} = [] unless exists $table{$author};
push @{$table{$author}}, $title;
}
}
close( FILE );
# Format output
print '<ul>';
foreach my $author ( sort keys %table )
{
print '<li><strong>', $author, '</strong><ul>';
foreach my $title ( sort @{$table{$author}} )
{
print '<li>',$title,'</li>'
}
print '</ul></li>';
}
print '</ul>';

20
utils/new-songs-list.sh

@ -1,20 +0,0 @@
#!/bin/sh
#
# Helper script to get the list of new songs added since the last version
# The output is supposed to be copy/pasted into the NEWS item.
GREP="$GREP_OPTIONS"
export GREP_OPTIONS=""
if [ $# -eq 1 ]
then
VERSION=$1
else
# Get current version
VERSION=`git tag | grep patacrep | tail -n1`
fi
# Make new songs list by authors
git shortlog $VERSION..master | egrep '^([^ ].*|.*[aA]dd song.*)' | sed 's/[aA]dd song.//' | sed 's/\.$//' | sed 's/ (.*)//' | sed 's/\s\s\s*/ /'
export GREP_OPTIONS="$GREP"

11
utils/perms.sh

@ -1,11 +0,0 @@
#!/bin/sh
#Author: Romain Goffe
#Date: 07/03/2012
#Description: Check directories and files permissions
chmod 755 songs/*
chmod 644 songs/*/*.*
chmod 644 lilypond/*.ly
exit 0

94
utils/release.sh

@ -1,94 +0,0 @@
#!/bin/sh
#Author: Romain Goffe
#Date: 13/10/2011
#Description: Build all the pdf on www.patacrep.com, increase their
#version and commit/tag the result
GREP="$GREP_OPTIONS"
export GREP_OPTIONS=""
#last volume
./utils/last-volume.sh
#english.sb
./utils/langbooks.sh english
#french.sb
./utils/langbooks.sh french
#increase version
RELEASE_TYPE=$1
VERSION=`grep "\"version\"" ./templates/patacrep.tmpl | sed -e 's/.*\"\([0-9]\+\)\.\([0-9]\+\)\.\?\([0-9]\+\)\?.*/export MAIN=\1\nexport MAJOR=\2\nexport MINOR=\3\n/'`
$VERSION
if [ $# -eq 1 ]
then
echo "current version : $MAIN.$MAJOR.$MINOR"
if [ $RELEASE_TYPE = "major" ];
then
MAJOR=$(($MAJOR+1))
MINOR=0
elif [ $RELEASE_TYPE = "minor" ];
then
MINOR=$(($MINOR+1))
else
echo "error: unrecognised release type"
fi;
echo "new version : $MAIN.$MAJOR.$MINOR"
#update version field in tmpl files
sed -i "s/\"[0-9]\+.[0-9]\+.[0-9]\+\"/\"$MAIN.$MAJOR.$MINOR\"/" templates/patacrep.tmpl
sed -i "s/\"[0-9]\+.[0-9]\+.[0-9]\+\"/\"$MAIN.$MAJOR.$MINOR\"/" templates/ancient.tmpl
else
echo "keeping release version"
fi;
#apply verification tools
#echo "emacs batch indentation in progress ..."
#./utils/indent.sh 2> /dev/null
#echo "emacs batch indentation done !"
./utils/rules.py
./utils/resize-cover.py
./utils/perms.sh
#build all songbooks
rm -f *.d *.pdf *.log *.aux
tar -czvf songbook.tar.gz \
--exclude-vcs \
--exclude=$(BOOKS_DIR)/default.sb \
--exclude=perso/* --exclude=perso \
--exclude=build/* --exclude=build \
--exclude=data/* --exclude=data \
--exclude=*tar.gz \
--transform 's/songbook/songbook-$(DATE)/1' \
../songbook
./songbook.py -s books/naheulbeuk.sb
./songbook.py -s books/volume-1.sb
./songbook.py -s books/volume-2.sb
./songbook.py -s books/volume-3.sb
./songbook.py -s books/volume-4.sb
./songbook.py -s books/volume-5.sb
./songbook.py -s books/english.sb
./songbook.py -s books/french.sb
./songbook.py -s books/songbook_fr.sb
./songbook.py -s books/songbook_en.sb
./songbook.py -s books/lyricbook_fr.sb
./songbook.py -s books/lyricbook_en.sb
#make clean
git status
if [ $# -eq 1 ]
then
./utils/new-songs-list.sh | cat - NEWS > /tmp/out && mv -f /tmp/out NEWS
echo "\nversion $MAIN.$MAJOR.$MINOR\n" | cat - NEWS > /tmp/out && mv -f /tmp/out NEWS
git add templates/*.tmpl
git add books/naheulbeuk.sb books/volume*.sb NEWS
git commit -m "patacrep release version $MAIN.$MAJOR.$MINOR"
git tag "patacrep_$MAIN.$MAJOR.$MINOR"
fi
notify-send "Patacrep!" "Release $MAIN.$MAJOR.$MINOR generated" --icon=songbook-client
export GREP_OPTIONS="$GREP"

39
utils/resize-cover.py

@ -1,39 +0,0 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Author: Romain Goffe
#Date: 28/12/2011
#Description: Resize all covers to 128,128 thumbnails
import os
import Image
from utils import recursiveFind
# Process song files
library = "./"
covers = recursiveFind(os.path.join(library, 'songs'), '*.jpg')
for filename in covers:
source = Image.open(filename)
src_width = source.size[0]
src_height = source.size[1]
ratio = float(src_height) / float(src_width)
width = 128
height = 128
error = 0.2 #0: always preserve ratio; 1: always square images
#tolerate almost square images
if ratio < 1 - error or ratio > 1 + error:
#print "preserve ratio = ", ratio
#preserve important ratio
if src_width < src_height:
height = int(width * ratio)
elif src_height < src_width:
width = int(height * ratio)
if src_width > width and src_height > height:
print "resize: ", filename, " from ", source.size, " to ", (width, height)
target = source.resize((width, height), Image.ANTIALIAS)
target.save(filename)

276
utils/rules.py

@ -1,276 +0,0 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import glob
import getopt, sys
import re, os
import logging
import locale
re.LOCALE
from utils import recursiveFind
# the dictionary has target_word:replacement_word pairs
word_dic = {
##: oe inclusion
"coeur": "cœur",
"choeur": "chœur",
"boeuf": "bœuf",
"oeuvre": "œuvre",
"soeur": "sœur",
"noeud": "nœud",
"oeil": "œil",
"voeu": "vœu",
"oeuf": "œuf",
"oe{}": "œ",
"\\œ": "œ",
##: Contractions
"ptit": "p'tit",
"Y a": "Y'a",
"ptê": "p't'ê",
"p'": "p't'ê",
"p't-ê": "p't'ê",
##: Punctuation
"": "'",
"": "'",
"´": "'",
"Ca ": "Ça ",
"...": "{\\dots}",
"": "{\\dots}",
"say: ``":"say, ``",
"says: ``":"says, ``",
"said: ``":"said, ``",
#replace tabs with two spaces
" ": " ",
##: Typo
"New-York": "New York",
" i ": " I ",
"avant hier": "avant-hier",
##: Conversion to anglo-saxon chords
"Lam ": "Am ",
"La7": "A7",
"Lasus2": "Asus2",
"Sim ": "Bm ",
"Sim}": "Bm}",
"Sim]": "Bm]",
"Si7": "B7",
"Dom ": "Cm ",
"Do7": "C7",
"Do9": "C9",
"": "D ",
"Rém ": "Dm ",
"Rém]": "Dm]",
"Ré7": "D7",
"Ré#": "D#",
"Mim ": "Em ",
"Mim]": "Em]",
"Mim7": "Em7",
"Mim}": "Em}",
"Mi7": "E7",
"Mi7sus4": "E7sus4",
"Fa ": "F ",
"Fa}": "F}",
"[Fa\\": "[F\\",
"Fam ": "Fm ",
"Fa7": "F7",
"Sol ": "G ",
"Sol]": "G]",
"Solm ": "Gm ",
"Solm]": "Gm]",
"Sol7": "G7",
"/La": "/A",
"/Si": "/B",
"/Do": "/C",
"/Ré": "/D",
"/Mi": "/E",
"/Fa": "/F",
"/Sol": "/G",
"tab{La": "tab{A",
"tab{Si": "tab{B",
"tab{Do": "tab{C",
"tab{": "tab{D",
"tab{Mi": "tab{E",
"tab{Fa": "tab{F",
"tab{Sol": "tab{G",
"\\[La": "\\[A",
"\\[Si": "\\[B",
"\\[Do": "\\[C",
"\\[Ré": "\\[D",
"\\[Mi": "\\[E",
"\\[Fa": "\\[F",
"\\[Sol": "\\[G",
"\\[Re": "\\[D",
"b]": "&]",
"b7]": "&7]",
#C
"032010": "X32010",
#A
"002220": "X02220",
"002020": "X02020",
"002210": "X02210",
#D
"000232": "XX0232",
"X00232": "XX0232",
"000212": "XX0212",
"000231": "XX0231",
"X00231": "XX0231",
#B
"021202": "X21202",
## LaTeX
"beginchorus": "begin{chorus}",
"endchorus": "end{chorus}",
"beginverse*": "begin{verse*}",
"beginverse": "begin{verse}",
"endverse": "end{verse}",
"}[by=": "}\n [by=",
### end of rules
}
def usage():
print '''
Usage: rules.py [OPTION]
OPTIONS
-h, --help
display this help and exit
-f, --files=FILES
apply the set of rules on FILES
default is songs/*/*.sg
-l, --log=LEVEL
set the logging level to LEVEL
outputs logging information to rules.log
possible LEVEL values are : debug, info, warning, error and critical
'''
def replace_words(string):
'''
Search the data string for words defined in the dictionary and
replace them. This method avoids usual spelling and typos mistakes
when writing a song.
'''
logging.info("replace_words: search and replace words from dictionary into song data")
for search, replace in word_dic.items():
string = string.replace(search, replace)
return string
#language based typographical rules
def language_rules(string):
'''
Search the data string for common typographical mistakes.
Implemented rules depend on the current song language that is
defined by babel for every .sg file through the macro
\selectlanguage{<lang>}
'''
logging.info("language_rules: looking for common typographical mistakes")
if (re.compile("selectlanguage{french}").search(string)):
logging.info(" song language is set to : french")
#ensure non-breaking spaces before symbols ? ! ; :
string = re.sub("(?P<last_char>\S)(?P<symbol>[!?;:])","\g<last_char> \g<symbol>", string)
#... except for gtabs macros with capos
string = re.sub("(?P<gtab>tab.?{.*)\s:","\g<gtab>:", string)
#... and for urls
string = re.sub("http\s:","http:", string)
#and apply a second time for cases like \gtab{Gm}{10:X02210:}
string = re.sub("(?P<gtab>tab.?{.*)\s:","\g<gtab>:", string)
#ensure no spaces after symbols (
string = re.sub("(?P<symbol>[\(])\s(?P<next_char>\S)","\g<symbol>\g<next_char>", string)
#convert inverted commas
string = re.sub("``","{\\og}", string)
string = re.sub("''","{\\\\fg}", string)
elif (re.compile("selectlanguage{english}").search(string)):
logging.info(" song language is set to : english")
#ensure no spaces before symbols ? ! ; : )
string = re.sub("(?P<last_char>\S)\s(?P<symbol>[!?;:\)])","\g<last_char>\g<symbol>", string)
#ensure no spaces after symbols (
string = re.sub("(?P<symbol>[\(])\s(?P<next_char>\S)","\g<symbol>\g<next_char>", string)
elif (re.compile("selectlanguage{spanish}").search(string)):
logging.info(" song language is set to : spanish")
#ensure no spaces before symbols ? ! ; : )
string = re.sub("(?P<last_char>\S)\s(?P<symbol>[!?;:\)])","\g<last_char>\g<symbol>", string)
#ensure no spaces after symbols ¿ ¡ (
string = re.sub("(?P<symbol>[¿¡\(])\s(?P<next_char>\S)","\g<symbol>\g<next_char>", string)
elif (re.compile("selectlanguage{portuguese}").search(string)):
logging.info(" song language is set to : portuguese")
#convert inverted commas
string = re.sub("``","{\\og}", string)
string = re.sub("''","{\\\\fg}", string)
else :
print "Warning: language is not defined for song : " + filename
return string
def process_lines(lines):
'''
Removes trailing punctuation and multi-spaces from lines. Note
that it preserves whitespaces at the beginning of lines that
correspond to indentation.
'''
logging.info("process_lines: handling song data line by line")
star = False
for index, line in enumerate(lines):
if re.compile("begin{verse\*}").search(line):
star = True
if re.compile("end{verse\*}").search(line):
star = False
if star == True and re.compile("end{verse}").search(line):
line = line.replace("verse", "verse*")
star = False
#remove trailing spaces and punctuation
line = line.rstrip().rstrip(',.;').rstrip()
#remove multi-spaces within lines
line = re.sub("(?P<last_char>\S)\s{2,}","\g<last_char> ", line)
lines[index] = line
return lines
def main():
locale.setlocale(locale.LC_ALL, '')
try:
opts, args = getopt.getopt(sys.argv[1:],
"hf:l:",
["help", "files=", "log="])
except getopt.GetoptError:
usage()
sys.exit(2)
library = './'
loglevel = "warning"
for option, arg in opts:
if option in ("-h", "--help"):
usage()
sys.exit()
elif option in ("-f", "--files"):
songfiles = glob.glob(arg)
elif option in ("-l", "--log"):
loglevel = arg
numeric_level = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric_level, int):
raise ValueError('Invalid log level: %s' % loglevel)
logging.basicConfig(level=numeric_level, filename='rules.log', filemode='w')
else:
assert False, "unhandled option"
songfiles = recursiveFind(os.path.join(library, 'songs'), '*.sg')
for filename in songfiles:
with open(filename, 'r+') as songfile:
logging.info("checking file: "+filename)
data = songfile.read()
#no dots for acronyms
#data = re.sub("(?P<capital_letter>[A-Z])\.","\g<capital_letter>", data)
data = replace_words(data)
data = language_rules(data)
lines = process_lines(data.split('\n'))
data = "\n".join(lines)
songfile.seek(0)
songfile.write(data)
songfile.truncate()
if __name__ == '__main__':
main()

85
utils/songbook-gtab.py

@ -1,85 +0,0 @@
#!/usr/bin/python
#
import sys
import re
from optparse import OptionParser
from utils.utils import recursiveFind
from utils.utils import recursiveFind
# Pattern set to ignore latex command in title prefix
gtabPattern = re.compile(r"\\gtab\{(.*)\}\{(.*)\}");
def main():
usage = "usage: %prog [options]"
parser = OptionParser(usage)
parser.add_option("-o", "--output", dest="filename",
help="write result into FILE", metavar="FILE")
(options, args) = parser.parse_args()
# Options processing
if options.filename:
output = open(options.filename,"w")
else:
output = sys.stdout
# Actual processing
chords = dict()
positions = dict()
songfiles = recursiveFind(os.path.join(library, 'songs'), '*.sg')
for file in songfiles:
for line in open(file):
result = gtabPattern.match(line)
if result:
(chord,position) = result.groups()
if not chords.has_key(chord):
chords[chord] = set()
chords[chord].add(position)
if not positions.has_key(position):
positions[position] = set()
positions[position].add(chord)
document = [
'\\documentclass{article}',
'\\usepackage[chorded]{songs}',
'\\usepackage[utf8]{inputenc}',
'\\title{Accords}',
'\\author{Romain Goffe \\and Alexandre Dupas}',
'\\date{}',
'\\begin{document}',
'\\maketitle',
'\\begin{songs}{}',
]
document.append('\\section{Chords names}')
chordskeys = chords.keys()
chordskeys.sort()
for k in chordskeys:
document.append('\\subsection{'+k.replace('#','\\#').replace('&','\\&')+'}')
for p in chords[k]:
document.append('\\gtab{'+k+'}{'+p+'}')
document.append('\\section{Chords names}')
positionskeys = positions.keys()
positionskeys.sort()
for k in positionskeys:
document.append('\\subsection{'+k+'}')
for p in positions[k]:
document.append('\\gtab{'+p+'}{'+k+'}')
document.extend([
'\\end{songs}',
'\\end{document}',
])
output.write('\n'.join(document))
if __name__ == '__main__':
main()
Loading…
Cancel
Save