Mac OS X bash 용 APLAY 대체


11

리눅스의 APLAY 프로그램에 대한 Mac 대안을 아는 사람이 있습니까? 이 스크립트를 실행하고 싶습니다 :

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

어떤 훌륭한 음향 효과를 만들지 만, 나는 맥 OS를 가지고 있지 않기 때문에 어떻게 모르는 aplay을 .

편집하다:

aplay의 기능을 설명하는 Wikipedia에 연결하십시오 .


놀이는 무엇을 하는가?
user151019

편집, 링크 된 URL을 참조하십시오.
Michal

답변:



7

다음은 Mac, Linux 및 Windows에서 작동하는 (테스트 된) perl one-liner와 동일한 프로그램입니다.

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"명령은이 기사에서 이미 언급 한 "sox"유틸리티입니다. 


2
aplay는 48이 아닌 8khz를 사용하므로 명령은 오히려play -c 1 -b 8 -e unsigned -t raw -r 8k -
hashier

5


나는이 주제가 오래되었다는 것을 알고 있지만 최근 작동하는 해결책을 찾았습니다. SOX는 stdout의 입력을 더 이상 지원하지 않으므로 이제 대안이 작동 mplayer합니다. Hombrew.sh 를 사용하여 설치해야합니다 brew install mplayer.

그런 다음 다음으로 대체 할 수 있습니다 aplay. mplayer -cache 1024 -quiet -rawaudio samplesize=1:channels=1:rate=8000 -demuxer rawaudio -

rate=8000맞춤 빈도 로 변경하십시오 .

다음 ~/.bashrc과 같이 PCM chiptune을 파이프하기위한 별칭을 만들 수 있습니다 .

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

이것이 macOs Sierra 10.12.5에서 테스트되어 도움이 되었기를 바랍니다.


3

aplayLinux에서만 사용할 수있는 ALSA 가 필요합니다 . 해당 바이트 스트림을 파일로 출력하고 afplayOS X 에서 재생을 시도 할 수 있습니다 afplay. 파일이 원시 PCM 덤프를 재생하지 않기 때문에 파일을 수락하려면 적절한 AIFF 헤더를 추가해야합니다. 해당 에코를 해석해야합니다.))


aplay이 작은 C 알고리즘에 대한 재미있는 부분은 떨어져이 걸릴 것이다 출력 그래서 :(, 변경하고 시간이 지남에 따라 다른 소리를 생성하는 것입니다
마이클

버퍼링 재생을 위해 더 긴 시간 지연으로보십시오. :-) 해당 데이터는 어떻게 해석됩니까? 유틸리티가 생성 한 데이터를 재생하기 위해 OS X에서 작동하는 적절한 명령 행 유틸리티를 찾는 데 도움이 될 수 있습니다. (예를 들어, 아직 시도하지 않았지만 mpg123에서 작동 할 수 있습니다.)
MacLemon

그래서 당신은 무엇을 제안 하시겠습니까?
Michal

2

나는 mpv를 사용했다. 옵션은 mplayer와 유사하지만 --rawaudio 스위치는 더 이상 mpv에서 지원되지 않습니다. 이것은 당신이 대신하는 일입니다.

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 and crap"과 약간 혼동되었지만 컴파일러에 전달 된 매개 변수를 참조하고 있음을 알았습니다. 정말 잘 작동합니다, 건배!
Michal

1

Homebrew에서 sox를 ​​설치 한 다음 play -c1 -b8 -eunsigned -traw -r8k -대신 사용하십시오 auplay.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.