코드 수행시간이 비교적 길었던 R 스크립트가 있었다.
Run 이후 마냥 기다리긴 귀찮고, 딴짓을 하기엔 코드 수행시간이 그렇게도
길지 않은 코드여서
코드 수행이 끝났다는 알람을 줄 수 있는 방법을 찾고 싶었는데, 알람의
방법은 크게 2가지 정도를 원했었다.
- 문자나 메일을 받는 방법
- 비프음 등의 소리를 재생 👈
시켜 코드 수행이 끝났다는 걸 알려주는 것 이다.
첫 번째 “문자나 메일을 받는 방법” 은 구체적인 방법을 찾기 힘들었는데, 두
번째 “비프음 등의 소리를 재생” 방법을 알아본 결과 패키지를 이용한 아주
간단한 방법이 있었다.
지금까지 알게 된 방법들을 간단히 정리해본다.
beepr package 를 이용해 비프음 재생시키기
비프음을 재생시키기 위한 단 한 개의 함수를 제공해 주는 패키지가 있다.
(역시 심플하고 가벼운 것이 최고다 😄)
패키지 명칭도 “beepr” 이다.
제공되는 함수는 beep()
이다. 즉 beepr::beep()
로 내가 원하는 비프음을 재생시킬 수 있었다.
install.packages("beepr")
library(beepr)
beepr package 설치 및 로드하고
beep()
를 직접 실행시켜 보면 마치 전자레인지 가동이 종료될 때의 “ping!” 소리가 난다 🎵🎵
beep()
함수에서 제공되는 사운드는 아래처럼 11개가
있다.
기호에 맞게 sound
인자를 조정해 사용하면 된다.
- ping
- coin
- fanfare
- complete
- treasure
- ready
- shotgun
- mario
- wilhelm
- sword
만약 특정 음원 파일을 재생시키고 싶다면 tuneR package
소리재생에 관련된 포괄적인 패키지를 찾아본적도 있는데, 그 패키지
안에는 특정 음원 파일을 재생시키는 기능도 있을것이라 생각했다.
나는 tuneR 패키지가 눈에 띄었는데 이 패키지 에서 자신이 가지고 있는 음원
파일을 재생시키는 기능을 가진 play()
함수가 있다. (더
정확히 말하면 Wave class 의 객체만을 실행시키는 함수이다.)
그 전에 특정 음원 파일을 읽어들여 정보를 보관할 객체를 준비해야 할
필요가 있다. 음원 포맷이 mp3 이라면 readMP3()
와 같은
함수가 이를 도와준다.
install.packages("tuneR")
library(tuneR)
역시 tuneR 패키지를 설치하고 사용할 준비를 한다.
<- readMP3("test.wav")
mp3 play(mp3)
위의 코드는 워킹디렉토리에 있는 “Test.mp3” 파일을 불러온 후 R에서 재생시키는 코드이다.
두 패키지의 차이점
위에 비프음을 재생시키는 beepr 패키지와 다르게 tuneR 패키지의
play()
함수는 기본적으로 외부 플레이어를 이용한다는 점에서
차이점이 있다.
따라서 beep()
는 R내에서 이용하는데 쉽지만 tuneR 패키지와
조합한 play()
함수는 활성화되는 프로그램이 R 에서 외부
플레이어 애플리케이션으로 넘어가 버린다. 그리고 beepr 과 달리 tuneR 은
운영체계별로 사용법이 상이하다.