Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display songs #137

Open
wants to merge 57 commits into
base: python3
Choose a base branch
from
Open

Display songs #137

wants to merge 57 commits into from

Conversation

oliverpool
Copy link
Contributor

Comme évoqué dans #132, voici des tests de design pour intégrer les informations tirées des chants.

Pour l'instant les "informations" sont purement arbitraires (et rarement en rapport avec le chant).
Je suppose qu'il vaut mieux attendre l'intégration de ChordPro dans patacrep avant de parser correctement (@Luthaf : tu penses que c'est bientôt prêt ?).

La deuxième étape sera l'interface pour modifier les chants (là aussi avec des données factices dans un premier temps).

Cette branche est un WorkInProgress (voir les TODO innombrables^^).

@Luthaf
Copy link
Contributor

Luthaf commented May 19, 2015

Je suppose qu'il vaut mieux attendre l'intégration de ChordPro dans patacrep avant de parser correctement (@Luthaf : tu penses que c'est bientôt prêt ?).

Il faut que je me motive pour écrire le script de transition de patadata. Sinon, le format est supporté sans problème par patanet.

@paternal
Copy link
Contributor

Il faut que je me motive pour écrire le script de transition de patadata. Sinon, le format est supporté sans problème par patanet.

Excepté pour les accords et les tablatures (qui sont, si je me souviens bien, copiés sans analyse). Mais c'est toujours dans ma todo liste.

@oliverpool
Copy link
Contributor Author

J'ai pris un peu de temps pour le projet et j'ai trouvé ce site (http://ukegeeks.com/demo.htm) qui permet de rendre les fichiers chordpro (et de les éditer).

L'affichage des chant me parait tout à fait correct (je n'ai pas encore regardé le code) et je pense qu'avec quelques améliorations, il y a moyen de faire quelque chose de pas mal (édition live, voire unifiée).

PS : le site est destiné aux Ukulélés
PPS : sources dispo sur https://github.com/buzcarter/UkeGeeks

@oliverpool
Copy link
Contributor Author

J'ai trouvé un outils ultra puissant de Parsing (en JavaScript): http://pegjs.org/online
Cela pourrait permettre:

  • de parser les chant de chordpro vers HTML pour l'affichage ou l'édition live
  • de faire le script de transition de patadata (avec une installation temporaire de node.js par exemple)
  • de proposer plein de conversion vers chordpro pour les utilisateurs (guitar tab, LaTeX, ...)
  • ...

Voici la grammaire (assez moche je reconnais) que j'ai écrite en un soir pour convertir LaTeX vers chordpro : https://www.zerobin.net/?ea2f1a7c1b3d9fbd#Ke+U8OcW7jIwun4pQZXSJO1PToioLpjmLLGU0QN41EI= (testé juste avec le chant Greensleeves)

@Luthaf
Copy link
Contributor

Luthaf commented Jul 12, 2015

J'ai pris un peu de temps pour le projet et j'ai trouvé ce site (http://ukegeeks.com/demo.htm) qui permet de rendre les fichiers chordpro (et de les éditer).

C'est super cool ça ! Le rendu en "statique" est fait en JS, c'est bien ça ?

J'ai trouvé un outils ultra puissant de Parsing (en JavaScript): http://pegjs.org/online

Pour le parsing en live des chants, il est déja implémenté en Python ici, et on pourra faire de l'AJAX pour gérer le temps réel.

Pour le script de transition, j'avais commencé quelque chose (patacrep/patadata#17), et il n'y a pas besoin d'instance node, étant donné que le dépôt sera entierement transformé en chordpro. Si tu es motivé pour faire la transition avec JS, lance-toi !

@oliverpool
Copy link
Contributor Author

J'ai un peu avancé sur le sujet...

Je ne sais pas trop comment "servir" les images des albums. Pour l'instant j'ai un "hack" dans loca_settings pour que http://127.0.0.1:8000/data/songs/as_de_trefle/haut-les-nains.jpg soit affiché:

STATICFILES_DIRS = settings.STATICFILES_DIRS + (SONGS_LIBRARY_DIR,)

Il y a sûrement plein de choses à corriger/nettoyer, n'hésitez pas à commenter ! (j'ai conscience d'avoir une belle marge de progression en python ^^).

@Luthaf
Copy link
Contributor

Luthaf commented Sep 9, 2015

Je ne sais pas trop comment "servir" les images des albums. Pour l'instant j'ai un "hack" dans loca_settings pour que http://127.0.0.1:8000/data/songs/as_de_trefle/haut-les-nains.jpg soit affiché:

Semi-problème ici : on donne accès à tous les fichiers dans SONGS_LIBRARY_DIR, ce qui n'est peut-être pas le mieux. On pourrais ajouter une étape de copie des images dans STATIC_DIR dans la fonction manage.py importsongs.

Sinon le code me semble bon !

@oliverpool
Copy link
Contributor Author

on donne accès à tous les fichiers dans SONGS_LIBRARY_DIR, ce qui n'est peut-être pas le mieux.

Ca ne me dérange pas outre mesure, car SONGS_LIBRARY_DIR est patadata !

Merci pour la relecture 😄

Je suis en train de me dire que la langue est assez inutile dans la SongView, je propose donc de ne pas l'afficher (il peut-être utile en BDD pour trier ou filtrer une collection de chants)

Avant d'aller plus loin, je vais attendre la résolution de patacrep/patacrep#93

@Luthaf
Copy link
Contributor

Luthaf commented Sep 15, 2015

Ca ne me dérange pas outre mesure, car SONGS_LIBRARY_DIR est patadata !

Pas nécessairement, si on implémente des bibliothèques locales pour avoir des chants privés (cf #42 (comment))

@oliverpool
Copy link
Contributor Author

J'avais oublié ce paramètre.

Mais du coup tu ne voulais pas faire un autre dossier (datadir) pour les chants privés? (qui lui ne serait donc pas exposé)

@Luthaf
Copy link
Contributor

Luthaf commented Sep 16, 2015

Mais du coup tu ne voulais pas faire un autre dossier (datadir) pour les chants privés? (qui lui ne serait donc pas exposé)

Ça dépends comment ç'est fait. On peut soit laisser ça tel quel avec un commentaire "attention, expose tout patadata", soit écrire une vue pour servir ces fichiers.

@oliverpool
Copy link
Contributor Author

Ok, comme tu préfères !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants