MMF 파일 구조와 조작

MMF는 야마하에서 개발한 모발용 사운드 규격입니다.SMAF(Synthetic music Mobile Application Format)이라고 하구요.

확장자는 .mmf입니다.

폰에서 익히 들어본 벨소리도 모두 mmf구요. 모바일 컨텐츠들 거의 모두가 mmf을 사용하여 구현합니다.

 

mmf는 미디 데이터와 WAV데이터가 포함되어 구성되는데..

요개 바로... 비.공.개입니다.

 

야마하에서 협력업체외에는 공개를 하질 않았는데, 요기에 대해 나름 파악한 내용을 공개하겠습니다.

mmf 포맷을 알면, 폰 어플 안에서 사운드를 조작할 수 있거든요.

 

우선, 야마하 홈페이지에 가면 개략적인 mmf의 추상구조에 대해 명시되어 있습니다.

http://smaf-yamaha.com/jp/what/s10.html


 
뭐 있어보이긴, 하지만 참, 도움 안되는걸 올려놨죠?

 

정말 필요한건

뭐가? 어디에? 무슨형식으로? 몇 btye로 쓰여있는냐? 인데요.

 

야마하에서야 통제를 위해 이걸 공개안했겠지만,

실은 구글링을 좀 하면 리눅스용 동영상 컨버팅 라이브러리인 FFmpeg안에서 mmf에 대해 찾을수가 있습니다.

http://cekirdek.uludag.org.tr/~ismail/ffmpeg-docs/mmf_8c.html

(FFmpeg에서는 정말 없는게 없더군요.. 심지어는 png나 k3g까지 있습니다.. --;;)

 

아무튼, 위를 간단하게 정리하면 mmf 내부는 아래와 같습니다.

 

test.mmf이라면..

 

-----------------------------------------------

파일 인포 청크 (클래스 타입, 제작 플레이어 정보,  카피라이트 등)

-----------------------------------------------

트랙 인포 청크(포맷, 스퀀스 타입, 웨이브 비트, Time base-D...등등)                   <-- 여기까지가 헤더 정보

-----------------------------------------------

음원 노트들.. (midi)                                                                                      <-- 요개 본 트랙이 되겠씀.

PCM 데이터들..(wave)

-----------------------------------------------

 

16진수 헥사코드로 열면 아래와 같습니다.


(잘 안보이면 클릭해서 확대해 보세요)

 

대강 이러이러~ 합니다~

 

미디에 좀 안다면 mtsq같은걸 보고 .mid 포맷과 유사하다는걸 눈치채셨을겁니다.

뭐, 야마하에서 만든거니깐요.

헤더를 빼고 PCM데이터를 빼면, 미디랑 비슷한 구조로 되어있습니다. 

용량이 쫌 주는걸 봐서는 약간 바뀌긴 바뀌는것 같은데.. 그건 잘 모르겠습니다.

 

전 미디에 대해 잘 모르거든요.. 실은 악보도 잘 볼줄 몰라요. -_-;;;

 

미디 포맷에 대해 좀 안다면 헥사코드를 따라가며 직접 음원 노트를 고치겠습니다만, 그건 무리니깐, 간단하게 수정한다면요.

 

간단하게

케이크 워크 같은 미디 작곡 어플에서 mid 파일 2개를 열어서 만들어보고..


 
요걸 mmf로 만든뒤에..
악보 하나만 놓고 차근차근 찾아보면요.
 
 

간단하죠?
 
 
이제 트랙안에 47을 모조리 48로 바꾸면
'시'는 '라'로 바뀝니다.
 
비슷한 방법으로 악기나 음정... 뭐, 어쩌면 트랙끼리도 바꿀수 있을것이라 생각됩니다.(고건 용량도 맞춰줘야 겠군요)
 
문제는 파일오류검사용 CRC인데...
 
실은 CRC소스 마져도 FFmpeg에서 찾을 수 있습니다.
(오픈소스 은둔고수들은.. 정말..무섭...;;;)
 
mmf 포맷 종류로 버젼별로.. MA1, MA2,... MA5로 나가는데,
용량제한하구, 악기같은거 제한 빼고는 거의 같더군요. 포맷은 크게 다르지 않습니다.
 
 
점더 구성은 알아봐야겠습니다만,
요런식으로 역추해가면 MMF를 제어가 가능합니다. 좀더 하면 미디 변환도 가능할수 있을지도 모르겠군요~
 
아래, 일본인블로그를 보면 mmf를 분석한 내용을 좀더 찾을 수 있습니다.
(정확히는 mmf의 상위 포맷인 saf입니다. saf CRC는 KDDI규격을 쓰나모르겠네요)
 
 
문제는...
 
딱히 쓸일이 없다는 점이... -_-;;;
 
실은 어플에서 사운드 제어 할 일이 거의 없더든요. --;;;
 
팀장이 이걸 뭐하러 하냐고 하던데..뭐, 쩝..
나중에 쓸일이 있겠죠. 뭐
실은 잘난척 하는 동료직원이 끙끙대길래 골려줄려고 한거에요. ㅎㅎㅎ
 
 
제가 만든 소스는  공개는 하지 않습니다. 그래도 비공개 포맷이니깐요.
위 링크따라 FFmpeg 소스 차근차근 따라 가보면 어렵지 않게 구현 할 수 있습니다. 저두 그거 보고 했거든요.

by 중원 | 2007/02/04 18:35 | mobile programming | 트랙백(3) | 덧글(12)

트랙백 주소 : http://titan515.egloos.com/tb/23224
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from Percocet 93-.. at 2009/05/07 14:24

제목 : Percocet.
Pharmacokinetics of percocet. Percocet 93-490. Percocet sexual effects. No prescription percocet. Can percocet cause nightmares. Percocet. Percocet vs. lortabs. Percocet shipped cod no prior. How long is percocet in your system....more

Tracked from Online presc.. at 2009/06/04 10:40

제목 : Hydrocodone bitartrate.
Hydrocodone. Hydrocodone apap. Hydrocodone apap5mg 500mg. Buy hydrocodone online. Buy hydrocodone without a prescription. Taking low dose of hydrocodone while pregnant....more

Tracked from Buy watson b.. at 2009/06/05 07:39

제목 : Http pills.viptemplates.com ..
Buy soma online order soma and get cheap soma. Buy soma. Buy soma online. Soma online soma buy soma online. Buy domain onlinevcvpl soma. Cyclobenzaprine buy prescription soma zanaflex....more

Commented by 사라뽀바 at 2007/02/14 11:14
미디파일을 케이크 워크에서 불러왔습니다.

벨소리를 만드려구여 그래서 미디포멧 0 으로 새로 저장했고여.

ATS-MA5-SMAF 로 미디파일을 임포트해서 저장하려는데..

불러오면

Can not convert

- Program Change is specified at the timing of sounding note

이런 문구가 뜨고 불러오기가 되기는 하나 새로저장 (mmf파일생성을 위해서)

을 하면 다시 문구가 뜨면서 저장이 안됩니다..



어떻게 해야 하지여??? 케이크 워크에서 무언가 수정을 해주어야 하는건가여?

아니면 ATS-MA5-SMAF에서 옵션을 다시 설정을 해주어야 하는건가여??

정말 mmf로 바꾸고싶은 파일인데 도움 요청합니다
Commented by wolfpi at 2007/02/14 16:12
PC환경에서 간단히
미디를 mmf로 변환할려면
mmf 변환툴을 이용하시면 됩니다.

mmf 변환툴은 야마하 홈피에서 다운 받아도 되고,
http://smaf-yamaha.com/tools/index.html
PsmPlayer이라는 공개툴을 사용하셔도 됩니다.

단, mmf 포맷마다 규격(악기수 제한, 용량 제한) 따위가 있고,
넣고자 하는 폰마다도 규격(보통 포맷하구 용량제한)이 있으니
이건 스펙을 참조하셔야 합니다.

켁 웤은 제가 써보질 않아서 모르겠는데,
아마 규격문제가 아닐까 싶네요.
Commented by 사라뽀바 at 2007/02/14 20:32
답변감사합니다.
케이웍에서는 미디파을을 제가 편집을 하려고 쓴것이고여.
ATS-MA5-SMAF프로그램에서 규격문제로 문구가 뜬거 같은데
어떻게 해야할지 모르겠어여^^;
그냥 다른 미디파일 하고 싶지만 꼭 이 미디파일을 변환하고 싶어서여..
우선 님께서 가르쳐주신 공개툴로 해보겠습니다.
Commented by 중원 at 2007/02/21 00:51
^^
Commented by 김상훈 at 2007/04/27 02:38
mmf 파일구조에 관심이 많은 불쌍한 중생입니다.
이것저것 만들면서 공부하는데.. 알송을 카피해보는데..힘드네요.
네이버 블로그에서 여기까지 흘러왔습니다.
좀더 자세한 힌트를 얻을수 없을까요.^^
부탁드리네요..^^

moningday@hotmail.com

ps. 참고로 전 이쁘고 섹시한......................... 아저씨에요 ㅡㅡ;;
Commented by 중원 at 2007/04/29 14:39
딱히 저두 위 이상으로 구현해보질 않아서 더 이야기 드리긴 어렵군요.
공개 소스인 FFmpeg를 참고시면 많은 도움이 될겁니다.
듣자하니 곰플레이어도 그쪽 소스를 이용했다고 하더군요.
Commented by 이거이거... at 2008/01/29 13:38
이거 좀 틀린부분이 몇군데 있네여~mmf format 조사하면서 처음에 위 내용 참고 했는데.. 다 조사하고 보니까... 여기 좀 틀린데가 있네여.... 구글 에서 잘 검색하시면.. 야마하에서 만든 smaf 에 관한 일본어로 된 pdf 자료 있는데 어차피 표같은걸로 나왔으니까.. 차라리 그거 참고 하시는게 나을듯함니다....
Commented by 중원 at 2008/02/14 23:37
네~ 저두 나중에 보니깐
야마하에서 배포하는 비공개 스펙 문서에
청크 바이트 단위까지 잘 나온게 있더라구요~

협력업체용 비공개 문서라는데..
뭐, 워낙 범용적인 포맷이니 구글링 하면 어렵지 않게 구할수 있는듯합니다~
Commented by 구해요 at 2008/08/27 16:54
pdf 파일 구할수없을까여?
구글을 뒤져봐도 안나오네요 ㅜㅜ
알려주심 복 받으실거에요오~ ㅜㅜ
Commented by 중원 at 2008/09/01 14:12
아쉽게도.. 저도 지금은 온라인 쪽에서 일해서
가지고 있질 않습니다. --;
큰 모바일 회사에서는 대부분 내부 자료로 있을텐데요..
Commented by 여랑 at 2009/08/16 00:42
헤에- 좋은 정보 감사합니다.

마침 커버팅중에 기존의 MA5리소스를 주물럭 거리기 위해 관련 정보를 찾고 있었습니다만, 도움이 될 듯 하네요.
Commented at 2009/11/08 17:09
비공개 덧글입니다.

:         :

:

비공개 덧글

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