The..........PICTURE.....
IBasicAudio에서 put_Volume을 통해 볼륨조절 시

IBasicAudio 인터페이스(Com오브젝트)는 사운드 관련 처리를 하는 인터페이스입니다.
get_Volume과 put_Volume 및 양쪽(스트레오) 스피커의 밸런스를 맞추는 역할을 하는데요.

문제는 get_Volume과 put_Volume 입출력 값이 -10000 ~ 0 입니다.
(http://msdn.microsoft.com/en-us/library/aa929894.aspx)

무엇이 문제냐 하면 아시다 시피 데시벨은 로그 형태로 나타나기 때문입니다.
그것도 모르고 사용자 입력값을 그냥 넣어줬더니
볼륨이 선형적으로 변하지 않고 최대값부분에서 갑자기 커지는 효과가...

그래서 그나마 선형적으로 조절하기 위해서 아래 루틴 첨가.
--------------------------------------------------------------
// volume은 0~100값을 가진다. (CSliderControl을 통해 가지고 옴)
volume = volume > 100 ? 100 : volume;
 volume = volume < 0 ? 0 : volume;
 volume = (volume * -1) + 100;

 double result = pow( (double)1.1, (double)volume);
 double max = pow(1.1, 100);
 result = -10000 + ((1 - (result/max)) * (double)10000);
 hr = pBasicAudio->put_Volume( result);
--------------------------------------------------------------
4line에서 volume값을 뒤집는 이유는 묻지마세요.. -0-; 귀차니즘...
식을 바꾸려고 했건만 머리가 나쁜 관계로 패스... 잘 작동하니깐...
max를 구하는 pow(1.1, 100) 같은 경우는 define으로 잡으면 편하겠네요...
아님 처음에만 구하도록 지역변수 static으로 둬서 해도 좋을것 같구요
(언젠가 비슷한 것이 쓰일 것 같아서.. 로그,제곱 <-> 선형 )

이상 끝

========================================
추가 : 위의 1.1 값을 1.065 로 바꿔서 하니깐 좀더 부드럽게 되네요.
1.1은 중간(50이상의 volume값)부터 최대 소리가 나버리네...

출처 : 내 머리

by 희돌군 | 2009/05/13 03:09 | ☆컴공부☆ | 트랙백(1) | 덧글(5)
트랙백 주소 : http://glintist.egloos.com/tb/2346721
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from PPang Commun.. at 2009/10/22 11:25

제목 : Directshow : IBasicAudio Vol..
출처 : http://glintist.egloos.com/tag/IBasicAudio/page/1 : 로그 값을 선형적으로 변하게 잘 만들었다. 주의점(위의 내용을 참조하여 구현시 내 경험을 적어 본다) - 최대 값에 도달하는 것을 조정할 필요 있음(1.1 => 1.065 => ? 1.01) - pow(1.1,100)을 미리 계산해서 define해서 사용하여 퍼포먼스 향상 시키자! - 완변하게 적용되지 않을시 고려사항 : WaveOutSetVo......more

Commented by MainBuU at 2009/10/22 11:27
좋은 글 감사히 보고 갑니다. ^^
Commented at 2010/06/03 15:00
비공개 덧글입니다.
Commented by 희돌군 at 2010/06/11 20:12
글쎄요... midi 의 경우는 잘 모르겠네요. 따로 접근을 해야 하나...
Commented by 블루 at 2010/08/23 20:13
잘 보고 갑니다.
Commented by yahan at 2015/04/17 22:09
이글을 보고 해봤는데 만족스럽지가 못했습니다.
그래서 클릭을 100번 해서 값을 알아 냈습니다.
좀 바보같지만 결과는 만족스럽네요.. ㅎㅎ

// DShow Volume Value
int g_vol[101] = {
-10000,-4000,-3390,-3040,-2790,-2600,-2440,-2300,-2190,-2090,-2000,-1910,-1840,-1770,-1700,-1640,-1590,-1530,-1480,-1440,-1390,-1350,-1310,-1270,-1230,-1200,-1170,-1130,-1100,
-1070,-1040,-1010,-980,-960,-930,-910,-880,-830,-840,-810,-790,-770,-750,-730,-710,-690,-670,-650,-630,-610,-600,-580,-560,-550,-530,-510,-500,-480,-470,-450,-440,-420,-410,
-400,-380,-370,-360,-340,-330,-320,-300,-290,-280,-270,-260,-240,-230,-220,-210,-200,-190,-180,-170,-160,-150,-140,-130,-120,-110,-100,-90,-80,-70,-60,-50,-40,-30,-20,-10,-5,0
};

:         :

:

비공개 덧글






◀ 이전 페이지 다음 페이지 ▶



-사진인생- 세번째 이야기
by 희돌군
메뉴릿
최근 등록된 덧글
sablon kaos solo h..
by sablon kao at 11/29
Dapatkan pinjaman..
by adira at 02/26
Dapatkan pinjaman..
by adira at 02/26
죄송하지만 ㅂ ㅅ 같..
by ㅄ같다 at 12/02
samsu oil - http://t..
by cialis at 08/25
Terimakasih informa..
by rose at 07/13
Jual Bulu / Buluh Pe..
by rahayu at 07/05
Pijat Panggilan Jaka..
by pijat pang at 04/11
Nice to be visiting ..
by obat asam lambung at 11/21
http://goo.gl/kZYKj..
by silvia at 09/14
카테고리
전체
☆끄적☆
☆삽질☆
☆군대☆
☆낚시☆
☆사진☆
☆느낌☆
☆컴공부☆
☆취미☆
전북대학교
멤버십
불가리아
컴퓨터-Windows
컴퓨터-Linux
컴퓨터-Programming
컴퓨터-Database
컴퓨터-Web
컴퓨터-iPod
미분류
최근 등록된 트랙백
asics gel lyte iii siz..
by Asics Gel Excel 33 -..
asics gel noosa tri 8
by Top Five Most Calm..
new asics running ..
by The Leading Ten ..
asics sneakersas..
by Buy Asics Gel Kinse..
asics gel kayano 19
by The Very Best Foot..
asics gel blur 33asic..
by Reebok Easytones..
asics gel lyte 3
by Best Running Shoe..
asics nimbus 14
by Which Operating Sh..
asics gel noosa
by The Kinds Of Runni..
asics gel upshot
by Mens Asics Runnin..
포토로그
메모장
이글루링크
He is fond of sweet..
푸른나무그늘
병든 냥이의 외로운 거..
까망군
BLUE DEVILS 한 여..
작은별님의 이글루
이글루 파인더

태그
수원화성 vi 하려면 부산여행 mssql ms-sql 스마일 해야 사진 windowmobile D700 지름신 PlatformNotSupportedException 미를친헌재 골목길 미친헌재 창나누기 별자리 헌재 성공 iPod_App 될까 카메라 ipod 롤라이35 windows 웃어요
rss

skin by 아르밍