더북(TheBook)

파일에 저장하기 음악은 컴퓨터에서 저장 공간을 많이 차지한다. 초당 44,100번 샘플링하는 경우 4분짜리 노래는 4 × 60 × 44100 = 10,584,000개의 숫자에 해당한다. 따라서 음악 파일에 들어가는 숫자는 표준 입출력 장치에서 숫자를 문자열로 표현하는 방법이 아니라 이진 서식을 사용해 저장 공간을 줄인다. 지난 수년간 다양한 음악 서식이 개발되었으며, stdaudio 모듈은 .wav 서식을 사용한다. 그러나 stdaudio 모듈에서 필요한 변환을 모두 수행해주므로, .wav 파일 서식을 상세히 알 필요는 없다. stdaudio 모듈을 사용하면 손쉽게 .wav 파일을 재생하고, 배열을 생성하고 조작하고, .wav 파일에 저장하거나 읽을 수 있다.

▼ 표 1.5.9 사운드 생성용 함수들

함수

설명

stdaudio.playFile(filename)

filename.wav 파일에 들어 있는 사운드 샘플을 모두 연주한다.

stdaudio.playSamples(a)

실수 배열 a[]에 들어 있는 사운드 샘플을 모두 연주한다.

stdaudio.playSample(x)

실수 x 사운드 샘플을 연주한다.

stdaudio.save(filename, a)

실수 배열 a[]에 들어 있는 사운드 샘플을 모두

filename.wav 파일에 저장한다.

stdaudio.read(filename)

filename.wav 파일에 들어 있는 샘플을

모두 읽어 실수 배열을 반환한다.

stdaudio.wait()

현재 연주하고 있는 사운드가 끝날 때까지 기다린다.

(stdaudio 모듈을 사용하는 프로그램은 반드시

이 함수를 마지막에 호출해야 한다)

 

[프로그램 1.5.8](playthattune.py)을 보면 stdaudio 모듈이 제공하는 함수([] 참조)를 이용하면 얼마나 쉽게 음악을 재생할 수 있는지 알 수 있다. 표준 입력 스트림에서 음(‘라’음부터 시작하는 반음계의 인덱스 번호. 그림 1.5.12 참조)을 입력받아, 표준 오디오 장치에서 재생한다. 이 기본적인 체계는 무궁무진하게 확장할 수 있으며, 그중 일부는 연습문제에서 다룬다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.