본문 바로가기

내가 작업한 것들/소프트웨어

FLTK MPG123 GUI Player, v0.1.2.10


 FLTK MPG123 GUI Player 의 장족의 발전이 있었다는 느낌이 드는 버젼이 되어 가고 있어서 블로그에 지속적으로 소개 해 볼까 합니다. 현재 (당연히) 미흡하지만 파일을 끌어서 목록을 만들고, 그 목록을 선택 해서 음악을 재생 할 수 있습니다.

 다만, 내부적으로 모든 음악은 100% shuffle 로 돌기 때문에 목록상 다음에 있는 곡이 재생될 확률은 매우 낮습니다. Shuffle 알고리즘은 C++ 의 STL 내 shuffle 을 사용 하고 있기 때문에, 아마 Apple 측이 사용하는 알고리즘과 그리 다르진 않아 보입니다.



 윈도우 탐색기 에서 재생 하려는 음악 폴더를 끌어다 올리면 위 이미지 처럼 바뀝니다. 여기에 바로 폴더들을 놓으면 자동으로 안쪽에 있는 모든 mp3 를 찾아 목록을 만듭니다. 다만, 이때 너무 파일이 많으면 '응답 없음' 효과가 발현될 수 있으니 !!! (아직 thread 로 만들지 않음) 적절한 크기로 테스트 되는 것이 좋을 듯 합니다.



움악 목록은 재생 컨트롤 부분에 새로 추가된 오른쪽 아래의 三 으로 보이는 부분을 클릭 하면 됩니다. 물론 재생 목록을 보지 않고 바로 재생 버튼을 눌러도 아래처럼 shuffle 목록에서 무작위로 선택된 파일 부터 재생 되게 됩니다. 왼쪽 위의 ▲ 은 프로그램 크기를 커버아트 크기로 자동으로 줄여 줍니다. 이때는 재생 중인 곡의 정보는 보이지 않게 됩니다.



 목록은 아쉽게도 이 부분을 처리 하는 것을 thread 로 만들지 않았기 때문에 다음처럼만 나옵니다, 이걸 만들 시간이 그리 많지 않음을 고려 해서 파일 선택 까지 가능 하다는 것을 고려 해서 봐 주시면 될 듯 합니다.



 위 목록에서 하나 선택 하면 자동으로 바로 그 곡을 재생 하게 됩니다.


 이 프로그램은 100% open source 로 만들어 지고 있으며, 현재 MinGW-W64 64bit 6.3.0 으로 빌드 되고 어 바이너리를 올리고 있습니다. 사용된 다른 소스들은 libmpg123 1.24.0 과, 제가 FLTK 1.3.4-1 을 clone 해서 재배포 하는 fltk-1.3.4-1-ts 등을 사용하고 있습니다.

 오디오 출력은 DirectX sound 를 사용 합니다. 아직 볼륨 조정이나 이퀄라이징 등을 구현하지는 못하고 있습니다만, 시간을 내서 찬찬히 만들어 나가 보도록 하겠습니다.


테크 데모 다운로드

fm123gui_01210_win32_64_bin.7z

[주의] 본 바이너리는 Windows 64bit 에서만 구동 되며, 일부 CPU 에서는 구동되지 않을 수 있음을 고려 해 주시기 바랍니다.


이 프로그램의 목적

 기능이 화려하고 많은 여러 mp3 player 와 달리, 진짜 mpg123을 console 에서 돌리듯이 음악을 듣는 목적에만 충실하고, 내장하는 목록 내에서 100% shuffle 로 음악을 계속 재생 하는 것을 최우선 목적으로 합니다.

 그래서 음악 재생 내 위치 이동같은 빨리감기 같은 기능이 없고, mp3 를 최대한 빨리 메모리에 decode 하여 재생하는 기능이 최우선 기능으로만 만들어 졌습니다.

 또한 GUI 를 여러 OS 에서 구동이 가능한 FLTK 를 사용하여, 추후 Mac OS 나 Linux 버젼 등을 그대로 만들고 있습니다.


오픈소스 참여

 혹시 이 프로그램 개선에 참여 하시고 싶으신 분은 다음 URL 에 갱신중인 소스 개선에 참여를 하실 수 있습니다, 또는 다른 Clone 버젼을 만들어 됩니다.