Alternativa a APLAY per Mac OS X bash

10

Qualcuno conosce qualche alternativa Mac per il programma APLAY di Linux? Mi piacerebbe eseguire questo 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

Il che rende un grande effetto sonoro, ma non so come, dal momento che Mac OS non ha aplay .

Modifica

Link su Wikipedia, che descrive la funzionalità di aplay.

    
posta Michal 12.12.2012 - 10:39
fonte

6 risposte

6

Credo che l'utilità sox sia valida per aplay.

    
risposta data 12.12.2012 - 19:16
fonte
7

Ecco lo stesso programma, come perl one-liner, che funziona (testato) su Mac, Linux e 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 -

il comando "./play" è l'utilità "sox" già menzionata in questo articolo.

    
risposta data 15.04.2013 - 03:13
fonte
5


So che questo argomento è vecchio, ma ho trovato una soluzione di lavoro recente. SOX non supporta più input da stdout, quindi ora un'alternativa di lavoro è mplayer . Dovrai installarlo utilizzando Hombrew.sh con brew install mplayer .

Puoi quindi sostituire aplay di: mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -

Assicurati di cambiare rate=8000 con la frequenza personalizzata.

Puoi creare un alias in ~/.bashrc per aplay per reindirizzare il chiptune PCM in questo modo:

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

Spero che questo sia stato di aiuto, testato su macOs Sierra 10.12.5 oggi.

    
risposta data 05.08.2017 - 14:45
fonte
3

aplay ha bisogno di ALSA che è disponibile solo su Linux. Puoi provare a esportare quel file a puntatore su un file e provare a giocare con afplay su OS X. (Probabilmente dovrai aggiungere intestazioni AIFF appropriate per afplay per accettare il file poiché non riprodurrà un dump PCM non elaborato (o tuttavia, il risultato finale che esce da quell'eco dovrebbe essere interpretato)).

    
risposta data 12.12.2012 - 14:52
fonte
2

Ho usato mpv. Le opzioni sono simili a mplayer, ma l'opzione --rawaudio non è più supportata in mpv. Questo è quello che fai invece:

echo 'c_program' | gcc and crap | mpv --cache=1024 --quiet \
    --demuxer=rawaudio \
    --demuxer-rawaudio-format=u8 \
    --demuxer-rawaudio-channels=1 \
    --demuxer-rawaudio-rate=8000 -
    
risposta data 20.01.2018 - 03:54
fonte
1

Installa sox da Homebrew, quindi usa play -c1 -b8 -eunsigned -traw -r8k - anziché auplay .

    
risposta data 20.06.2018 - 23:09
fonte

Leggi altre domande sui tag