sharksym's MSX World

sharksym.egloos.com

포토로그


구글 애드센스 (블로그 기본)


turboR LED로 오디오 레벨 미터를!! by sharksym

파나소닉 A1ST, A1GT 모델은 본체 상단에 6개의 빨간색 LED가 붙어있습니다.

전원 및 FDD 사용 LED 두개를 제외한 나머지 4개는 SW적으로 ON/OFF 가능합니다.
아래 사진 보셔요~



MRC 게시판을 뒤져보니,
 스위스 데모 프로그램에서 오디오 레벨 미터 처럼 사용했다는 얘기가 나오더군요.

그.래.서. 저도 한번 만들어봤습니다.

각 LED는 아래 IO 포트를 통해서 컨트롤 가능합니다.
레지스터가 LED외의 기능과 함께 들어있는 경우는, 다른 BIT 값이 변경되지 않도록 읽고/써야겠네요.


#A7 포트를 보면, PAUSE / 고속모드 두개의 LED도 실제 HW 동작과 상관없이 컨트롤 된다는걸 알 수 있죠?
그리고 현재 LED 상태를 확인하려면, 포트가 아닌 WORK AREA의 #FCB1을 읽으면 됩니다.
만약 A7 레지스터를 BIOS 루틴(고속 모드 전환)을 쓰지않고 강제로 쓰는 경우, #FCB1에도 동일한 값을 써줘야겠지요.

LED 컨트롤은 준비가 됐구요.
IMSP, MPXP 등의 음악을 재생하는 경우, 현재 출력되는 오디오의 레벨을 알려면,
외부 스피커 앰프로 부터 정보(?)를 받아야 하는데요.
이걸 HW로 만들려면 귀찮겠지요?

그래서, 편법을 사용합니다.
터보알은 본체에 MIC가 내장되어 있어서, 내부 DAC 및 비교기(Comparator) 를 통해 8BIT PCM data를 얻을 수 있습니다.
주기적으로 MIC로 들어오는 신호를 샘플링해서, 적당한 레벨에 맞춰 LED 4개를 껐다켰다 하는거죠. ㅎ.ㅎㅋ
4개 LED니까 16단계 레벨을 표시할 수 있겠습니다요... (잠시 헷갈렸네요. 레벨은 0,1,2,3,4 밖에 표시가 안되는데..ㅋㅋ)

실제 코드는 M 파일 매니져 내의 IMSP, MPXP 루틴에 넣어서 돌려봤습니다.
아래 동영상 처럼 스피커 소리에 맞춰 LED가 ON/OFF 됩니다.
(참고로 다음 버전 M 릴리즈에는 LED 기능 들어가게 되겠습니다.)

MP3 플레이한거라서, 유툽에서 짤릴지 모르니 빨리 감상하셔요~ ㅎ.ㅎ;







Title MSXrating email rss

CCL

크리에이티브 커먼즈 라이선스
Yeongman Seo에 의해 작성된 저작물은, 별도의 라이선스 조건이 없는 경우 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

구글 애드센스 (세로 큰직사각형)

ClusterMaps

통계 위젯 (화이트)

825
160
142096

이 이글루를 링크한 사람 (화이트)

23