17 votes

Alternative à APLAY pour Mac OS X bash

Quelqu'un connaît-il une alternative Mac pour le programme APLAY de Linux ? Je voudrais exécuter ce script :

echo "main(i){for(i=0;;i++)putchar(((i*(i>>8|i>>9)&46&i>>8))^(i&i>>13|i>>6));}" | gcc -x c - && ./a.out | aplay

Ce qui fait un super effet sonore, mais je ne sais pas comment, puisque Mac OS ne dispose pas de aplay .

EDIT :

Lien à Wikipedia, qui décrit la fonctionnalité d'aplay.

12voto

japh Points 101

Voici le même programme, sous la forme d'une ligne unique en perl, qui fonctionne (testé) sur Mac, Linux et Windows.

perl -e 'for($i=0;;$i++){
    print pack("n", ((($i*($i>>8|$i>>9)&46&$i>>8))^($i&$i>>13|$i>>6))); 
}' | ./play -c 1 -b 8 -e unsigned -t raw -r 8k -

la commande "./play" est l'utilitaire "sox" déjà mentionné dans cet article.

9voto

David Watzke Points 96

Je crois que le sox L'utilité remplace le jeu.

7voto

Samuel Prevost Points 170

Je sais que ce sujet est ancien, mais j'ai trouvé une solution récente qui fonctionne. La SOX ne prend plus en charge l'entrée à partir de stdout, donc l'alternative est la suivante mplayer . Vous devrez l'installer en utilisant Hombrew.sh avec brew install mplayer .

Vous pouvez alors remplacer aplay par : mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -

Assurez-vous juste de changer rate=8000 avec votre fréquence personnalisée.

Vous pouvez créer un alias dans ~/.bashrc pour qu'Aplay fasse passer votre PCM chiptune comme ça :

alias aplay="mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -"

J'espère que cela a aidé, testé sur MacOS Sierra 10.12.5 aujourd'hui.

5voto

scottmarlowe Points 2952

aplay besoins ALSA qui n'est disponible que sous Linux. Vous pouvez essayer de sortir ce bytestream dans un fichier et essayer de jouer avec afplay sur OS X. (Vous devrez probablement ajouter les en-têtes AIFF appropriés pour afplay pour accepter le fichier puisqu'il ne lira pas un dump PCM brut (ou quelle que soit la manière dont le bytestream sortant de cet écho doit être interprété).

2voto

J'ai utilisé mpv. Les options sont similaires à celles de mplayer, mais l'option --rawaudio n'est plus supportée par mpv. Voici ce que vous devez faire à la place :

echo 'c_program' | gcc and crap | mpv --cache=1024 --quiet \
    --demuxer=rawaudio \
    --demuxer-rawaudio-format=u8 \
    --demuxer-rawaudio-channels=1 \
    --demuxer-rawaudio-rate=8000 -

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X