Mac OS X bash için APLAY alternatifi


11

Linux'un APLAY programı için herhangi bir Mac alternatifi bilen var mı? Bu komut dosyasını çalıştırmak istiyorum:

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

Hangi büyük bir ses efekti yapar, ama ben Mac OS olmadığı için nasıl bilmiyorum aplay .

DÜZENLE:

Oyunun işlevselliğini açıklayan Wikipedia bağlantısı .


Aplay ne yapıyor?
user151019

Bkz. Düzenleme, bağlantılı URL.
Michal

Yanıtlar:



7

İşte aynı program, Mac, Linux ve Windows'ta çalışan (test edilen) perl tek katmanlı olarak

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 -

"./play" komutu, bu makalede daha önce bahsedilen "sox" yardımcı programıdır. 


2
aplay 48 değil 8 khz kullanıyor ... bu yüzden komut daha çok olmalıplay -c 1 -b 8 -e unsigned -t raw -r 8k -
hashier

5


Bu konunun eski olduğunu biliyorum, ancak son zamanlarda çalışan bir çözüm buldum. SOX artık stdout'tan gelen girdileri desteklemiyor, bu yüzden artık çalışan bir alternatif var mplayer. Sen kullanarak yüklemeniz gerekir Hombrew.sh ile brew install mplayer.

Daha sonra aşağıdakileri değiştirebilirsiniz aplay: mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -

rate=8000Özel frekansınızla değiştirdiğinizden emin olun .

~/.bashrcPCM chiptune'unuzu bu şekilde aktarmak için aplay için bir takma ad oluşturabilirsiniz :

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

Umarım bu yardımcı olmuştur, bugün macOs Sierra 10.12.5 üzerinde test edilmiştir.


3

aplaysadece Linux'ta bulunan ALSA'ya ihtiyaç duyar . Bu bytestream'i bir dosyaya vermeyi deneyebilir ve afplayOS X'te oynatmayı deneyebilirsiniz . ( afplayDosyayı kabul etmek için ham bir PCM dökümü oynatmayacağı için (veya bununla birlikte bytestream'in çıkmadığı için uygun AIFF başlıkları eklemeniz gerekebilir) . bu yankı yorumlanmalıdır).)


Oyunun ve bu küçük C algoritmasının eğlenceli kısmı, zaman içinde farklı sesler çıkarması ve üretmesi, bu yüzden çıkması bunu götürecektir :(
Michal

Arabelleğe almayı arabelleğe almak için daha uzun bir gecikme olarak görün. :-) Bu veriler nasıl yorumlanacak? Bu, yardımcı program tarafından oluşturulan verileri oynatmak için OS X üzerinde çalışan uygun bir komut satırı yardımcı programı bulmanıza yardımcı olabilir. (Örneğin ben henüz denemedim ama mpg123 ile çalışabilir.)
MacLemon

Peki ne önerirsiniz?
Michal

2

MPV kullandım. Seçenekler mplayer'a benzer, ancak --rawaudio anahtarı artık mpv'de desteklenmemektedir. Bunun yerine ne yaparsınız:

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

"Gcc ve bok" ile biraz kafam karıştı, ama sadece derleyiciye geçirilen paramlardan bahsettiğinizi anladım. Gerçekten iyi çalışıyor, şerefe!
Michal

1

Sox'u Homebrew'dan yükleyin, play -c1 -b8 -eunsigned -traw -r8k -yerine kullanın auplay.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.