====== 파일 손실 방지 ======
음악이나 효과음을 mp3나 ogg로 변경할 경우,
* 소리가 너무 작아서 압축 과정에서 손실되는 경우
* kbs를 더 늘려서 압축해본다. ( 192 이상)
* 원본보다는 더 작다.
====== 음악 (AudioSource) ======
음악 비주얼라이져를 만들기 위한 .. 것만은 아니겠지만 **AudioSource**에 보면 관련있는 함수가 있다.
===== GetOutputData =====
void GetOutputData(float[] samples, int channel);
지금 딱 연주하는 구간의 데이터.
| samples | 배열인데, 배열의 크기는 음악의 압축률과 같거나.. 달라도 상관 없나? 잘 모르겠네. \\ 128kbps 파일이면 배열 크기를 128로 잡는다. (확인필요) |
| channel | 모노, 스테레오 그이상? |
| ::: | 모노면 0 만 보내고, 스테레오라면 0, 1 각각 따로 파라미터로 전송해서 2번 함수를 호출해야 한다. |
// 128kbps 파일이라면, 어디엔가 있는 AudioSource를 얻어 온다 손 치고
AudioSource _musicSource;
// 현재 연주 구간의 데이터를 얻기 위한 데이터 변수
float[] _samples1;
float[] _samples2;
_samples1 = new float[128];
_samples2 = new float[128];
// 데이터를 얻는다.
_musicSource.GetOutputData(_samples1, 0);
_musicSource.GetOutputData(_samples2, 1);
===== GetSpectrumData =====
음악 데이터의 스펙트럼이라는 것에 대해서 알고 있어야 하는듯한데.. 그것까지는 모르겠고.
* 스펙트럼의 개수는 : (1) 2의 배수여야 하고 (2) Min=64 ~ Max=8192 라고 하네
* [[http://docs.unity3d.com/Documentation/ScriptReference/AudioSource.GetSpectrumData.html|도움말]]을 참조
// 위 챕터에서 사용한 _musicSource를 그대로 사용
float[] _spectrum;
_spectrum = new float[64];
_musicSource.GetSpectrumData(_spectrum, 0, FFTWindow.Rectangular);