EACRipper
EACRipper
무손실 앨범 공유에 쓰이는 ExactAudioCopy 결과물(통칭 EAC)을 효율적으로 리핑하기 위한 C++ 기반의 Windows용 프로그램.
(초기의) 가장 큰 목적은 Shift_JIS 인코딩의 Cuesheet를 쉽게 여는 것.
현재 코드가 너무 난잡해서 리팩토링 중이고, 컴포넌트 구조도 완전히 새로 쓰고 있다.
현재 릴리즈된 정식 버전은 0.3.1β. 다음 예정 버전은 0.4.0β.
라이센스
설정 기록
무설치 프로그램이기 때문에 레지스트리를 건드리면 괜히 힘들어지고, 그냥 같은 폴더에 EACRipper.iniEACRipper.conf를 만들어 저장.
컴포넌트
EACRipper 프로그램은 Cuesheet를 이용해 적절한 컴포넌트를 이용하는 껍데기에 불과하며, 실제 파일 동작은 컴포넌트에서 이루어진다.
현재 제공되는 음악 컴포넌트:
- Monkey's Audio (APE) - 읽기, 쓰기 가능
- Free Lossless Audio Codec (FLAC) - 읽기, 쓰기 가능
- The True Audio (TTA) - 읽기, 쓰기 가능 / ID3v2.4로 태깅(추후 설정 지원)
- Wavpack (WV) - 읽기, 쓰기 가능 / Lossless 모드만 제공
- RIFF Waveform Audio Format (WAV) - 읽기, 쓰기 가능 / 태깅 미지원
- Tom's Verlustfreier Audiokompressor (TAK) - 읽기 전용
- MPEG Audio Layer-3 (MP3) - 쓰기 전용 / ID3v2.4로 태깅(추후 설정 지원)
- Ogg Vorbis (OGG) - 쓰기 전용 / VBR 전용(추후 설정 지원), 커버 아트는 COVERARTMIME, COVERART 필드 사용
- CDRWIN Image (BIN) - 읽기 전용 / 데이터 부분이 없는 순수 오디오 이미지만 지원
- DirectSound Output - 쓰기 전용 / 파일 대신 기본 스피커로 음악을 재생(미리듣기용)
0.4.0β부터 지원할 컴포넌트 예정:
- InoutWave - RIFF Waveform Audio Format (WAV)
- InoutAPE - Monkey's Audio (APE)
- InoutFLAC - Free Lossless Audio Codec (FLAC)
- InoutWavpack - Wavpack (WV)
- InoutTTA - The True Audio (TTA)
- InTAK - Tom's Verlustfreier Audiokompressor (TAK)
- OutMP3 - MPEG Audio Layer-3 (MP3)
- OutOggVorbis - Ogg Vorbis (OGG)
- OutAAC - Advanced Audio Coding (AAC)
- OutMP4AAC - Advanced Audio Coding with MP4 Container (MP4)
- OutDS - DirectSound Default Speaker Output
0.4.0β부터 컴포넌트 구조가 수동적인 인터페이스 포인터 할당에서 벗어나 foobar2000 식의 능동적인 컴포넌트 구조로 바뀜에 따라 SDK가 대폭 강화됨. (진행중)
inCue 지원
현재 프로그램상 inCue를 지원할 수 없는 구조라서 리팩토링과 함께 방법을 생각할 계획. inCue 음악 파일을 압축 파일처럼 취급하는 방법이 가장 유력하다.
컴포넌트의 구조가 바뀜에 따라 EACRipper에서 능동적으로 컴포넌트를 찾아 등록하지 않고, 수동적으로 컴포넌트에서 등록하도록 하게 되었으므로 생각하지 않아도 된다.
"inCue 음악 열기"와 비슷한 메뉴가 하나 필요.
압축파일 열기
역시 리팩토링과 함께 구현할 내용.
가장 유력한 방법은 압축 파일 내의 Cuesheet, 음악 파일, 그림 파일만 골라 임시 폴더에 풀어서 그 안에서 Cuesheet, 음악 파일, 커버 아트 파일을 선택하게 하는 것. 단, 이 방법으로는 커버 아트 파일의 편집이 불가능하다. 생각해봐야 할 문제.
프로그램을 끄면 풀린 파일들은 모두 삭제.
커버 아트 자동 포맷 변환/리사이징
리팩토링에 같이 구현할 내용.
BMP to PNG 또는 BMP/PNG to JPEG 옵션을 추가할 예정.
또한 파일이 설정한 사이즈보다 클 경우 강제 리사이징 또는 비율 유지 리사이징 옵션을 추가할 예정.
물론 PNG to JPEG, 리사이징 옵션은 끌 수 있어야 함. (BMP to PNG는 자동)
단 컴포넌트가 아닌 메인 프로그램에 통합. (BMP, PNG, JPEG 코덱 / Bilinear, Bicubic, Lanczos3 필터 등)
freedb 지원
좀 애매한 문제인데, 개인적으로 쓰지 않는 기능이고 무거워지지 않을까 걱정중.
기타
- 커버 아트 저장 방식. 현재는 태그로만 넣고 있으나, 해당 앨범 디렉토리 밑에 Cover.jpg 또는 Cover.png로 저장하는 형태를 선호할 수도 있음.
- 코드 레벨에서 Little Endian 또는 Little Endian 메모리 구조를 에뮬레이팅한 작동 방식의 플랫폼에서만 돌아간다고 가정.
- 인코딩 감지, 변환 등에 쓰이는 ICU 라이브러리만 16M 초과. 프로그램 압축을 진지하게 고려해봐야 한다.
타겟 사양
- OS: 범용 문자셋(유니코드) 기반 Windows (2000, XP, 2003, Vista, 2008, 7 또는 그 이상) / Wine, CrossOver 등의 Windows 프로그램 구동기가 동작하는 OS / ReactOS 등의 Windows 호환 OS
- CPU: 해당 OS가 가동될 수 있는 CPU
- RAM: 해당 OS가 가동될 수 있는 권장량
- VGA: 해당 OS가 가동될 수 있고 더블 버퍼링을 지원하는 모든 VGA
배포 페이지
http://www.hno3.pe.kr/wp/archives/105
저장소
- Git 저장소: http://git.hno3.pe.kr/EACRipper.git
- cgit: http://cgit.hno3.pe.kr/cgi-bin/cgit.cgi/EACRipper.git
- Trac: http://trac.hno3.pe.kr/EACRipper
- github: https://github.com/HNO3/EACRipper
스크린샷
EACRipper 0.2.0α 스크린샷.
EACRipper 0.4.0β 스크린샷.
History
Last edited on 09/03/2011 00:56 by HNO3
Comments (0)