Managing Volume: ReplayGain(RG) / MP3Gain / Sound Check (iTunes)

ReplayGain(RG), MP3Gain, Sound Check (iTunes)
These features are used to normalize the audio files, I mean music files.
I’m gonna sum up the data I’ve collected, thereby comparing one another.

This document is not perfect and I want you to get more information from professional articles.
I’ll have this document get fixed afterterwards.
Also, pointing out any of the errors is always welcomed.

 

< ReplayGain(RG) >

This technology is done by analyzing the internal volume of a music file.
Then, by calculating the difference between the volume and the target volume, the number is put in the tag of the file.
When a music player or a device plays the file, it reads the tag of it.
If there’s a RG data and the player notices it, the difference is applied to the output volume when the player is playing the file.
This means that RG tag does not change the sound wave of an audio file.
All the analized data are put in the tag and this means that if you remove the tag, then the analyzation is gone.
Then the file will become the one which was like before the RG analyzation.

 

< MP3Gain >

The core algorithm is the same as ReplayGain.
MP3Gain is a program designed to apply the RG technology to MP3 files.
Because RG just calculates the difference of the file volume and the target volume and then put the result in the tag, it supports all file types.
However, the problem is that the music player should be able to read and use the RG result.
Years ago, old devices and programs could not read and apply the RG analysis result in the tag.
So the analyzing was no use.
In order to solve this problem, MP3Gain was developed.
It uses the RG algorithm and applies the result to the actual audio file.
It does not just add some number in the tag, but it really changes the actual volume of a file.
Because the process is done by really changing the sound, this program only supports MP3 files.
Other file formats require different ways of processing, so there are similar programs such as AACGain for other formats.

In the official site of MP3Gain, it says that the program does not change the original file.
It’s a half truth.
It actually changes the internal volume of a file and then adds a tag about the amount of volume change.
The type of the tag is APE.
When you want to remove the change, MP3Gain reads the tag and redo the change.
But when you remove the APE tag after changing the volume once, the audio file cannot get back to the original state by itself, if you don’t remember the original volume or the amount of change made by MP3Gain.
To add, it is a small defect that MP3Gain can only change the volume by 1.5dB.

< Sound Check (iTunes) >

Sound Check is a feature provided with Apple’s iTunes.
The basic mechanism is just like ReplayGain.
iTunes automatically calculate the volume of any files such as AAC and MP3.
Then, iTunes add a tag to the file about the difference of the volume level compared to the target leve.

There are some disadvantages.
Because it’s Apple’s own technology, the tag made by Sound Check is not always applied to devices or programs that are not made by Apple.
Also, while the Sound Check is done relatively quickly, the analysis is not that accurate.
iTunes’ target level cannot be changed manually by users in a normal way.
Lastly, because the volume change is done on files one by one, you cannot do an ‘Album Gain’.

However, all the defects can be solved if you use a program named iVolume.
You can do ‘Album Gain’, you can change the target volume as you want, and the analysis is done quite specifically.
iVolume can be used freely, but to remove some inconvenience you should pay for the app.
The first defect can be solved when you change all your devices to those made by Apple. lol

Advertisements

ReplayGain(RG) / MP3Gain / 음량 자동 조절 (iTunes)

ReplayGain(RG), MP3Gain, 음량 자동 조절 (iTunes) 등 음원의 볼륨을 평준화하기 위한 도구들이 혼재해 있어서 알아본 바를 정리해보고자 한다.

이 글의 내용은 절대로 정확성을 담보할 수 없으며, 잘못된 점이 발견되면 수시로 수정될 것이다.
잘못된 부분에 대한 지적 또한 환영한다.

나는 오래 전부터 MP3Gain을 활용하여 왔는데, 몇 가지 이유가 있었다.
ReplayGain에 대해 처음 알게 되었던 시절에는 Foobar2000 외에 RG를 제대로 지원하는 재생기가 거의 없었고, 게다가 컴퓨터로는 거의 음악을 듣지 않았고 휴대용 기기들을 이용했기 때문에 사실상 MP3Gain밖에 선택지가 없었다.
사실 MP3Gain이 ReplayGain을 MP3에 적용한 것이라는 정도로만 이해하고 있었기 때문에 둘이 완전히 같은 것이라고, 혹은 전자가 후자에 속하는 것이라고 잘못 이해하고 있기도 했다.
한편, 애플 기기는 아이팟 터치나 나노 정도밖에 쓰지 않았기 때문에 iTunes의 기능으로는 범용성이 너무 떨어졌다.
물론 (이제야 안 것이지만) 당시의 iTunes Sound Check 성능은 한숨이 나올 지경이기도 했다.

여하튼 내가 이해한 바에 따라서 정리를 해보도록 하겠다.

 

< ReplayGain(RG) >

음원 전체를 분석한 다음에 음량 정보를 구한다.
당연히 평균 음량으로 산출하는 것이다.
그런 다음에 목표 음량(89dB)과의 차이를 계산한 다음에 음원의 태그에 보정을 위한 값을 넣는다.
그러면 RG를 지원하는 음원 재생기는 음원을 불러오면서 태그를 읽고, 해당 필드에 적힌 값만큼 재생음량을 자동으로 조절한다.
즉, 음원 자체의 파형은 건드리지 않으며, 태그에만 정보를 입력하기 때문에 태그에서 해당 부분을 날려버리면 RG 분석 전의 상태로 돌아간다.

 

< MP3Gain >

활용하는 기본 알고리즘은 RG와 똑같다.
RG 기술을 MP3 파일에 적용하는 것이 핵심이다.
원래 RG 알고리즘은 평균 음량을 계산한 다음에 목표와의 차이를 태그에 집어넣는 것이기 때문에 어떠한 음원과도 연동된다.
하지만 문제는 RG 분석 결과 입력된 태그를 음원 재생기가 읽을 수 있어야 한다는 것이다.
컴퓨터로 음원을 듣는다면 사용하는 프로그램이, MP3 플레이어 등 휴대용 기기로 음원을 듣는다면 해당 장비가 RG 태그를 읽을 수 있어야 한다.
그러나 과거의 기기들은 보통 RG 태그를 읽어서 음량을 변화시키는 기능이 없었다.
재생기가 읽어내지 못하는 태그의 정보는 아무런 의미가 없는 데이터일 뿐이다.
따라서 MP3Gain은 음원 자체를 변조하고자 한 것이다.
태그에 값을 넣어서 재생시킬 때마다 반영시키는 것이 아니라, 아예 음원 자체의 파형에 조작을 가해서 기본 음량 자체를 변화시키는 것이다.
이때 기본 음량을 얼마나 변화시켜야 하는지 계산하기 위해서 RG 알고리즘을 사용하는 것이다.
분석 결과 10dB 낮춰서 재생해야 한다는 결과가 나왔을 때, 원래의 RG 태그는 예컨대 -10dB라고 덧붙이는데, MP3Gain은 실제로 음량을 10dB 줄여버린다.
실제로 음원을 조작하기 때문에 지원 음원에 한계가 있다.
따라서 MP3만 지원하는 것이며, 이를 응용한 AACGain 등이 별도로 개발된 것이다.

MP3Gain 홈페이지를 보면, 음원에 변화가 생기지 않는다고 한다.
반쯤 맞는 말이다.
MP3Gain은 실제 음원의 음량을 10dB 줄인 다음에 태그에는 MP3Gain 프로그램 스스로가 나중에 다시 읽을 수 있도록 ‘10dB 음량을 올리면 원래대로 돌아온다’고 덧붙인다.
이는 APE 형식의 태그로 입력된다.
그래서 음량을 되돌릴 수도 있고, 되돌리면 다시 처음의 음원과 완전히 같아지는 것이다.

하지만 문제는 실제로 음원을 조작한 다음에 변경 내용을 태그로 달아놓기 때문에 APE 태그를 날려버릴 경우에는 원래대로 돌아올 수 없게 된다는 것이다.
음량 조절의 결과 다이나믹 레인지가 줄어버리거나, 클리핑이 생기는 등 문제가 생길 수 있는데, 이때 원래 상태로 되돌리려고 하는데 태그 작업을 하다가 APE 태그를 지워버렸거나 하면 매우 난감해진다.
또한, 1.5dB 단위로만 음량을 조절할 수 있도록 설계되어 있어서 음량 평준화에 한계가 존재한다.

ReplayGain과 MP3Gain을 비교하여 요약하면 다음과 같다.
ReplayGain은 태그만 건드린다.
MP3Gain은 음량을 실제로 바꿔버리고, 바꾼 내용을 태그에 남긴다.
따라서 태그를 날려버릴 경우에 ReplayGain을 이용했다면 원래 음원으로 돌아오게 되며, MP3Gain을 이용했다면 바꾼 후의 음량 상태로 계속 남게 된다.

 

< 음량 자동 조절 (iTunes) >

애플 iTunes의 Sound Check 기능이다.
애플이 정보를 거의 공개하지 않아서 자료가 적다는 점을 제외하면, 원래의 RG와 거의 같다고 보면 된다.
AAC 코덱이든 MP3 코덱이든 음량을 계산하고, 목표 음량과의 차이를 남겨둔다.
그리고 재생할 때 그를 반영하여 재생한다.
그런데 파일 포맷에 따라서 태그의 작성 방식이 다른 것 같다.

단점이 좀 많다.
애플 자체의 기술이기 때문에 다양한 기기나 소프트웨어를 지원하지 않아서 범용성이 떨어진다.
음량 분석이 신속하게 이루어지는 대신에 부정확하다고 한다.
목표 음량을 수동으로 정하는 것이 불가능하다.
앨범 게인을 주는 것이 불가능하고 무조건 음원마다 개별적으로 반영된다.

그런데 이상의 단점들은 첫 번째 것을 제외하고는 모두 iVolume이라는 프로그램을 사용하면 해결된다.
불편함을 감수하고 무료 버전으로 사용하거나, iVolume을 구매하는 것을 적극 추천한다.
그리고 첫 번째 문제점은 모든 장비를 애플 것으로 구매하면 해결된다!

Managing AAC files: Rip music from a CD

It can be said that aac codec surpasses mpeg-3 codec in all aspects.
This means that there is no relative disadvantage of using aac files instead of mp3 files.

There are many softwares that can be used to make aac music files.
But because aac is a lossy codec, the encoding algorithm is important.
Roughly, iTunes uses its own encoder and all other programs use Nero encoder.
According to analyses Nero encoder is inferior than iTunes encoder especially when using the VBR settings.

So it is the best to use iTunes when making aac music files.
The trouble is that there are some codecs that iTunes does not support, such as flac.
In this case, it’d be better to convert flac files to alac files.
This is okay because both of them are lossless codecs.
When flac files are converted to alac files, they can then be converted to aac files using iTunes because iTunes support alac codec.

Anyway, in this post, I’ll introduce you the way of ripping music from a CD and get aac files.
I’ll not use the default settings and change them a little bit.

Insert a CD in a odd drive.
iTunes will show you the track list automatically.
If you want to change artist, album title, track title, etc, you can change it now.

Now, let’s change the rip settings.
Press “Command + ,” and click the import setting or you can just click the same button provided in the CD track list screen.

Select AAC encoder.
Let’s change some specific settings.
Go to user setting.

It’s true that AAC codec has good quality compared to its small size, but the default setting is not enough.
It is better to set the bitrate to 256.
This setting is known to be similar to the quality of when using mp3 codec with the bitrate of 320.
VBR setting will keep the file size shrinked.
Nero encoder is not preferred when creating aac files because its VBR algorithm is not efficient enough.
HE encoding is the latest setting but because it pursuits even smaller file size by sacrificing the sound quality.
So let’s not choose it.

Save all the settings and let’s rip the music off!
Extracted aac files will be automatically added to the iTunes library.

AAC로 음원 관리하기: CD 리핑

이미 다양한 자료를 찾아보면 알 수 있듯이, aac 코덱은 mp3 코덱을 완전히 넘어섰다고 볼 수 있다.
거의 모든 측면에서 mp3와 비교해 상대적인 단점이 없는 것이다.

현재 무손실 파일로부터 aac 코덱 음원을 뽑아내는 방식은 다양하게 존재한다.
손실변환이기 때문에 프로그램 간 차이가 중요할 것인데, 크게 나누어봤을 때 iTunes를 통한 방식과 그 외의 방식으로 구분할 수 있을 것이다.

그렇게 나누는 이유는 변환 알고리즘이 다르기 때문인데, iTunes를 통한 변환은 비공개 자체 인코더를 사용하고, 이외의 프로그램들은 대체로 Nero 인코더를 사용한다.
파형을 비교해보면, iTunes 자체 인코더의 품질이 더 우수하다.

따라서 가능하면 iTunes를 이용해 aac 파일을 만드는 것이 좋은데, 다만 iTunes가 아예 인식하지 못하는 flac 코덱 파일 등이 문제이다.
이런 경우에는 어차피 무손실 파일이니까 flac 파일을 별도 프로그램을 이용해 alac 파일로 만들고, 그 파일을 iTunes로 불러들여 aac로 변환하면 될 것이다.

일단 이 게시물에서는 CD를 리핑(ripping)할 때 iTunes를 이용해 aac 코덱을 뽑아내는 방법을 설명하기 위함이다.
기본 설정을 사용하지 않고, 약간의 조작을 추가할 것이다.

CD를 odd에 넣고 iTunes를 실행하면 이렇게 CD 트랙을 보여주는 화면이 뜬다.
아티스트 이름, 앨범 제목, 트랙 제목 등을 변경해야 할 필요가 있다면 여기서 미리 수정해놓자.

이제 리핑 설정으로 가자.
“Command + ,”를 눌러서 일반 설정을 띄운 후에 ‘가져오기 설정’을 눌러도 되고, 앞서 확인한 CD 트랙 목록 화면에서 우상단의 ‘옵션’을 눌러도 된다.

그러면 이와 같은 ‘가져오기 설정’이 뜬다.
AAC 인코더를 선택하자.
세부 설정을 기본에서 조금 변경할 것이다.
사용자 설정으로 가자.

AAC 인코더 설정에서 바꿀 것은 크게 없다.
기본적으로 위 이미지의 설정을 추천한다.
AAC 코덱이 용량 대비 음질이 좋은 것은 사실이지만, 기본 설정은 너무 저용량을 추구하는 감이 있어서 비트레이트를 256으로 하겠다.
이 정도로 설정하면 mp3 코덱의 비트레이트 320과 비슷한 수준이라고 보면 된다.
용량의 이점을 위해서 VBR을 택하는 것이 좋고(VBR 변환 성능이 후진 점이 Nero 인코더의 대표적 단점).
HE 인코딩은 기본 설정보다도 더 용량 효율을 추구하는 방식이다.
더 최근에 나온 알고리즘인 것은 사실이지만, 음악 감상용으로는 부적절하며 절대적 변환 성능 자체에 의문이 계속 제기되고 있기도 하므로 체크하지 말자.

변경한 설정을 모두 저장하며 창을 닫고, ‘CD 가져오기’를 눌러서 리핑을 하자.
리핑된 트랙들은 자동으로 iTunes 라이브러리에 추가된다.

Managing AAC files: Lossless to AAC

Recently, I’ve been changing all my music files from MP3 to AAC.
To be specific, I’m encoding my FLAC files and ripping CDs to AAC files.
You should not encode MP3s directly to AACs because they are both lossy codecs.
Some data are gone when you create MP3 files, and when you convert them again to AACs even more data will be lost.
That is no use and the output can never be better than the source.

Therefore, you should get some original files.
Lossless files like WAV, FLAC, ALAC are good sources, and you can also use your own CDs.
In this post, I’ll show you how to convert music files to AAC files.

AAC files are better than MP3 files because,

  • they are compressed more
  • their VBR is more efficient
  • they can take the advantage of AAC bypass when your bluetooth devices support AAC codecs

When your bluetooth devices all support AAC codecs, you can get better battery life and even better audio quality.

From now on, I’ll convert FLAC to AAC.
I’m going to use XLD(X Lossless Decoder).
It seems to be developed by a Japanese.
It is a light and handy tool, and the output is in good quality.

Also, the recent update is 20151128 which means the developer is hardworking. lol
You can download the installer at the Official site.
I’m now using MBPr OS X 10.11.1 Yosemite.

After the install, start the app.
Nothing happens!
But the app is running in the dock bar.

You can also find it running in the upper left corner of the screen.
Go to Preferences or use the shortcut “Command + ,”.

Our purpose is to convert files to AAC.
So set the output format to AAC.

Click the option which is at the right of output format.
Using the settings below, you can get the same output when you’re using iTunes to rip CDs and get AAC files.
I’m suggesting these settings and I believe it will provide you with the most efficient output.

Let’s convert files.
Move to a folder where FLAC files are located.
Select all files using the shortcut “Command + a” or by dragging.

Right click and choose XLD in the app list.
You can also do the same thing by drangging the files and putting them on the XLD icon in the dock.

Files are being encoded fast.

When it’s done, you can get these M4A files.
AAC is the name of a codec and the container’s name is M4A, so don’t get embarrassed.

Now, move the lossless files to the safe place, and use the M4A files created.
You can put them in the iTunes library or use any other devices/programs to listen to them.

AAC로 음원 관리하기: 무손실 음원 변환

음악감상을 위한 음원의 표준 포맷이 MP3로 표준화된 지 벌써 10년 이상 된 것 같다.
그 만큼 MP3라는 포맷은 낡은 기술이 되어가고 있는데, 그를 대체하기 위한 기술들이 계속 나왔어도 여전히 자리를 지키고 있다.
음원 포맷의 발전은 압축률을 높여서 ‘같은 용량에 더 고음질을 구현’하거나 ‘같은 음질을 더 낮은 용량에 구현’하는 방식으로 꾸준히 이루어지고 있다.
그러나 이미 MP3 파일의 용량은 충분히 작고, 음원을 저장하기 위한 스토리지 단가는 급격히 떨어지고 있어서 용량 대비 음질의 효율을 굳이 높일 필요가 없는 상황이다.
또, 애초에 가청주파수 외의 영역을 잘라내는 방식의 MP3보다 음질을 좋게 해더라도 어지간해서는 차이를 인식하기 힘들기 때문에 대다수 청자들은 MP3 이상의 무언가를 원하지 않고 있기도 하다.
그러는 사이 OGG는 완전히 묻혀버렸고, 그나마 FLAC 정도가 무손실 음원인 동시에 압축도 되는 장점을 내세워 애호가들 사이에서 입소문을 타고 있다.

나는 대체로 MP3(VBR V0~V2) 정도에서 만족하며 음원 관리를 해왔고, 간혹 아끼는 음원들은 MP3(320kbps)로 보관하고 있었다.
그러나 최근 1년 정도 AAC의 장점을 꾸준히 접하게 되었고, 최근에는 쌓아뒀던 CD를 죄다 다시 리핑하고, 쟁여뒀던 FLAC 파일들도 꺼내서 다시 AAC로 인코딩을 하고 있다.

내가 MP3에서 AAC로 갈아타게 된 결정적 장점들을 꼽아보자면,

  • MP3보다 더 높은 압축률
  • MP3보다 더 훌륭한 VBR 성능
  • AAC 코덱을 지원하는 블루투스 기기에서의 바이패스(bypass)

특히, 블루투스 장비에서의 바이패스를 통해서 배터리를 절약하는 동시에 시그널 손실을 최소화할 것을 기대할 수 있다.
OGG와는 달리, AAC는 ID3 태그도 잘 써지고, 인식도 잘 되고, 또한 Gain 조절도 MP3Gain으로 가능할 정도로 호환성이 좋기 때문에 더 이상 MP3를 고집할 이유가 전혀 없다.

AAC 코덱을 애플이 밀어주고 있는 것은 사실이지만, 그렇다고 애플에서 만든 것은 아니다.
한편, 이상의 압도적인 성능으로 인해서 최근의 음악 스트리밍 서비스들은 대부분 AAC로 음원을 전송하고 있다고 한다.

여하튼, 음원 라이브러리를 AAC로 관리하기 위해서는 기존의 음원들을 AAC 코덱으로 인코딩해야 할 것이다.
주의할 점은 절대로 MP3 파일들을 AAC로 변환해서는 안 된다는 것이다.
이미 손실압축된 음원을 또 손실압축 코덱인 AAC로 인코딩하는 것은 멍청한 짓이다.
WAV, FLAC, ALAC 등 가지고 있는 무손실 음원을 AAC로 변환해야 할 것이다.
CD 리핑은 다음 게시물에서 다루겠다.

이하의 설명은 FLAC 파일을 기준으로 진행한다.
변환에 사용한 프로그램은 XLD(X Lossless Decoder)이다.
일본 개발자가 만든 것 같은데, 가장 가볍고, 간단히 사용할 수 있으며, 결과물의 품질이 좋다.
공식 홈페이지 하단의 Download에서 설치 파일을 받을 수 있다.
현재 최신 버전이 2015년 11월 28일인 것을 보면, 매우 사후관리가 잘 되고 있음을 알 수 있다.
믿고 쓰자!
사용 장비는 맥북(Mac OS X 10.11.1)이다.

설치를 완료하고 런치패드에서 XLD를 열면 아무 일도 일어나지 않아서 당황하게 될 것이다.
그러나 정신을 차리고 독을 보면 XLD가 잘 켜져 있는 것을 확인할 수 있다.

화면의 좌상단에서도 XLD가 켜진 것을 확인할 수 있다.
이 상태에서 Preferences를 클릭하거나 “Command + ,”를 누르자.

다음과 같은 설정창이 뜬다.
일단 목표는 AAC로 변환하는 것이기 때문에 Output format을 AAC로 골라주자.
변환 파일을 어느 폴더에서 생성한 것인지 설정할 수도 있고, 나중에 인코딩한 후에 글자가 깨지거나 한다면 문자 인코딩을 바꿔줄 수도 있다.
Maximum #Threads는 동시에 음원을 몇 개까지 인코딩할 것인지 정하는 것인데, 컴퓨터의 CPU 성능을 믿는다면 다소 높여도 될 것이고, 나중에 음원을 인코딩하는 도중에 컴퓨터가 도저히 사용할 수 없는 상태가 된다면 여기서 스레드의 수를 낮추고 우선도도 조금 낮춰주면 될 것이다.
다만 그렇게 하면 변환에 걸리는 전체 시간이 늘어날 것이다.

Output format를 AAC로 고른 후에 우측의 Option 버튼을 누르자.
아래 사진의 설정을 그대로 따라하면, iTunes에서 AAC로 CD를 리핑할 때와 같은 결과물이 나온다.
입맛에 따라서 개별 설정을 바꿔볼 수도 있겠지만, 여기서 더 건드리면 용량과 음질 중 하나를 포기해야 할 것이다.
이 설정이 제일 효율이 나은 것 같다.

설정을 마쳤으니 이제 진짜 음원 변환을 해보자.
FLAC 파일을 보관하고 있는 폴더로 이동하자.
그리고 “Command + a” 또는 드래그를 해서 전체 음원을 선택한다.

우클릭 후에 다음으로 열기에서 XLD를 선택하면 된다.
간단하다!
혹은 선택한 파일들을 드래그해서 독에 있는 XLD 아이콘 위에 올려놓아도 된다.

빠르게 인코딩이 이루어지고 있는 모습이다.

인코딩이 끝나면 이렇게 FLAC 파일과 함께 M4A 파일이 생긴다.
AAC는 코덱 이름이고, 변환을 완료하면 컨테이너는 M4A로 잡히니까 당황할 필요는 없다.

이제 무손실 원음은 별도의 저장소에 잘 보관해두면 된다.
그리고 결과물인 M4A 파일들을 iTunes 라이브러리에 넣든지, 바로 다른 기기에 넣든지 해서 들으면 된다!