Skip to content

pyrochat/Projecteur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projecteur ACTR

Un onglet Aide orienté usage est intégré dans l'application (bouton Aide ou touche F1). Ce README garde les détails techniques (notes, tests, format).

Affichage instantané des paroles de chants sur le 2ᵉ écran, à partir de ACTR.pptm. On ne projette plus depuis PowerPoint : on affiche des images pré-rendues (un simple blit, < 1/100 s), ce qui supprime le délai du Ctrl-F + macro + GotoSlide.

Source de vérité : chants.json (et non plus le .pptm). Le .pptm ne sert plus qu'à l'import initial. On édite ensuite les chants dans l'app.

⚠️ chants.json n'est pas inclus dans ce dépôt : les paroles des chants sont sous droit d'auteur. Créez votre bibliothèque dans l'application (mode Édition) ou via un import (--import-pptm) depuis votre propre fichier source.

Modèle d'un chant (chants.json)

"E123": {
  "recueil": "E", "numero": 123, "titre": "Titre du chant",
  "corps": [
    {"role": "couplet", "rep": 1, "lignes": ["1re ligne du couplet", "2e ligne"]},
    {"role": "refrain", "rep": 1, "lignes": ["Ligne du refrain"]},
    {"role": "pont",    "rep": 2, "lignes": ["Ligne du pont", "reprise ×2"]}
  ],
  "sauts_page": []
}
  • role : couplet (numéroté automatiquement 1, 2, 3…), refrain (couleur + retrait constants), pont, libre.
  • rep : répétition appliquée à tout le bloc (affichée « × n »).
  • sauts_page : indices de blocs où commence une nouvelle page (vide = auto).

Fichiers

Fichier Rôle
chants.json Bibliothèque = source de vérité (modèle en blocs)
core.py Moteur : import .pptm, modèle, rendu paramétrique, régénération
projecteur.py Application 2 modes (Projection / Paramètres) + recherche
style.json Palette de paramètres de rendu
ACTR.pptm Ancienne source, désormais import seulement
build/ index.json, pages/*.png, nouveaux.txt, manifest.txt

Import / régénération en ligne de commande :

python projecteur.py --import-pptm   # (re)génère chants.json depuis ACTR.pptm
python projecteur.py --render-all     # rend toute la bibliothèque -> build/

(moulinette.py n'existe plus : tout est dans core.py.)

Installation (une fois)

pip install PySide6 Pillow pypdf

(pypdf est optionnel : sans lui l'export PDF fonctionne, mais sans signets.)

Python ≥ 3.10. Fonctionne sous Windows et Linux.

Lancer

python projecteur.py

Mode Projection

Deux façons de retrouver un chant : par numéro (pavé numérique) ou par recherche de mots (clavier).

Numéro — pavé numérique (préfixe par défaut selon le seuil 500) :

Frappe (pavé) Résultat
7 Entrée / 40 Entrée R7 / R40
154 R154 (auto, < 500 → R)
524 E524 (auto, ≥ 500 → E)
/ 33 Entrée H33 (la touche / = recueil H)
* N 12 Entrée N12 (* = échappement, suivi de n'importe quelle lettre de recueil)
* J 123 J123 (autre recueil, ex. importé)

Recherche — clavier alphabétique : tapez quelques mots du titre ou des paroles (accents/casse indifférents). Une liste de résultats apparaît ; choisissez avec ↑/↓ puis Entrée. Ex. reviens coeur, minuit chretien, gloire jesus.

Touche Action
pavé num. / / / * code : chiffres → R/E, / → H, * + lettre → recueil quelconque
lettres recherche par mots
← / → chant précédent / suivant
Espace page suivante
↑ / ↓ page précédente / suivante (ou naviguer dans les résultats)
Entrée valider le numéro ou projeter le résultat sélectionné
- écran noir (rôle d'Échap, à côté du pavé)
+ ré-afficher la dernière page projetée
. / Suppr effacer la dernière lettre/chiffre
Retour arrière · Échap corriger · écran noir
F2 déplacer la projection sur l'autre écran
F3 basculer Projection / Paramètres
Ctrl+Q quitter

Robustesse NumLock : si NumLock est désactivé par erreur, le pavé numérique continue de saisir des chiffres (Home→7, Inser→0, etc.) — pas de panique en plein culte. Les touches / * - + . gardent leur rôle quel que soit l'état de NumLock.

Le panneau de contrôle affiche un miroir fidèle du projecteur (même image, même format) : l'opérateur n'a pas besoin de regarder le mur. Pendant la frappe, le miroir ne bouge pas ; il n'est mis à jour qu'à la validation (3 chiffres, Entrée, ou choix d'un résultat). Un résultat trouvé dans les paroles est projeté à partir de la page 1.

Mode Paramètres

  • Réglage de tous les paramètres de rendu (couleurs, polices, tailles, marges, retraits, alignement…) avec aperçu en direct.
  • Rendre ce chant : régénère uniquement le chant sélectionné (pour comparer vite un réglage).
  • Tout regénérer : reconstruit toutes les images + index.json (≈ 2–3 min).
  • Enregistrer le style : sauve style.json.
  • Importer depuis pptm : (re)génère chants.json depuis ACTR.pptm.
  • Exporter tout (PDF) : toute la bibliothèque en un PDF unique (ordre alphanumérique, un signet par chant) — pour emporter / transmettre.

En ligne de commande :

  • python projecteur.py --render-all — régénère les images sans interface ;
  • python projecteur.py --export-pdf [chemin.pdf] — exporte toute la bibliothèque en PDF.

Mode Édition (F4)

Éditeur du corps en blocs d'un chant (modifie chants.json).

  • Sélecteur de chant, titre, recueil + numéro.
  • Liste de blocs ; chaque bloc : [type ▾] [× n] [saut de page avant] [✂ ↑ ↓ 🗑]
    • zone de texte (une ligne par ligne). Type = couplet (numéroté), refrain, pont, libre, ou suite (= continuation d'un couplet : même retrait, sans numéro, collée au bloc précédent — pratique pour isoler des lignes répétées).
  • Répétitions : mettre × n sur un bloc le marque d'une accolade à droite qui embrasse ses lignes. Pour répéter seulement une partie d'un couplet : ✂ scinder la ou les lignes concernées et passer ce sous-bloc en suite avec × 2 → l'accolade ne couvre que ces lignes (la numérotation les ignore).
    • ✂ Scinder : coupe le bloc au curseur ; ce qui suit part dans un nouveau bloc juste après (même type).
  • + Ajouter un bloc, Nouveau, Dupliquer, Supprimer, Exporter (PDF) (le chant courant, même non enregistré).
  • Renommer un chant = changer le champ Recueil (lettre libre : R/H/E/N ou une autre pour un autre recueil) et/ou le numéro, puis Enregistrer — l'ancien code est remplacé. Un code déjà utilisé par un autre chant est refusé (pas d'écrasement). Dupliquer crée une copie sous un nouveau code en gardant l'original. (Un recueil avec une autre lettre se tape en projection avec * + la lettre, ex. *J123 ; il est aussi accessible par recherche ou ←/→.)
  • Aperçu en direct à droite, cadré au ratio du projecteur (bordure = bord de l'image projetée), avec sélecteur de page.
  • Enregistrer le chant (écrit chants.json + met à jour la recherche) ; Rendre ce chant (régénère ses PNG pour la projection).

C'est ici qu'on nettoie au fil des cultes les chants importés du .pptm : numéros de couplets, zones de refrain, répétitions × n, coupures de page.

Rendu (fidélité ACTR)

Couleurs résolues depuis le thème/masque du .pptm (telles que PowerPoint les affiche à l'ACTR) :

  • fond noir, titre + refrain verts (#A3B68D), versets blancs ;
  • justification à gauche avec retrait suspendu (numéros de versets en saillie) et retrait des lignes à tabulation ;
  • par défaut pas de coupure de ligne : la police est réduite pour que chaque ligne tienne entière (case « Coupure de ligne autorisée » pour revenir au retour à la ligne) ;
  • couplets numérotés automatiquement (1, 2, 3…), refrain en couleur — fin des incohérences de numéros/retraits ;
  • répétitions portées par le bloc, marquées par une accolade }× n à droite ;
  • code par page conservé (E504A, E504B…), à la même taille que le titre ;
  • taille de police uniforme sur toutes les pages d'un même chant.

Tout est ajustable dans le mode Paramètres / style.json.

Tests

python projecteur.py --selftest   # grammaire de saisie (sans Qt)
python projecteur.py --smoke      # construction de l'appli (offscreen)

Licence

© 2026 ACTR et Pierre-Yves Rochat. Logiciel libre distribué sous licence GNU General Public License v3 : notice dans LICENSE, texte intégral dans COPYING. Fourni sans aucune garantie.

Notes

  • Découpage identique au .pptm (1 slide = 1 page) → aucune surprise de pagination ; pages d'un chant liées par leur suffixe.
  • Ajouts sans code regroupés par titre et numérotés N1, N2… (voir nouveaux.txt, à imprimer).
  • Rendu de référence ACTR (Piste A) : possibilité d'exporter via PowerPoint/ LibreOffice pour comparer, si besoin.

About

Projecteur des paroles de chants pour l'Eglise ACTR — Python/PySide6, licence GPL v3

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages