- 음악과 나 -/『 짬 통 』

이퀄라이저..

noon2dy 2006. 5. 6. 00:15

 

1.

  2006-04-18 오후 6:05:33   /  번호: 570478  / 평점:  (-) category: Sound  /  조회: 143 
 이퀼라이져를 구현하려 합니다~~ 김두환 / ggang88  
김두환님께 메시지 보내기  김두환님을 내 주소록에 추가합니다.  김두환님의 블로그가 없습니다  

스피커로 나오는 소리를 변형시켜 보려 합니다..

제가 하려는 것은 윈앰프에 보면 이퀼라이져가 있잖아요.. 주파수를 조정하면 소리가 조정되듯이 같은 기능을 구현하려고 합니다..

관련 소스를 찾아보고 여러 자료를 모아보니, 이퀼라이져를 구현해 놓은 소스가 여러 보이는 것을 알 수 있습니다..

 

그러나, 정작 제가 하려는 것은 미디어 파일에서 불러와서 소리를 조정하는 것이 아니라, 실시간으로 들어오는 WAV data를 이용하여

소리에 변형을 주려고 합니다.. 데이터는 CallBack Function의 형태로 wav data가 들어온다고 보시면 됩니다..

 

기존에 있는 소스들은 미디어 파일을 읽은 상태에서 EQ처리를 하기 때문에, 처리 방식이 많이 달라서 적용하기가 쉽지 않더라구요..

 

제가 궁금한 것은, 과연 이것이 가능한가 입니다.. 지금 그것도 확실하지 않아서 되는 것을 하고 있는지 아니면 되지도 않는 것을 가지고

고민을 하고 있는 것인지도 잘 모르겠습니다..

 

wav data가 있으면 그 data를 이용해서 FFT를 이용하여 처리를 하면 될 것 같다는 생각도 드는데요.. 그것과 관련하여서는 제가 너무도

무지해서 손도 못대는 형편입니다..

 

고수님들의 특별한 능력을 기대하도록 하겠습니다.. 한 수 전수해 주십시요.. 그럼 안녕히 계십시요~

이 글에 평점 주기:  
  2006-04-18 오후 6:16:47   /  번호: 570486  / 평점:  (-)  
 Re: ...  석재헌 / dreamcot  
석재헌님께 메시지 보내기  석재헌님을 내 주소록에 추가합니다.  석재헌님의 블로그 가기   

무언가 오해하신 것 같습니다.

미디어 파일에서 PCM 데이타를 불러오든, 혹은 WaveIn 장치를 통해서 PCM 데이타를 가져오든지, EQ 처리하는건 똑같습니다.

 

데이타가 들어오면 FFT 처리를 해서, 특정 주파수를 필터링하거나, 조작해서, 다시 역으로 연산을 해서 PCM데이타를 가져와서, 이 것을 WaveOut 장치에 넘겨주는 것입니다.

 

참고로 말씀드리면, 모든 미디어 플레이어의 구조는 게임구조와 유사한데..

 

while( true )

{

    // read data

    // decode data

    // EQ or user data processing

    // sound out

}

 

이런 형태로 되어 있습니다. 따라서, 미디어 파일에서 데이타를 가져오는 부분과 WaveIn 장치에서 데이타를 가져오는 것은 거의 동일합니다.

오히려, 미디어 파일의 경우는 디코딩을 해야 하는 일이 부지기수지만, WaveIn장치에는 그런 과정도 없기 때문에, CPU 파워도 덜 먹고, 일도 더 쉬어 질 것 같군요.

 

FFT에 대한 소스는, 이 곳 자료실에도 있습니다. 한 번 참고해 보시길 바랍니다.

 

이 글에 평점 주기:  
  2006-04-18 오후 7:37:59   /  번호: 570494  / 평점:  (-)  
 Re: ...  오승우 / codemage  
오승우님께 메시지 보내기  오승우님을 내 주소록에 추가합니다.  오승우님의 블로그가 없습니다  

이퀄라이저 구현 소스있으시면 자료실에 올려주세요 ;ㅁ;

 

파일 스트림에서 디코딩하든 버퍼단위로 디코딩하게 되있습니다.

 

이때 지정한 콜백함수를 호출하여 DSP처리하는게 일반적인 방법입니다.

 

BASS, fmod도 이런식으로 지원을 해줍니다.

 

이렇게 넘어온 PCM data를 FFT변환 -> 가공 -> 역FFT 이런식이 되겟군요

 

DirectMusic의 ParamEQ로 할 수도 있는데 기능이 많이 딸리죠

 

자료실에 제가 올린 소스에서 CWmDecoder에서 onPCMData 호출하는쪽 보시면 FFT까지 해주니 참고가 되겠네요

 

BitPerSample을 부호있는 8비트로 변환하게 되있으니 참고하세요 (소니끄 인터패이스에 맞추다 보니...)

 

이 글에 평점 주기:  
  2006-04-19 오전 12:35:41   /  번호: 570561  / 평점:  (-)  
 Re: ...  박종호 / zard7351  
박종호님께 메시지 보내기  박종호님을 내 주소록에 추가합니다.  박종호님의 블로그 가기   

http://www.codeproject.com/audio/winamp2api.asp

 

http://www.codeproject.com/audio/Effecto.asp

 

한번 이 자료 확인해 보세요...

이 글에 평점 주기:  

 

2.

2005-04-22 오후 12:27:06   /  번호: 513299  / 평점:  (-) category: Sound  /  조회: 341 
 wave data에 equalizer적용시키고 싶습니다. 정성훈 / NeoKafka  
정성훈님께 메시지 보내기  정성훈님을 내 주소록에 추가합니다.  정성훈님의 블로그가 없습니다  

 먼저 읽어주셔서 감사합니다.

 

제가 하고 싶은 것은 wave data에 equalizer를 적용하려 합니다.

 

 

mp3 player를 만들고 있는데 mp3 를 디코딩하여 wave data를 가져오긴 했읍니다만

 

이 데이터에 equalizer를 적용하는 법을 잘 모르겠습니다.

 

어떤식으로 적용을 해야 하는지 조언좀 부탁드리겠습니다.

 

제가 모델로 삼은것은 그래택에서 만든 곰오디오라는 (거의 윈엠프랑 흡사한)프로그램의 EQ기능입니다.

 


 

이걸 구현하려합니다...

이 글에 평점 주기:  
  2005-04-22 오후 1:38:23   /  번호: 513314  / 평점:  (-)  
 Re: ... 김우종 / woo119  
김우종님께 메시지 보내기  김우종님을 내 주소록에 추가합니다.  김우종님의 블로그가 없습니다  

MP3에서 wave 데이터까지 뽑아냈다면 거의 다 만든거 아닌가요?

이퀄라이저는 그냥 해당 주파수가 스피커로 보내질때 그 주파수값에 해당하는 값만클 비트맵을

이동시키면 될것 같은데요....

 

 

이 글에 평점 주기:  
  2005-04-22 오후 1:45:43   /  번호: 513317  / 평점:  (-)  
 Re: <답변>  최용국 / wkqlgmltk  
최용국님께 메시지 보내기  최용국님을 내 주소록에 추가합니다.  최용국님의 블로그가 없습니다  

 소스포지에 가셔서 equalizer로 검색하시면 많은 소스를 보실 수있으실겁니다.

31밴드이퀄라이저까지 있는것도 봤는데 아무튼 쉽게 찾으실 수 있을겁니다.

그럼 즐프하세요..

이 글에 평점 주기:  

 

'- 음악과 나 - > 『 짬 통 』' 카테고리의 다른 글

wave 변환  (0) 2006.05.06
음악파일 주파수 추출  (0) 2006.05.06
About, Dr. Mac  (0) 2006.05.05
배낭 채우기 알고리즘...  (0) 2006.05.05
5월 2일 간단히. C++  (0) 2006.05.03