Forum général.général Melody of the primes

Posté par  . Licence CC By‑SA.
Étiquettes :
6
7
fév.
2024

Bonjour les gens, et les autres,

Comme j’ai fait une composition un peu moins expérimentale et plus easy-listening qu’à l’accoutumée, et comme je sais que vous avez été sages comme des totoz ces derniers jours, je vous offre cette exclusivité mondiale, vous ne la trouverez nulle part ailleurs sur web, ni même sur gopher ou le darknet.

C’est un morceau que vous n’aurez même pas à télécharger !

Par contre, vous devez le reproduire vous même. Enfin… le faire reproduire par votre prothèse cervicale digitale favorite, aucune crainte, vous pouvez laissez vos doigts où ils sont, du calme ! Je ne suis pas un monstre malgré ma peau grise. Si vous ne disposez que d’une prothèse Windows (3.11 et supérieur), dans ce cas ne paniquez pas, vous n’êtes pas seuls. Rapprochez-vous d’un groupe d’entraide pour vous libérer de ce carcan. Trouvez le LUG (Libération Unilatérale des GNU) le plus près de chez vous, et laissez vous guider vers le bar.

Vous aurez donc besoin des programmes SoX et factor, ainsi que d’un ordinateur équipé d’un shell compatible POSIX et d’une carte son fonctionnelle avec son système de reproduction Hi-Fi ou presque, branché et sous tension. Une paire de cache-oreilles musicaux peut également convenir (à condition qu’elle soit convenable sous tout rapport bien sûr).

Cette œuvre, majeure d’après ma petite sœur, s’intitule « Melody of the primes », sa durée est variable selon la matériel qui l’interprète, mais pas infinie. Chaque note a un impact infinitésimalement plus négatif que la note précédente sur le maintient de la bio-diversité sur le vaisseau Terre. Le morceau se termine quand votre CPU, stupéfait et transcendé par la beauté et la perfection acoustique se tait pour faire place à ce silence particulier qui caractérise la grâce semi-divine. Ou encore jusqu’à ce que vous fassiez Ctrl+C, ne sachant pas comment supporter une déflagration émotionnelle d’une telle puissance.

Voici la partition pour le shell (n’importe quel shell respectueux de POSIX fera l’affaire, mais Bash est recommandé pour sa supériorité) :

$ echo -n "2 "; seq inf | grep -v '.*[2468]$' | factor | grep -E '^[0-9]+: [0-9]+$' | cut -d':' -f1 | xargs -I_ bash -c 'pn=_; sox --norm=-3 -n -t alsa synth .08$((pn%100)) saw $(((pn%42)*42)) lowpass $((400+pn%100)) fade .01 0 .04 reverb 10 20 fade .01 0 .01 pad 0 .023'

Bonne écoute à tous.

  • # Il manque un timer dans la commande

    Posté par  . Évalué à 6 (+3/-0).

    Pour qu’on fasse un concours sur qui a tenu le plus longtemps :p

    • [^] # Re: Il manque un timer dans la commande

      Posté par  (Mastodon) . Évalué à 6 (+3/-0). Dernière modification le 08 février 2024 à 07:44.

      20 secondes… avant que ma femme entre dans mon bureau et me demande si mon ordinateur déconne.

      Comme disait Claude Rich : “Mais où faut-il s’expatrier, mon Dieu, pour avoir la paix ? Au Groenland ? À la terre-de-feu ? J’allais toucher l’anti-accord absolu ! Vous m’entendez ? Absolu ! La musique des sphères …"

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: Il manque un timer dans la commande

        Posté par  . Évalué à 4 (+1/-0).

        20 secondes… avant que ma femme entre dans mon bureau et me demande si mon ordinateur déconne.

        Haha ! ^^

        Tu lui a dit, « Non c’est un problème entre la chaise et le clavier mais à un autre bout de l’internet t’inquiète pas chérie. » ?

        Vingt secondes c’est suffisant pour saisir la substance de l’œuvre même s’il faut sûrement une écoute de plusieurs jours pour en apprécier les subtilités. ;)

  • # Odd veut aussi dire bizarre ou étrange

    Posté par  (Mastodon) . Évalué à 4 (+1/-0).

    grep -v '.*[2468]$'

    Mais pourquoi bon sang de bonsoir les nombres impairs, malgré leur supposée imperfection, sont-il si harmonieux ?

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Odd veut aussi dire bizarre ou étrange

      Posté par  . Évalué à 4 (+2/-0).

      Est-ce voulu que les nombres pairs terminant par 0 passent ce premier grep ? Seul l'Auteur pourra nous le dire :)

      Fût un temps, on pouvait faire cat un_truc > /dev/dsp, et ça envoyait du son. J'ai conservé de cette époque un fichier de PCB Kicad qui sonne bien, mais j'ai plus le /dev/dsp. Quelqu'un·e sait comment faire pour avoir le même comportement, ou un émulateur ?

  • # mise en forme du code

    Posté par  (site web personnel) . Évalué à 3 (+1/-0).

    mise en forme du code avec balise ```bash pour avoir la coloration syntaxique :-)

    $ echo -n "2 "; seq inf | grep -v '.*[2468]$' | factor | \
    grep -E '^[0-9]+: [0-9]+$' | cut -d':' -f1 | \
    xargs -I_ bash -c 'pn=_; sox --norm=-3 \
    -n -t alsa synth .08$((pn%100)) saw $(((pn%42)*42)) lowpass $((400+pn%100)) \
    fade .01 0 .04 reverb 10 20 fade .01 0 .01 pad 0 .023'
  • # mais pourquoi tant 2 n?

    Posté par  . Évalué à 1 (+0/-0).

    Hello, pas pu me retenir d'essayer non plus, et…

    • l'opiniatrete me fait defaut pour decortiquer la commande sox ou me familiariser avec

    • l'utilite du echo -n "2 " m'echappe completement

    • pour le premier grep, nonobstant l'inutilite du .*, je m'interroge sur l'absence du zero dans la liste de chiffres: un oubli, une volonte d'introduire un peu de latence?.. J'ai essaye avec, je ne crois pas avoir entendu la difference.

    A retenir: ce fut une occasion de decouvrir qq commandes, et je dois pas avoir l'oreille tres musicale.
    En tout cas, comme dirait une ex presidentielle, merci pour ce moment :)

    ++
    Gi)

    • [^] # Re: mais pourquoi tant 2 n?

      Posté par  . Évalué à 3 (+0/-0).

      Bien vu pour le zéro, c’est en effet une erreur bien moche de ma part.

      l'utilite du echo -n "2 " m'echappe completement

      Parce que sinon le nombre 2 saute à cause du grep (?). La première note du morceau est importante :)

      decortiquer la commande sox

      SoX est surtout fait pour faire du traitement audio par lot à la base (up&down sampling, equalization, compression, … and basically everything), et c’est un vénérable outil du siècle dernier, mais la "libsox" doit encore être pas mal utilisée je pense. Je ne sais pas si un outil/une bibliothèque récente pour le traitement de fichiers audio par lots le remplace avantageusement. On peut probablement faire tout les traitements utiles de fichiers audio avec ffmpeg (et la « musique » qui est le sujet de ce journal, et bien plus encore, avec par exemple le language ChucK), mais vu que ffmpeg fait l’image en plus du son il est beaucoup plus exigeant à prendre en main.

      Pour le .* au début du regex c’est bien vu aussi. Mais j’ose espérer que grep est assez neuneu-proof pour optimiser ce qu’il a à faire et que ça revient au même ! :)

  • # De la valeur du travail d’équipe

    Posté par  . Évalué à 4 (+1/-0).

    Voici donc la version corrigée qui prend en compte tout vos remarques. En y ajoutant aussi un -q à la commande sox, auquel je n’ai pensé qu’après coup, qui permet non seulement de réserver tout la puissance de calcul à l’établissement de la liste de nombres premiers au lieu d’afficher un tas de lignes inutiles, mais qui permet aussi et surtout à sox de se lancer sans qu’un terminal y soit relié… (donc en tâche de fond).

    Et guitou a raison, le echo -n "2" du début ne sert à rien, il ne traverse pas le premier pipe… J’aurais du le savoir mais je m’en suis rendu compte en mettant le -q à sox… Je ne vois pas comment faire pour commencer à 2 du coup. Ceci dit ça va pas m’empêcher de dormir ! ^^

    $ seq inf | grep -v '[02468]$' | factor | grep -E '^[0-9]+: [0-9]+$' | cut -d':' -f1 | xargs -I_ bash -c 'pn=_; sox -q --norm=-3 -n -t alsa synth .08$((pn%100)) saw $(((pn%42)*42)) lowpass $((400+pn%100)) fade .01 0 .04 reverb 10 20 fade .01 0 .01 pad 0 .023'
    • [^] # Re: De la valeur du travail d’équipe

      Posté par  . Évalué à 3 (+0/-0).

      réserver tout la puissance de calcul à l’établissement de la liste de nombres premiers

      Il existe des programmes spécialisés pour ça sous Linux, sûrement plus performants, mais bon…

      Je m’affûte sur ChucK et j’essaierai p-e de faire un truc qui repose sur les décimales de pi. :)

  • # Pour qui comme moi aurait le sommeil leger

    Posté par  . Évalué à 1 (+0/-0).

    $ (echo 2 ;seq 3 inf | grep -v '[02468]$') | factor | grep -E '^[0-9]+: [0-9]+$' | cut -d':' -f1 | xargs -I_ bash -c 'pn=_; sox -q --norm=-3 -n -t alsa synth .08$((pn%100)) saw $(((pn%42)*42)) lowpass $((400+pn%100)) fade .01 0 .04 reverb 10 20 fade .01 0 .01 pad 0 .023'
    ```++
    Gi)
    

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.