Thay thế cho APLAY cho Mac OS X bash


11

Bất cứ ai cũng biết bất kỳ thay thế Mac nào cho chương trình APLAY của Linux? Tôi muốn chạy tập lệnh này:

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

Điều này tạo ra hiệu ứng âm thanh tuyệt vời, nhưng tôi không biết làm thế nào, vì Mac OS không có phát .

BIÊN TẬP:

Liên kết đến Wikipedia, mô tả chức năng của aplay.


Aplay làm gì?
dùng151019

Xem chỉnh sửa, liên kết url.
Michal

Câu trả lời:



7

Đây là chương trình tương tự, như một lớp lót perl, hoạt động (đã được thử nghiệm) trên Mac, Linux và 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 -

lệnh "./play" là tiện ích "sox" đã được đề cập trong bài viết này. 


2
aplay sử dụng 8khz chứ không phải 48 ... vì vậy lệnh nên làplay -c 1 -b 8 -e unsigned -t raw -r 8k -
hashier

5


Tôi biết rằng chủ đề này đã cũ, nhưng tôi đã tìm thấy một giải pháp làm việc gần đây. SOX không hỗ trợ đầu vào từ thiết bị xuất chuẩn nữa nên giờ đây là một giải pháp thay thế đang hoạt động mplayer. Bạn sẽ cần cài đặt nó bằng Hombrew.sh với brew install mplayer.

Sau đó, bạn có thể thay thế aplaybằng: mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -

Chỉ cần chắc chắn để thay đổi rate=8000với tần số tùy chỉnh của bạn.

Bạn có thể tạo một bí danh ~/.bashrcđể chơi trò chơi chipMune PCM của bạn như sau:

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

Hy vọng điều này đã giúp, đã thử nghiệm trên macOs Sierra 10.12.5 ngày hôm nay.


3

aplaycần ALSA chỉ có trên Linux. Bạn có thể thử xuất ra bytestream đó vào một tệp và thử chơi afplaytrên OS X. (Bạn có thể cần phải thêm các tiêu đề AIFF thích hợp afplayđể chấp nhận tệp vì nó sẽ không phát một kết xuất PCM thô tiếng vang đó nên được giải thích).)


Điều thú vị về aplay và thuật toán C nhỏ này là nó thay đổi và tạo ra các âm thanh khác nhau theo thời gian, do đó, việc xuất ra nó sẽ lấy đi :(
Michal

Xem nó như một sự chậm trễ thời gian dài hơn để phát lại bộ đệm. :-) dữ liệu đó được giải thích như thế nào? Điều đó có thể giúp tìm một tiện ích dòng lệnh phù hợp hoạt động trên OS X để phát dữ liệu do tiện ích tạo ra. (Ví dụ: có thể hoạt động với mpg123 mặc dù tôi chưa thử.)
MacLemon

Vì vậy, những gì bạn sẽ đề nghị?
Michal

2

Tôi đã sử dụng mpv. Các tùy chọn tương tự như mplayer, nhưng công tắc --rawaudio không còn được hỗ trợ trong mpv. Đây là những gì bạn làm thay thế:

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

Tôi đã có một chút nhầm lẫn với "gcc và crap", nhưng tôi nhận ra rằng bạn chỉ đang đề cập đến các thông số được truyền cho trình biên dịch. Hoạt động thực sự tốt, chúc mừng!
Michal

1

Cài đặt sox từ Homebrew, sau đó sử dụng play -c1 -b8 -eunsigned -traw -r8k -thay vì auplay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.