음역대 테스트, 마이크로 재는 법
무엇을 재는지, 어떤 순서로 하는지, 값이 왜 흔들리는지, 안 될 때 무엇을 보면 되는지 순서대로 적었습니다.
음역대와 음이름이라는 말
음역대는 한 사람이 소리로 낼 수 있는 가장 낮은 음에서 가장 높은 음까지의 폭을 말합니다. 노래를 고를 때 흔히 묻는 것이 이것인데, 정작 자기 값을 아는 사람은 드뭅니다. 설문으로 짐작하는 쪽은 실제 목소리를 한 번도 듣지 않으므로 그 값이 맞는지 알 길이 없습니다.
음이름은 그 높이를 사람이 부르는 이름입니다. 이 도구는 과학적 음높이 표기를 씁니다. 가온다가 C4 이고 그 위 라가 A4 이며, A4 를 440Hz 로 잡는 것이 국제 기준입니다. 한 옥타브는 열두 반음이고, 반음 하나를 다시 백 등분한 것이 센트입니다.
표기를 왜 굳이 이렇게 쓰는가 하면, 다른 음역대 시험이나 악보에서 본 값과 견줄 수 있어야 하기 때문입니다. 낮은 도와 높은 도처럼 부르면 어느 옥타브인지 사라집니다. C3 과 C5 는 두 옥타브 차이라 전혀 다른 소리입니다.
옥타브 수로 말하면 폭이 한눈에 들어옵니다. 반음 스물넷이면 두 옥타브입니다. 다만 폭이 넓다고 노래를 잘하는 것은 아니고, 실제로 쓰는 구간은 그보다 좁은 것이 보통입니다.
여기서 곡 제목이 안 나오는 까닭도 적어 둡니다. 노래방 곡목은 저작권법 제93조가 데이터베이스제작자의 권리로 보호하는 자료이고, 국내 두 회사 어느 쪽도 공개된 이용 길을 열어 두지 않았습니다. 남이 그 자료를 쓰고 있다는 사실이 우리 근거가 되지는 않습니다. 그래서 이 도구에는 곡 제목도 가사도 곡 번호도 음원도 없고, 음이름까지만 냅니다. 곡은 직접 적는 메모 칸에 적으시면 이 기기에만 남습니다.
소리에서 음높이를 읽는 원리
목소리는 성대가 주기적으로 여닫히며 만들어집니다. 그 되풀이 한 번에 걸리는 시간이 주기이고, 주기의 역수가 기본 주파수입니다. 우리가 음높이라고 느끼는 것이 이 값입니다.
그래서 음높이를 읽는 일은 되풀이 간격을 찾는 일이 됩니다. 소리를 조금 밀어서 자기 자신과 겹쳐 보고, 가장 잘 겹치는 밀기 폭을 찾으면 그것이 주기입니다. 이 도구는 차이 함수를 쓰는 갈래를 씁니다. 밀어서 뺀 값의 제곱을 더해 가장 작아지는 자리를 찾는 방식입니다.
여기에 함정이 하나 있습니다. 주기 T 에서 잘 겹치면 2T 에서도 잘 겹칩니다. 그래서 가장 잘 겹치는 자리만 보면 한 옥타브 아래를 답으로 내는 일이 생깁니다. 이것을 옥타브 오류라고 합니다. 문턱을 넘는 첫 골짜기를 고르면 그 오류가 줄어듭니다.
반대 방향의 문제도 있습니다. 밀기 폭은 샘플 단위라 값이 띄엄띄엄합니다. 높은 음일수록 한 샘플이 크게 벌어집니다. 880Hz 근처에서는 한 샘플이 16Hz 가까이 됩니다. 그대로 두면 눈금이 굵어 쓸 수 없습니다.
그래서 두 가지를 더 합니다. 골짜기 둘레 세 점으로 포물선을 맞춰 눈금 사이를 읽고, 같은 주기의 여러 번째 되풀이 자리에서 한 번 더 잽니다. 열 번째 되풀이에서 재면 눈금이 열 배 촘촘해집니다.
자음과 바람 소리는 되풀이가 없어 이 방법으로 아무 값도 안 나옵니다. 그럴 때는 값을 내지 않습니다. 짐작해서 채우면 그 순간 화면이 거짓이 됩니다.
이 도구가 실제로 하는 일
마이크 허용을 누르면 브라우저가 소리 줄기를 열어 줍니다. 그 줄기를 오디오 분석기에 붙여 시간 영역 표본을 조각조각 꺼냅니다. 조각 하나가 4096 표본이고, 흔한 48kHz 기기에서 85밀리초쯤 됩니다.
조각마다 먼저 실효값을 봅니다. 너무 작으면 소리가 없는 것으로 보고 넘어갑니다. 소리가 있으면 위에서 적은 방법으로 기본 주파수를 구하고, 60Hz 와 1200Hz 사이가 아니면 버립니다.
나온 주파수를 음 번호로 바꿉니다. 440 을 기준으로 로그를 취하면 번호가 나오고, 반올림하면 음이름, 남은 소수가 센트입니다. 화면의 지금 음과 벗어난 정도가 이 값입니다.
조각은 또렷함이라는 값을 함께 가집니다. 되풀이가 얼마나 깨끗한지를 0 에서 1 사이로 적은 것입니다. 끝음을 셀 때는 또렷함 90% 이상인 조각만 씁니다.
여기에 규칙이 하나 더 있습니다. 문 닫히는 소리나 목이 갈라지는 순간에도 조각 한둘은 엉뚱한 값을 냅니다. 그 하나를 최고음으로 적으면 화면이 거짓말을 합니다. 그래서 그 음 둘레 반음 안에 조각이 3개 넘게 쌓인 음만 끝음으로 셉니다.
오래 머문 구간은 센 조각들을 줄 세워 아래에서 15% 자리와 85% 자리를 잡은 것입니다. 이번에 목소리가 가장 많이 있던 자리라는 뜻이고, 그 이상도 이하도 아닙니다.
마지막으로 나온 값이 사람이 낼 만한 값인지 한 번 봅니다. 폭이 네 옥타브를 넘거나 낮은음이 70Hz 아래거나 높은음이 1100Hz 위면 옥타브 오류를 의심하고 다시 재 보라고 적습니다. 선행 조사에서 어떤 상용 시험이 다섯 옥타브가 넘는 값을 그대로 내놓는 것을 봤고, 그 검증이 빠져 있었습니다.
값을 감추지는 않습니다. 나온 그대로 보여 주고 의심스러운 까닭만 옆에 적습니다. 숨기는 것도 거짓이기 때문입니다.
결과를 남기면 날짜와 음이름과 직접 적은 메모가 이 브라우저의 저장소에 들어갑니다. 소리는 어디에도 안 남습니다. 녹음 자체를 안 하기 때문에 남길 것이 없습니다.
나눔 카드는 그 결과를 그림 한 장으로 그립니다. 그리는 일도 이 브라우저 안에서 일어나고, 만들어진 그림을 바로 내려받습니다.
잴 때 요령
조용한 방에서 하세요. 텔레비전이나 음악이 켜져 있으면 그 소리도 주기가 있어 값이 섞입니다. 특히 반주를 틀어 놓고 따라 부르면 이 도구는 둘을 못 가릅니다.
마이크에서 한 뼘쯤 떨어져 한 음을 길게 냅니다. 짧게 툭 내면 셀 조각이 안 쌓여 끝음으로 인정되지 않습니다. 이삼 초가 편합니다.
낮은음을 잴 때는 아 소리보다 오 소리가 잡히기 쉽습니다. 낮은 음은 소리가 작아지기 쉬운데, 너무 작으면 실효값 문턱에 걸려 조각이 안 세어집니다.
높은음은 한 번에 끝까지 올라가지 말고 반음씩 올라가세요. 화면에 뜨는 음이름이 계속 바뀌는지 보면 지금 어디까지 왔는지 알 수 있습니다.
이어폰 마이크와 노트북 내장 마이크는 잡히는 범위가 다릅니다. 같은 기기로 며칠을 재야 날짜별 기록을 견줄 수 있습니다.
값이 흔들리는 자리
아침과 저녁이 다릅니다. 자고 일어난 직후에는 낮은음이 조금 더 내려가고 높은음이 안 올라가는 일이 흔합니다. 그래서 이 도구는 하루치 결과를 날짜와 함께 남깁니다. 한 번 잰 값을 자기 음역대라고 못 박지 마세요.
떨림이 있는 소리는 값이 오르내립니다. 성악에서 쓰는 떨림은 폭이 반음 가까이 되기도 합니다. 그럴 때 화면의 숫자는 계속 움직이는 것이 정상입니다.
가성으로 올린 음은 보통 목소리와 소리 내는 방식이 다릅니다. 이 도구는 둘을 구분하지 않고 주파수만 읽습니다. 가성까지 넣어 잴지는 재는 사람이 정할 일입니다.
낮은 음에서는 표본 조각이 짧으면 한 주기도 안 들어와 값이 안 나옵니다. 조각 하나에 최소 두 주기는 들어와야 합니다. 그래서 아주 낮은 소리는 다른 음보다 늦게 잡힙니다.
브라우저마다 마이크에 자동 처리를 겁니다. 소음 제거나 자동 크기 조절이 그것인데, 켜져 있으면 조용한 소리가 더 밀려 올라오기도 합니다. 이 도구는 그 처리를 끄고 소리를 받습니다.
마이크가 안 될 때
허용을 눌렀는데 아무 값도 안 뜨면 먼저 다른 프로그램이 마이크를 쥐고 있는지 보세요. 통화 앱이나 녹음 앱이 켜져 있으면 브라우저가 마이크를 못 엽니다.
주소창 왼쪽 자물쇠를 누르면 이 쪽의 마이크 권한이 보입니다. 한 번 거절하면 다음부터는 묻지 않으므로, 거기서 허용으로 바꾼 뒤 새로 고쳐야 합니다.
아이폰과 아이패드의 사파리는 탭 상태와 설정에 따라 마이크를 안 열어 주는 자리가 있습니다. 그럴 때 이 도구는 안 된다고 그대로 적습니다. 되는 척하지 않습니다.
주소가 https 가 아니면 브라우저가 마이크를 막습니다. 이 사이트는 https 로만 열리지만, 어딘가에 복사된 http 주소로 들어오면 그 자리에서 막힙니다.
마이크 자체가 없는 데스크톱에서는 찾지 못했다고 나옵니다. 이어폰을 꽂으면 그 마이크가 잡힙니다.
그래도 안 되면 크롬이나 파이어폭스에서 열어 보세요. 이 도구가 쓰는 기능은 두 브라우저에서 오래 안정되어 있습니다.
출처
- MDN, 마이크 줄기를 여는 getUserMedia (2026-09-16)
- MDN, 시간 영역 표본을 꺼내는 getFloatTimeDomainData (2026-09-16)
- W3C 명세, 미디어 캡처와 스트림 (2026-09-16)
- MDN, 소음 제거와 자동 크기 조절 제약 (2026-09-16)