Images prises depuis Internet

Bonjour,

Je sais insérer une image dans un markup :

\markup { \epsfile #X #8 #"image.eps" }

Dans ce cas, il faut que l'image soit sur le disque dur de l'utilisateur...

Ma question : Est-il possible de mettre une adresse internet à la place ?
un truc du genre :

\markup { \epsfile #X #8 #"http://monsite.fr/image.eps" }

D'avance merci pour vos réponses,
David

Bonjour,

(Pense à donner un titre à ton message à l'avenir afin qu'on
se souvienne facilement de ce dont il s'agit dans son courrielleur.)

Bonjour,

Je sais insérer une image dans un markup :
\markup { \epsfile #X #8 #"image.eps" }

Dans ce cas, il faut que l'image soit sur le disque dur de
l'utilisateur...

Ma question : Est-il possible de mettre une adresse internet à la place ?
un truc du genre :
\markup { \epsfile #X #8 #"http://monsite.fr/image.eps" }

Qu'entends-tu par là ? Télécharger l'image automatiquement
lors de la compilation du .ly et l'inclure ? Ou bien inclure
un lien dans le PDF ?

Télécharger l'image à la compilation n'est pas possible à
ma connaissance, du moins pas en 2.23 avec les binaires
officielles, pour la simple et bonne raison que ces binaires
sont compilées avec une version de Guile sans les fonctionnalités
liées au réseau, pour des raisons de sécurité. Il suffit
de télécharger l'image une bonne fois pour toutes.

À ma connaissance, le PDF ne permet pas d'intégrer à la
manière du HTML une image Internet qui soit chargée par
la liseuse de PDF au moment de l'affichage. Par contre,
il reste possible de mettre un lien :

\markup { Voir l'image sur \with-url "https://monsite.fr/image.eps" "mon
site Internet" }

Cordialement,
Jean

···

Le 29/06/2022 à 09:36, ****@**** a écrit :

Toutes mes excuses, j'ai dit une bêtise. Bien que les fonctionnalités
de réseau soient désactivées à l'intérieur de Guile, il est toujours
possible d'exécuter des commandes du système qui, elles, y ont accès.
Par exemple, sous GNU/Linux, ce genre de truc devrait marcher :

\version "2.23.11"

from-network =
#(let ((keep-these '()))
(define-scheme-function (url) (string?)
(let* (;; Un fichier temporaire
(port (mkstemp! "/tmp/from-network-XXXXXX"))
;; Le nom de ce fichier
(filename (port-filename port)))
;; Il est prudent de s'assurer qu'aucun autre processus n'écrit dans
;; ce fichier entre le moment où il est écrit par wget et le moment
;; où LilyPond le lit. Pour cela, on place le port dans une
liste qui
;; n'est jamais effacée. Cela empêche le port d'être effacé, ce
qui le
;; garde ouvert.
(set! keep-these (cons port keep-these))
;; Le téléchargement
(system* "wget" url "-O" filename)
filename)))

\markup \epsfile #X #20 \from-network
"https://people.sc.fsu.edu/~jburkardt/data/ps/bell_206.ps"

Néanmoins, je ne le recommande pas vraiment dans la mesure où
cela fait un téléchargement de l'image à chaque compilation.
Autant faire le téléchargement une fois.

Cordialement,
Jean

···

Le 29/06/2022 à 09:48, Jean Abou Samra a écrit :

Bonjour,

(Pense à donner un titre à ton message à l'avenir afin qu'on
se souvienne facilement de ce dont il s'agit dans son courrielleur.)

Le 29/06/2022 à 09:36, ****@**** a écrit :

Bonjour,

Je sais insérer une image dans un markup :
\markup { \epsfile #X #8 #"image.eps" }

Dans ce cas, il faut que l'image soit sur le disque dur de
l'utilisateur...

Ma question : Est-il possible de mettre une adresse internet à la
place ?
un truc du genre :
\markup { \epsfile #X #8 #"http://monsite.fr/image.eps" }

Qu'entends-tu par là ? Télécharger l'image automatiquement
lors de la compilation du .ly et l'inclure ? Ou bien inclure
un lien dans le PDF ?

Télécharger l'image à la compilation n'est pas possible à
ma connaissance, du moins pas en 2.23 avec les binaires
officielles, pour la simple et bonne raison que ces binaires
sont compilées avec une version de Guile sans les fonctionnalités
liées au réseau, pour des raisons de sécurité.

Bonjour !
Ca ne fonctionne pas chez moi, mais je ne suis qu'en version 2.23.10, c'est peut être pour ça...
D'une manière générale, comme on fait avec "\epsfile", peut on importer d'autres format que *.eps, par exemple *.png ou *.jpg ?

Gilles

Bonjour,

(Pense à donner un titre à ton message à l'avenir afin qu'on
se souvienne facilement de ce dont il s'agit dans son courrielleur.)

Bonjour,

Je sais insérer une image dans un markup :
\markup { \epsfile #X #8 #"image.eps" }

Dans ce cas, il faut que l'image soit sur le disque dur de
l'utilisateur...

Ma question : Est-il possible de mettre une adresse internet à la
place ?
un truc du genre :
\markup { \epsfile #X #8 #"http://monsite.fr/image.eps" }

Qu'entends-tu par là ? Télécharger l'image automatiquement
lors de la compilation du .ly et l'inclure ? Ou bien inclure
un lien dans le PDF ?

Télécharger l'image à la compilation n'est pas possible à
ma connaissance, du moins pas en 2.23 avec les binaires
officielles, pour la simple et bonne raison que ces binaires
sont compilées avec une version de Guile sans les fonctionnalités
liées au réseau, pour des raisons de sécurité.

Toutes mes excuses, j'ai dit une bêtise. Bien que les fonctionnalités
de réseau soient désactivées à l'intérieur de Guile, il est toujours
possible d'exécuter des commandes du système qui, elles, y ont accès.
Par exemple, sous GNU/Linux, ce genre de truc devrait marcher :

\version "2.23.11"

from-network =
#(let ((keep-these '()))
(define-scheme-function (url) (string?)
(let* (;; Un fichier temporaire
(port (mkstemp! "/tmp/from-network-XXXXXX"))
;; Le nom de ce fichier
(filename (port-filename port)))
;; Il est prudent de s'assurer qu'aucun autre processus n'écrit dans
;; ce fichier entre le moment où il est écrit par wget et le moment
;; où LilyPond le lit. Pour cela, on place le port dans une
liste qui
;; n'est jamais effacée. Cela empêche le port d'être effacé, ce
qui le
;; garde ouvert.
(set! keep-these (cons port keep-these))
;; Le téléchargement
(system* "wget" url "-O" filename)
filename)))

\markup \epsfile #X #20 \from-network
"https://people.sc.fsu.edu/~jburkardt/data/ps/bell_206.ps"

Néanmoins, je ne le recommande pas vraiment dans la mesure où
cela fait un téléchargement de l'image à chaque compilation.
Autant faire le téléchargement une fois.

Cordialement,
Jean

···

Le mercredi 29 juin 2022 à 20:20:30 UTC+2, Jean Abou Samra <****@****> a écrit :
Le 29/06/2022 à 09:48, Jean Abou Samra a écrit :

Le 29/06/2022 à 09:36, ****@**** a écrit :

Bonjour Gilles,

Bonjour !
Ca ne fonctionne pas chez moi, mais je ne suis qu'en version 2.23.10, c'est peut être pour ça...

Quel est le message d'erreur ? Pour moi, ça marche aussi en 2.23.10.

Vu la manière dont mon message est cité dans ta réponse, je me demande si
des retours à la ligne intempestifs ont ajouté comme code des mots qui
faisaient partie des commentaires. Peux-tu essayer comme ceci ?

\version "2.23.10"

from-network =
#(let ((keep-these '()))
(define-scheme-function (url) (string?)
(let* (#| Un fichier temporaire |#
(port (mkstemp! "/tmp/from-network-XXXXXX"))
#| Le nom de ce fichier |#
(filename (port-filename port)))
#| Il est prudent de s'assurer qu'aucun autre processus n'écrit dans
ce fichier entre le moment où il est écrit par wget et le moment
où LilyPond le lit. Pour cela, on place le port dans une
liste qui
n'est jamais effacée. Cela empêche le port d'être effacé, ce
qui le
garde ouvert. |#
(set! keep-these (cons port keep-these))
#| Le téléchargement |#
(system* "wget" url "-O" filename)
filename)))

\markup \epsfile #X #20 \from-network
"https://people.sc.fsu.edu/~jburkardt/data/ps/bell_206.ps&quot;

D'une manière générale, comme on fait avec "\epsfile", peut on importer d'autres format que *.eps, par exemple *.png ou *.jpg ?

À l'heure actuelle, non. Il faut convertir l'image en EPS, par exemple
avec ImageMagick :

convert fichier.png fichier.eps

(et donc plutôt : non sauf à faire le même genre de chose pour faire la
conversion
au moment de la compilation, ce que je ne recommande pas forcément non
plus).
Par contre, à moyen terme, il n'est pas impossible que cela soit pris en
charge,
grâce au backend Cairo tout nouveau tout beau.

Cordialement,
Jean

···

Le 30/06/2022 à 09:38, Ya Gloops a écrit :

"Quel est le message d'erreur ? Pour moi, ça marche aussi en 2.23.10."

Analyse...ERROR: In procedure mkstemp!:

In procedure mkstemp!: No such file or directory

Arrêté avec le code de retour 1.

J'ai le même message d'erreur!
J'ai essayé en enlevant tous les commentaires idem.
En enregistrant les fichier .ly pour éviter le dossier "temp" idem...

"Par contre, à moyen terme, il n'est pas impossible que cela soit pris en
charge,
grâce au backend Cairo tout nouveau tout beau."

Vive le backend Cairo !!! :wink:

Bonjour Gilles,

Bonjour !
Ca ne fonctionne pas chez moi, mais je ne suis qu'en version 2.23.10, c'est peut être pour ça...

Quel est le message d'erreur ? Pour moi, ça marche aussi en 2.23.10.

Vu la manière dont mon message est cité dans ta réponse, je me demande si
des retours à la ligne intempestifs ont ajouté comme code des mots qui
faisaient partie des commentaires. Peux-tu essayer comme ceci ?

\version "2.23.10"

from-network =
#(let ((keep-these '()))
(define-scheme-function (url) (string?)
(let* (#| Un fichier temporaire |#
(port (mkstemp! "/tmp/from-network-XXXXXX"))
#| Le nom de ce fichier |#
(filename (port-filename port)))
#| Il est prudent de s'assurer qu'aucun autre processus n'écrit dans
ce fichier entre le moment où il est écrit par wget et le moment
où LilyPond le lit. Pour cela, on place le port dans une
liste qui
n'est jamais effacée. Cela empêche le port d'être effacé, ce
qui le
garde ouvert. |#
(set! keep-these (cons port keep-these))
#| Le téléchargement |#
(system* "wget" url "-O" filename)
filename)))

\markup \epsfile #X #20 \from-network
"https://people.sc.fsu.edu/~jburkardt/data/ps/bell_206.ps&quot;

D'une manière générale, comme on fait avec "\epsfile", peut on importer d'autres format que *.eps, par exemple *.png ou *.jpg ?

À l'heure actuelle, non. Il faut convertir l'image en EPS, par exemple
avec ImageMagick :

convert fichier.png fichier.eps

(et donc plutôt : non sauf à faire le même genre de chose pour faire la
conversion
au moment de la compilation, ce que je ne recommande pas forcément non
plus).
Par contre, à moyen terme, il n'est pas impossible que cela soit pris en
charge,
grâce au backend Cairo tout nouveau tout beau.

Cordialement,
Jean

···

Le jeudi 30 juin 2022 à 10:21:48 UTC+2, Jean Abou Samra <****@****> a écrit :
Le 30/06/2022 à 09:38, Ya Gloops a écrit :

On dirait qu'il n'y a pas de /tmp chez toi. Tu es bien sous Linux ?
Sous Windows ou macOS, il faudrait remplacer "/tmp/from-network-XXXXXX"
par un chemin vers un dossier temporaire. Je ne m'y connais pas trop.
Quel ton système ?

Cordialement,
Jean

···

Le 30/06/2022 à 10:37, Ya Gloops a écrit :

"Quel est le message d'erreur ? Pour moi, ça marche aussi en 2.23.10."

Analyse...ERROR: In procedure mkstemp!:

In procedure mkstemp!: No such file or directory

Effectivement ça doit être pour ça je suis sous windows 10 …

···

Le 30 juin 2022 à 22:24 +0200, Jean Abou Samra <****@****>, a écrit :

Le 30/06/2022 à 10:37, Ya Gloops a écrit :
> "Quel est le message d'erreur ? Pour moi, ça marche aussi en 2.23.10."
>
> Analyse...ERROR: In procedure mkstemp!:
>
> In procedure mkstemp!: No such file or directory

On dirait qu'il n'y a pas de /tmp chez toi. Tu es bien sous Linux ?
Sous Windows ou macOS, il faudrait remplacer "/tmp/from-network-XXXXXX"
par un chemin vers un dossier temporaire. Je ne m'y connais pas trop.
Quel ton système ?

Cordialement,
Jean

Bonjour à tous,

Merci pour vos réponses et désolé de n'avoir pas mis de titre, c'est un oubli...

En effet ce n'est pas génial d'aller chercher une image sur internet à chaque compilation...

Je vais expliciter un peu plus mon besoin, peut-être qu'il y a une autre solution ?

C'est la suite d'une question que j'avais déjà posée il y a un moment : je cherchais à insérer un QR-code en haut à gauche de chacune de mes partitions.
(en effet, je diffuse pas mal les partitions de mon compositeur, on a mis le lien du site en pied de page, mais je trouve qu'à l'époque actuelle, tout le monde a son téléphone sur soi, et d'une part presque personne ne sait taper d'adresse internet, par contre tout le monde s'amuse à scanner les QR-codes divers et variés)
Pour la petite histoire, j'ai relancé mon projet quand j'ai reçu un PV d'excès de vitesse et que j'ai remarqué qu'il y a un QR-code dans chaque coin sur chaque page...

Maintenant j'ai réussi à créer un QR-code
j'ai trouver comment insérer une image .eps en bas, dans le tagline. J'arrive même à écrire le copyright et l'adresse du site sur 2 lignes, à côté du QR-code...

Sur notre site internet, on met librement à disposition du public d'une part les pdf des partitions et d'autres part les fichiers .ly

J'ai bien conscience que la plupart des visiteurs vont télécharger uniquement les pdf. Dans ce cas, pas de problème, je peux insérer l'image avec mon code de mon message de départ.

La solution qui m'a été donnée ici pour aller chercher les images sur internet pourrait convenir. mais il me semble avoir lu que ça ne marcherait qu'avec linux. Mais je dois être le seul musicien que je connais qui utilise linux, tous les autres sont sur windows (à part si le code est valable aussi sur android ?)

Et, en effet, je trouve qu'aller chercher une image sur internet à chaque compilation c'est un peu dommage.
Et je ne souhaite pas mettre un lien vers l'image sur chaque page internet, je trouve que ça ferait trop lourd

Bref, voici la dernière idée qui m'est venue pour insérer le code dans le fichier .ly :
Vu que je n'ai qu'un seul QR-code à créer, est-il possible de coder dans lilypond un markup qui serait un petit carré de 29x29 ou je pourrais spécifier si les cases sont noires ou blanches ?

ensuite, peu importe ou on insère cette image, dans un coin de la partition (mais qui ne décale pas les titres vers le bas ni les marges de bas de page) ou bien dans le tagline comme je faisais avec l'eps ?

Pardon d'avoir été long, et merci pour vos réponses,
David

Donc, si je comprends bien, tu veux distribuer tes fichiers .ly et que celui qui le télécharge n'ait pas à se préoccuper de l'image ? Et si tu fournissais une archive .zip avec le .ly et l'image du QR-code dedans ? À mon avis, c'est de loin la solution la plus simple.

Cordialement,
Jean

···

Le 02/07/2022 à 15:07, ****@**** a écrit :

Bonjour à tous,

Merci pour vos réponses et désolé de n'avoir pas mis de titre, c'est un oubli...
En effet ce n'est pas génial d'aller chercher une image sur internet à chaque compilation...

Je vais expliciter un peu plus mon besoin, peut-être qu'il y a une autre solution ?

C'est la suite d'une question que j'avais déjà posée il y a un moment : je cherchais à insérer un QR-code en haut à gauche de chacune de mes partitions.
(en effet, je diffuse pas mal les partitions de mon compositeur, on a mis le lien du site en pied de page, mais je trouve qu'à l'époque actuelle, tout le monde a son téléphone sur soi, et d'une part presque personne ne sait taper d'adresse internet, par contre tout le monde s'amuse à scanner les QR-codes divers et variés)
Pour la petite histoire, j'ai relancé mon projet quand j'ai reçu un PV d'excès de vitesse et que j'ai remarqué qu'il y a un QR-code dans chaque coin sur chaque page...

Maintenant j'ai réussi à créer un QR-code
j'ai trouver comment insérer une image .eps en bas, dans le tagline. J'arrive même à écrire le copyright et l'adresse du site sur 2 lignes, à côté du QR-code...

Sur notre site internet, on met librement à disposition du public d'une part les pdf des partitions et d'autres part les fichiers .ly

J'ai bien conscience que la plupart des visiteurs vont télécharger uniquement les pdf. Dans ce cas, pas de problème, je peux insérer l'image avec mon code de mon message de départ.

La solution qui m'a été donnée ici pour aller chercher les images sur internet pourrait convenir. mais il me semble avoir lu que ça ne marcherait qu'avec linux. Mais je dois être le seul musicien que je connais qui utilise linux, tous les autres sont sur windows (à part si le code est valable aussi sur android ?)

Et, en effet, je trouve qu'aller chercher une image sur internet à chaque compilation c'est un peu dommage.
Et je ne souhaite pas mettre un lien vers l'image sur chaque page internet, je trouve que ça ferait trop lourd

Bref, voici la dernière idée qui m'est venue pour insérer le code dans le fichier .ly :
Vu que je n'ai qu'un seul QR-code à créer, est-il possible de coder dans lilypond un markup qui serait un petit carré de 29x29 ou je pourrais spécifier si les cases sont noires ou blanches ?
ensuite, peu importe ou on insère cette image, dans un coin de la partition (mais qui ne décale pas les titres vers le bas ni les marges de bas de page) ou bien dans le tagline comme je faisais avec l'eps ?

Pardon d'avoir été long, et merci pour vos réponses,
David

Merci pour ta réponse rapide Jean !

Oui j'ai pensé aussi au zip, c'est ma solution de secours

j'ai 3 raisons (purement subjectives) qui m'ont fait essayer de chercher autre chose :

  1. très peu de gens savent décompresser un zip. contre-arguement : ceux qui seront intéressés par télécharger le code seront normalement compétents pour le dézipper.
    J'ai le projet également de joindre au pdf le fichier ly, et dans ce cas, je pense que je peux aussi joindre aussi l'eps ?

  2. j'aime que les gens puissent télécharger un fichier dont l'extension est .ly : ça lance tout de suite le débat : "mais c'est pas du finale/musescore/..." ? c'est quoi ce truc bizarre ?

  3. ça me ferait kiffer de coder un QR-code sur lilypond. Contre-argument : si je fais un zip, je peux mettre sur la partition non pas le lien vers la page d'accueil du site, mais un lien directement sur la page de téléchargement de la partition du QR-code que les gens ont scanné... dans l'absolu c'est encore une meilleure idée !

Bref, oui, la solution la plus raisonnable c'est de faire un zip.

Mais c'est la moins rigolote :smiley:
Pour dire la vérité, je suis passé de Finale à Lilypond parce que ça me relaxait de coder les partitions avec Lilypond, tandis que ça me stressait de les taper sur Finale... donc j'aime utiliser Lilypond pour mon bien-être moral. C'est une des raisons de mes questions plus bizarres les unes que les autres....

Donc, si c'est un grand investissement de travail pour, au final, pas grand chose, laisse tomber, je me rapatrierai avec plaisir sur le zip

David

···

De : Jean Abou Samra <****@****>
À : ****@****;
lilypond-user-fr@gnu.org
Sujet : Re: Images prises depuis Internet
Date : 02/07/2022 15:34:03 Europe/Paris

Le 02/07/2022 à 15:07, ****@**** a écrit :

Bonjour à tous,

Merci pour vos réponses et désolé de n'avoir pas mis de titre, c'est
un oubli...
En effet ce n'est pas génial d'aller chercher une image sur internet à
chaque compilation...

Je vais expliciter un peu plus mon besoin, peut-être qu'il y a une
autre solution ?

C'est la suite d'une question que j'avais déjà posée il y a un moment
: je cherchais à insérer un QR-code en haut à gauche de chacune de mes
partitions.
(en effet, je diffuse pas mal les partitions de mon compositeur, on a
mis le lien du site en pied de page, mais je trouve qu'à l'époque
actuelle, tout le monde a son téléphone sur soi, et d'une part presque
personne ne sait taper d'adresse internet, par contre tout le monde
s'amuse à scanner les QR-codes divers et variés)
Pour la petite histoire, j'ai relancé mon projet quand j'ai reçu un PV
d'excès de vitesse et que j'ai remarqué qu'il y a un QR-code dans
chaque coin sur chaque page...

Maintenant j'ai réussi à créer un QR-code
j'ai trouver comment insérer une image .eps en bas, dans le tagline.
J'arrive même à écrire le copyright et l'adresse du site sur 2 lignes,
à côté du QR-code...

Sur notre site internet, on met librement à disposition du public
d'une part les pdf des partitions et d'autres part les fichiers .ly

J'ai bien conscience que la plupart des visiteurs vont télécharger
uniquement les pdf. Dans ce cas, pas de problème, je peux insérer
l'image avec mon code de mon message de départ.

La solution qui m'a été donnée ici pour aller chercher les images sur
internet pourrait convenir. mais il me semble avoir lu que ça ne
marcherait qu'avec linux. Mais je dois être le seul musicien que je
connais qui utilise linux, tous les autres sont sur windows (à part si
le code est valable aussi sur android ?)

Et, en effet, je trouve qu'aller chercher une image sur internet à
chaque compilation c'est un peu dommage.
Et je ne souhaite pas mettre un lien vers l'image sur chaque page
internet, je trouve que ça ferait trop lourd

Bref, voici la dernière idée qui m'est venue pour insérer le code dans
le fichier .ly :
Vu que je n'ai qu'un seul QR-code à créer, est-il possible de coder
dans lilypond un markup qui serait un petit carré de 29x29 ou je
pourrais spécifier si les cases sont noires ou blanches ?
ensuite, peu importe ou on insère cette image, dans un coin de la
partition (mais qui ne décale pas les titres vers le bas ni les marges
de bas de page) ou bien dans le tagline comme je faisais avec l'eps ?

Pardon d'avoir été long, et merci pour vos réponses,
David

Donc, si je comprends bien, tu veux distribuer tes fichiers .ly et que
celui qui le télécharge n'ait pas à se préoccuper de l'image ? Et si tu
fournissais une archive .zip avec le .ly et l'image du QR-code dedans ?
À mon avis, c'est de loin la solution la plus simple.

Cordialement,
Jean

Merci pour ta réponse rapide Jean !
Oui j'ai pensé aussi au zip, c'est ma solution de secours
j'ai 3 raisons (purement subjectives) qui m'ont fait essayer de chercher autre chose :

1. très peu de gens savent décompresser un zip. contre-arguement : ceux qui seront intéressés par télécharger le code seront normalement compétents pour le dézipper.

Ah bon ? Il me semblait que même dans Windows, le simple fait de double-cliquer sur le fichier .zip ouvrait automatiquement une fenêtre qui permet de choisir un dossier où le décompresser.

J'ai le projet également de joindre au pdf le fichier ly, et dans ce cas, je pense que je peux aussi joindre aussi l'eps ?

2. j'aime que les gens puissent télécharger un fichier dont l'extension est .ly : ça lance tout de suite le débat : "mais c'est pas du finale/musescore/..." ? c'est quoi ce truc bizarre ?

3. ça me ferait kiffer de coder un QR-code sur lilypond. Contre-argument : si je fais un zip, je peux mettre sur la partition non pas le lien vers la page d'accueil du site, mais un lien directement sur la page de téléchargement de la partition du QR-code que les gens ont scanné... dans l'absolu c'est encore une meilleure idée !

Bref, oui, la solution la plus raisonnable c'est de faire un zip.
Mais c'est la moins rigolote :smiley:
Pour dire la vérité, je suis passé de Finale à Lilypond parce que ça me relaxait de coder les partitions avec Lilypond, tandis que ça me stressait de les taper sur Finale... donc j'aime utiliser Lilypond pour mon bien-être moral.

Je ressortirai la citation la prochaine fois qu'on me demandera l'intérêt de LilyPond !

C'est une des raisons de mes questions plus bizarres les unes que les autres....

Donc, si c'est un grand investissement de travail pour, au final, pas grand chose, laisse tomber, je me rapatrierai avec plaisir sur le zip

Oui, c'est du boulot d'implémenter l'encodage des QR-codes en Scheme à partir de rien, sachant qu'il y a pléthore d'outils existants qui font ça très bien. À mon avis, la meilleure solution à long terme serait que LilyPond puisse intégrer les images au PDF comme elle sait déjà le faire avec le code source. Si le fichier .ly est compilé avec -dembed-source-code, la source LilyPond est intégrée au PDF comme « pièce jointe », ce qui permet de la récupérer comme fichier dans la plupart des liseuses de PDF. C'est par exemple ce que fait Vincent dans son site

https://myrealbook.vintherine.org/

J'ai ouvert

https://gitlab.com/lilypond/lilypond/-/issues/6374

à propos des images en -dembed-source-code.

Cordialement,
Jean

···

Le 02/07/2022 à 16:06, ****@**** a écrit :

Je suis d'accord avec toi pour les zip, mais dans mon entourage, ça fait très peur, genre un zip c'est un truc de zip, c'est pas un fichier normal.
Ce qui me semble la simplicité même est un sommet inaccessible pour mon entourage....

Il est vrai que la majorité des gens autour de moi, cherchent "google" dans la barre de recherche google quand ils ont besoin d'un moteur de recherche.

Par contre, le QR-code est simplissime pour tout le monde... desfois il ne faut pas chercher à comprendre !

j'avais vu passer un fil pour joindre le .ly au pdf, c'est dans ma todo-liste, et j'avais lu que c'était pas grand chose à faire !

ok pour la complexité du codage, je vais me rabattre sur le zip !
j'imaginais qu'on pouvait juste dire un truc du genre : fais un carré x=29 y=29
puis noircir ou non les coordonnées par exemple (1;1)=0 ; (2;1)=1 ...etc
et à la fin dire un pourcentage de taille pour l'affichage du carré sur la page...

parfois je n'ai pas conscience des difficultés de codage ^^'

merci d'avoir ouvert une reflexion sur gitlab, j'espère que ça aboutira, mais là ça dépasse (largement) mes compétences...

David

···

De : Jean Abou Samra <****@****>
À : ****@****;
lilypond-user-fr@gnu.org
Sujet : Re: Images prises depuis Internet
Date : 02/07/2022 18:11:56 Europe/Paris

Le 02/07/2022 à 16:06, ****@**** a écrit :

Merci pour ta réponse rapide Jean !
Oui j'ai pensé aussi au zip, c'est ma solution de secours
j'ai 3 raisons (purement subjectives) qui m'ont fait essayer de
chercher autre chose :

  1. très peu de gens savent décompresser un zip. contre-arguement :
    ceux qui seront intéressés par télécharger le code seront normalement
    compétents pour le dézipper.

Ah bon ? Il me semblait que même dans Windows, le simple fait de
double-cliquer sur le fichier .zip ouvrait automatiquement une fenêtre
qui permet de choisir un dossier où le décompresser.

J'ai le projet également de joindre au pdf le fichier ly, et dans ce
cas, je pense que je peux aussi joindre aussi l'eps ?

  1. j'aime que les gens puissent télécharger un fichier dont
    l'extension est .ly : ça lance tout de suite le débat : "mais c'est
    pas du finale/musescore/..." ? c'est quoi ce truc bizarre ?

  2. ça me ferait kiffer de coder un QR-code sur lilypond.
    Contre-argument : si je fais un zip, je peux mettre sur la partition
    non pas le lien vers la page d'accueil du site, mais un lien
    directement sur la page de téléchargement de la partition du QR-code
    que les gens ont scanné... dans l'absolu c'est encore une meilleure
    idée !

Bref, oui, la solution la plus raisonnable c'est de faire un zip.
Mais c'est la moins rigolote :smiley:
Pour dire la vérité, je suis passé de Finale à Lilypond parce que ça
me relaxait de coder les partitions avec Lilypond, tandis que ça me
stressait de les taper sur Finale... donc j'aime utiliser Lilypond
pour mon bien-être moral.

Je ressortirai la citation la prochaine fois qu'on me demandera
l'intérêt de LilyPond !

C'est une des raisons de mes questions plus bizarres les unes que les
autres....

Donc, si c'est un grand investissement de travail pour, au final, pas
grand chose, laisse tomber, je me rapatrierai avec plaisir sur le zip

Oui, c'est du boulot d'implémenter l'encodage des QR-codes en Scheme à
partir de rien, sachant qu'il y a pléthore d'outils existants qui font
ça très bien. À mon avis, la meilleure solution à long terme serait que
LilyPond puisse intégrer les images au PDF comme elle sait déjà le faire
avec le code source. Si le fichier .ly est compilé avec
-dembed-source-code, la source LilyPond est intégrée au PDF comme «
pièce jointe », ce qui permet de la récupérer comme fichier dans la
plupart des liseuses de PDF. C'est par exemple ce que fait Vincent dans
son site

https://myrealbook.vintherine.org/

J'ai ouvert

https://gitlab.com/lilypond/lilypond/-/issues/6374

à propos des images en -dembed-source-code.

Cordialement,
Jean

Je suis d'accord avec toi pour les zip, mais dans mon entourage, ça fait très peur, genre un zip c'est un truc de zip, c'est pas un fichier normal.
Ce qui me semble la simplicité même est un sommet inaccessible pour mon entourage....

Je comprends.

Il est vrai que la majorité des gens autour de moi, cherchent "google" dans la barre de recherche google quand ils ont besoin d'un moteur de recherche.
Par contre, le QR-code est simplissime pour tout le monde... desfois il ne faut pas chercher à comprendre !

j'avais vu passer un fil pour joindre le .ly au pdf, c'est dans ma todo-liste, et j'avais lu que c'était pas grand chose à faire !

ok pour la complexité du codage, je vais me rabattre sur le zip !
j'imaginais qu'on pouvait juste dire un truc du genre : fais un carré x=29 y=29
puis noircir ou non les coordonnées par exemple (1;1)=0 ; (2;1)=1 ...etc
et à la fin dire un pourcentage de taille pour l'affichage du carré sur la page...
parfois je n'ai pas conscience des difficultés de codage ^^'

Ça, c'est très facile à faire. Par contre, sauf à ce que l'utilisateur entre soi-même les valeurs blanc ou noir pour chaque petit carré (il y en a tout de même 29×29 = 841), il faut passer de l'URL à cet encodage sous forme de grille. Et là, c'est moins trivial à cause de la méthode utilisée par les QR-codes pour la correction d'erreurs. Un QR-code reste lisible même si quelques uns des « pixels » ne peuvent pas être lus, par exemple si l'image est floue. La méthode particulière s'appelle les codes correcteurs d'erreurs de Reed-Solomon. Pour implémenter ça, il faut déjà l'arithmétique sur le corps F256 avec de la division euclidienne de polynômes (ne m'embarque pas dans une explication de ce que c'est). Rien d'infaisable, mais il y a quand même un peu de travail.

Cordialement,
Jean

···

Le 02/07/2022 à 18:41, ****@**** a écrit :

Je ne sais pas si c'est le cas sur tous les Windows ou si c'est une
particularité de l'installation du PC que m'a fourni mon entreprise
pour le travail, mais lorsque je clique sur un .zip je dois à chaque
fois cliquer sur un bouton disant que j'ai compris à quel point ce
type de fichier pouvait représenter un danger mortel pour moi et ma
famille jusqu'à la quinzième génération. Bon, j'exagère un peu, mais
c'est l'effet que me fait à chaque fois cette fenêtre surgissante.

Du coup, j'avoue que je comprends la réticence pour les gens de ton
entourage s'ils ne sont pas un peu aguerris.

Cordialement,

···

Le 02/07/2022 18:41, ****@**** a écrit :

Je suis d'accord avec toi pour les zip, mais dans mon entourage, ça fait
très peur, genre un zip c'est un truc de zip, c'est pas un fichier
normal.

Ce qui me semble la simplicité même est un sommet inaccessible pour mon
entourage....

--
Olivier Miakinen

Si c'est très facile, je veux bien que tu me donnes un canevas de code !

J'ai déjà créé le QR-code avec Inkscape
Pour ma part, je ne vois "que" 841 lignes à donner.
Et encore, si on dit que tout est blanc (par défaut), peut-être qu'il suffirait de donner les coordonnées des cases noires uniquement ?

David

···

Il est vrai que la majorité des gens autour de moi, cherchent "google"
dans la barre de recherche google quand ils ont besoin d'un moteur de
recherche.
Par contre, le QR-code est simplissime pour tout le monde... desfois
il ne faut pas chercher à comprendre !

j'avais vu passer un fil pour joindre le .ly au pdf, c'est dans ma
todo-liste, et j'avais lu que c'était pas grand chose à faire !

ok pour la complexité du codage, je vais me rabattre sur le zip !
j'imaginais qu'on pouvait juste dire un truc du genre : fais un carré
x=29 y=29
puis noircir ou non les coordonnées par exemple (1;1)=0 ; (2;1)=1 ...etc
et à la fin dire un pourcentage de taille pour l'affichage du carré
sur la page...
parfois je n'ai pas conscience des difficultés de codage ^^'

Ça, c'est très facile à faire. Par contre, sauf à ce que l'utilisateur
entre soi-même les valeurs blanc ou noir pour chaque petit carré (il y
en a tout de même 29×29 = 841), il faut passer de l'URL à cet encodage
sous forme de grille. Et là, c'est moins trivial à cause de la méthode
utilisée par les QR-codes pour la correction d'erreurs. Un QR-code reste
lisible même si quelques uns des « pixels » ne peuvent pas être lus, par
exemple si l'image est floue. La méthode particulière s'appelle les
codes correcteurs d'erreurs de Reed-Solomon. Pour implémenter ça, il
faut déjà l'arithmétique sur le corps F256 avec de la division
euclidienne de polynômes (ne m'embarque pas dans une explication de ce
que c'est). Rien d'infaisable, mais il y a quand même un peu de travail.

Cordialement,
Jean

Si c'est très facile, je veux bien que tu me donnes un canevas de code !

J'ai déjà créé le QR-code avec Inkscape
Pour ma part, je ne vois "que" 841 lignes à donner.
Et encore, si on dit que tout est blanc (par défaut), peut-être qu'il suffirait de donner les coordonnées des cases noires uniquement ?

Voici une proposition :

\version "2.22.2"

#(define (index-map f . lsts)
(let loop ((lsts lsts)
(acc '())
(i 0))
(if (any null? lsts)
(reverse! acc)
(loop (map cdr lsts)
(cons (apply f i (map car lsts))
acc)
(1+ i)))))

#(define-markup-command (qr-code layout props data) (string?)
#:properties ((width 10))
(let* ((lines (reverse
(filter (lambda (s)
(not (string-null? s)))
(string-split data #\newline))))
(n (length lines))
(square-width (/ width n))
(box (make-filled-box-stencil `(0 . ,square-width)
`(0 . ,square-width))))
(apply ly:stencil-add
(index-map
(lambda (i line)
(apply ly:stencil-add
(index-map
(lambda (j char)
(ly:stencil-translate
(stencil-with-color
box
(case char
((#\0)
white)
((#\1)
black)
(else
(ly:warning "unrecognized character ~a, should be 0 or 1" char)
red)))
(cons (* j square-width)
(* i square-width))))
(string->list line))))
lines))))

lilypondPointOrg =
"11111110011100011110101111111
10000010010000010111101000001
10111010010110001000101011101
10111010001010111101001011101
10111010110100000111001011101
10000010011100011001101000001
11111110101010101010101111111
00000000111000111110100000000
00110011101100001000111010000
10101001111000001000001111101
00110111010100000110001011010
01010001100110010111000110001
01111011110010011110010100111
01111101001101010001001101101
01111011000001000011001111011
11001001001011001000111011010
11100110111011011001110111000
00001100010001001011100100100
10111111011001010011001000100
00001100001000101011011011100
01010010000011000000111111111
00000000110011100010100011001
11111110101001101011101010110
10000010000110111110100010011
10111010011010111100111111111
10111010110001101111000011110
10111010100101101010100101001
10000010001001000100000010010
11111110010100110010111100010"

\markup \qr-code \lilypondPointOrg

\markup \vspace #5

\markup \override #'(width . 15) \qr-code \lilypondPointOrg

Au passage, j'ai trouvé le moyen d'éviter d'écrire moi-même
tous ces 0 et 1. J'ai installé le module Python pyqrcode,
et exécuté le code

import pyqrcode; print(pyqrcode.create("https://lilypond.org").text(quiet_zone=0))

Première étape pour le faire toi-même : installer Python.
Sous Linux, il est vraisemblablement déjà installer. Sous
macOS ou Windows, il faut le télécharger depuis https://www.python.org
(dans l'onglet « Downloads »).

Ensuite, il faut l'outil Pip pour installer des paquets.
Pour cela, il faut déjà savoir comment s'appelle le Python.
Sous Linux, sans doute python, mais peut-être python3 si
python est encore du Python 2 (à éviter). Pour le savoir,
taper la commande. Par exemple, j'obtiens

$ python
Python 3.10.5 (main, Jun 9 2022, 00:00:00) [GCC 12.1.1 20220507 (Red Hat 12.1.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

J'ai 3.10, tout va bien. Sous macOS, ce sera probablement python3.
Sous Windows, essayer python et python3 (je ne sais plus comment
ça marche).

L'étape suivante est de faire l'installation de Pip :

$ la-commande-python -m ensurepip

Si cela dit que ensurepip est désactivé (il me semble que c'est le
cas sous Ubuntu au moins), installer Pip à travers le gestionnaire
de paquets du système (par exemple « sudo apt install python3-pip »).

Enfin, dernière étape :

$ la-command-python -m pip install pyqrcode

Il suffit pour finir de faire

$ la-command-python
[Le texte introductif s'affiche]
>>> import pyqrcode; print(pyqrcode.create("URL à remplir").text(quiet_zone=0))
[le résultat s'affiche]

Copier-coller, et le tour est joué.

Cordialement,
Jean

···

On 7/4/22 12:16, ****@**** wrote:

Incroyable !
Comme dans mes rêves les plus fous !!!!

J'ai hâte de tester ça :slight_smile:
Je te tiens au courant dès que possible !

···

De : Jean Abou Samra <****@****>
À : ****@****;
lilypond-user-fr@gnu.org
Sujet : Re: Images prises depuis Internet
Date : 05/07/2022 10:46:34 Europe/Paris

On 7/4/22 12:16, ****@**** wrote:

Si c'est très facile, je veux bien que tu me donnes un canevas de code !

J'ai déjà créé le QR-code avec Inkscape
Pour ma part, je ne vois "que" 841 lignes à donner.
Et encore, si on dit que tout est blanc (par défaut), peut-être qu'il
suffirait de donner les coordonnées des cases noires uniquement ?

Voici une proposition :

\version "2.22.2"

#(define (index-map f . lsts)
(let loop ((lsts lsts)
(acc '())
(i 0))
(if (any null? lsts)
(reverse! acc)
(loop (map cdr lsts)
(cons (apply f i (map car lsts))
acc)
(1+ i)))))

#(define-markup-command (qr-code layout props data) (string?)
#:properties ((width 10))
(let* ((lines (reverse
(filter (lambda (s)
(not (string-null? s)))
(string-split data #\newline))))
(n (length lines))
(square-width (/ width n))
(box (make-filled-box-stencil (0 . ,square-width) (0 . ,square-width))))
(apply ly:stencil-add
(index-map
(lambda (i line)
(apply ly:stencil-add
(index-map
(lambda (j char)
(ly:stencil-translate
(stencil-with-color
box
(case char
((#\0)
white)
((#\1)
black)
(else
(ly:warning "unrecognized character ~a,
should be 0 or 1" char)
red)))
(cons (* j square-width)
(* i square-width))))
(string->list line))))
lines))))

lilypondPointOrg =
"11111110011100011110101111111
10000010010000010111101000001
10111010010110001000101011101
10111010001010111101001011101
10111010110100000111001011101
10000010011100011001101000001
11111110101010101010101111111
00000000111000111110100000000
00110011101100001000111010000
10101001111000001000001111101
00110111010100000110001011010
01010001100110010111000110001
01111011110010011110010100111
01111101001101010001001101101
01111011000001000011001111011
11001001001011001000111011010
11100110111011011001110111000
00001100010001001011100100100
10111111011001010011001000100
00001100001000101011011011100
01010010000011000000111111111
00000000110011100010100011001
11111110101001101011101010110
10000010000110111110100010011
10111010011010111100111111111
10111010110001101111000011110
10111010100101101010100101001
10000010001001000100000010010
11111110010100110010111100010"

\markup \qr-code \lilypondPointOrg

\markup \vspace #5

\markup \override #'(width . 15) \qr-code \lilypondPointOrg

Au passage, j'ai trouvé le moyen d'éviter d'écrire moi-même
tous ces 0 et 1. J'ai installé le module Python pyqrcode,
et exécuté le code

import pyqrcode;
print(pyqrcode.create("https://lilypond.org").text(quiet_zone=0))

Première étape pour le faire toi-même : installer Python.
Sous Linux, il est vraisemblablement déjà installer. Sous
macOS ou Windows, il faut le télécharger depuis https://www.python.org
(dans l'onglet « Downloads »).

Ensuite, il faut l'outil Pip pour installer des paquets.
Pour cela, il faut déjà savoir comment s'appelle le Python.
Sous Linux, sans doute python, mais peut-être python3 si
python est encore du Python 2 (à éviter). Pour le savoir,
taper la commande. Par exemple, j'obtiens

$ python
Python 3.10.5 (main, Jun 9 2022, 00:00:00) [GCC 12.1.1 20220507 (Red
Hat 12.1.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.

J'ai 3.10, tout va bien. Sous macOS, ce sera probablement python3.
Sous Windows, essayer python et python3 (je ne sais plus comment
ça marche).

L'étape suivante est de faire l'installation de Pip :

$ la-commande-python -m ensurepip

Si cela dit que ensurepip est désactivé (il me semble que c'est le
cas sous Ubuntu au moins), installer Pip à travers le gestionnaire
de paquets du système (par exemple « sudo apt install python3-pip »).

Enfin, dernière étape :

$ la-command-python -m pip install pyqrcode

Il suffit pour finir de faire

$ la-command-python
[Le texte introductif s'affiche]

import pyqrcode; print(pyqrcode.create("URL à
remplir").text(quiet_zone=0))
[le résultat s'affiche]

Copier-coller, et le tour est joué.

Cordialement,
Jean

Bonjour tout le monde,

En début de morceau, je voudrais indiquer que "croche - croche" (liées) est joué "croche pointée - double croche" (liées)

Dans le LSR, j'ai bien trouvé cet exemple avec "Shuffle" mais ça me paraît un peu élaboré pour mon besoin (et quoi extraire de tout ce code !).

J'ai tourné autour de \note avec l'exemple donné dans la documentation (paragraphe : "Création d’une indication métronomique sous forme d’étiquette") mais je n'ai pas su adapter !

Rien trouvé d'autre en fouillant la doc.

Si quelqu'un peu me dépanner... Merci, merci et bonnes journée à toutes et tous !

Gérard

Bonjour Gérard,

Tout d'abord un détail concernant ton post: tu as utilisé la fonction répondre de ton courrieleur en changeant juste le sujet mais cela ne trompe pas un bon courrieleur qui continue à le classer dans fil de discussion précédent...

Concernant ta question j'ai écrit un article sur mon blog expliquant comment je fais : https://myrealbook.vintherine.org/indication-de-swing.html
Peut-être cela te conviendra-t-il ?