Alternativa a APLAY para la versión de Mac OS X

10

¿Alguien sabe alguna alternativa de Mac para el programa APLAY de Linux? Me gustaría ejecutar este 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

Lo que hace un gran efecto de sonido, pero no sé cómo, ya que Mac OS no tiene un juego .

EDIT:

Enlace a Wikipedia, que describe la funcionalidad de aplay.

    
pregunta Michal 12.12.2012 - 10:39

6 respuestas

6

Creo que la utilidad sox es sinónimo de aplay.

    
respondido por el David Watzke 12.12.2012 - 19:16
7

Este es el mismo programa, como perl one-liner, que funciona (probado) en Mac, Linux y 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 -

el comando "./play" es la utilidad "sox" ya mencionada en este artículo.

    
respondido por el japh 15.04.2013 - 03:13
5


Sé que este tema es antiguo, pero he encontrado una solución de trabajo reciente. SOX ya no admite la entrada de stdout, por lo que ahora una alternativa de trabajo es mplayer . Deberá instalarlo utilizando Hombrew.sh con brew install mplayer .

Luego puedes reemplazar aplay por: mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -

Solo asegúrate de cambiar rate=8000 con tu frecuencia personalizada.

Puedes crear un alias en ~/.bashrc para que un canal pueda canalizar tu chiptune PCM de esta manera:

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

Espero que esto haya ayudado, probado en macOs Sierra 10.12.5 hoy.

    
respondido por el Sam 05.08.2017 - 14:45
3

aplay necesita ALSA , que solo está disponible en Linux. Puede intentar enviar ese bytestream a un archivo e intentar jugar con afplay en OS X. (Es probable que necesite agregar los encabezados AIFF adecuados para que afplay acepte el archivo, ya que no reproducirá un volcado PCM en bruto (o sin embargo, ese bytestream que sale de ese eco debe ser interpretado).

    
respondido por el MacLemon 12.12.2012 - 14:52
2

Utilicé mpv. Las opciones son similares a mplayer, pero el interruptor --rawaudio ya no es compatible con mpv. Esto es lo que haces en su lugar:

echo 'c_program' | gcc and crap | mpv --cache=1024 --quiet \
    --demuxer=rawaudio \
    --demuxer-rawaudio-format=u8 \
    --demuxer-rawaudio-channels=1 \
    --demuxer-rawaudio-rate=8000 -
    
respondido por el enigmaticPhysicist 20.01.2018 - 03:54
1

Instala sox de Homebrew, luego usa play -c1 -b8 -eunsigned -traw -r8k - en lugar de auplay .

    
respondido por el tbodt 20.06.2018 - 23:09

Lea otras preguntas en las etiquetas