레이블이 NWC인 게시물을 표시합니다. 모든 게시물 표시
레이블이 NWC인 게시물을 표시합니다. 모든 게시물 표시

2013년 3월 10일 일요일

NWC 구조 연구 - 개요

명심! 언제든지 바뀔 수 있는 문서입니다. 혹시 공동연구를 하실 분이나 아이디어 제공해 주실 분은 k2pa00@gmail.com으로 메일 보내주세요.

2013년 3월 10일자까지 문서

NWC는 비트플립이 전부 다더군요.

맨 뒤 4바이트는 여러 가지 상황에 따라서 수가 바뀝니다. 이 중 앞의 2자리는 (아직까지는) 불규칙합니다. 뒤의 2자리는 총 원소의 개수인 것 같은데... 음의 위치에 따라서도 달라집니다(높아질수록 1씩 줄어듦). 이 4자리의 숫자는 비교적(?) 불규칙하게 나타납니다. 그리고 앞의 규칙적인 부분까지는 다 정확하게 써도 이 부분이 틀리면 망합니다. 파일이 깨져버린단 말이에요.
정말 깊이 연구해야 하는 부분입니다. 따라서 저는 이 부분을 Checksum(체크섬)이라고 부르기로 했습니다. 높이나 이런 거에서 차이나는 걸 봐서 다 더한 값이라고 예상해서, sum(합)이라는 말을 붙였습니다. 아직까지 완전 불규칙한 앞의 2바이트를 Upper Checksum, 그나마 덜 불규칙한 뒤의 2바이트를 Lower Checksum이라고 부르겠습니다.

4분 온음표 노트는 60 26 XX 2F(가온다까지), 60 E6 XX 5E(가온다 초과)입니다. XX 부분은 바이트 플립 되어 있습니다. 가온바와 가온나는 NWC에서 나타내는 방법이 따로 있지만, 저는 읽는 게 목적이 아니라 쓰는 게 목적이고, 꼭 저 두 음을 그 방법으로 나타내지 않아도 잘 되었습니다. 그런 고로 나중으로 미루거나 하겠습니다.

오늘은 이상! 연구가 완전히 완료가 된 부분은 개요가 아닌 곳에 따로 쓰겠습니다.

P. S. 공동연구자 너무너무너무너무 필요해요! NWC 파일 구조에 관해 관심있는 분이라면 누구든 환영합니다.

2013년 2월 4일 월요일

NWC 구조 연구를 시작합니다.

그 어떤 곳에 찾아봐도 없어서, 제가 직접 연구하기로 했습니다.
NoteWorthy Composer(이하 NWC) 파일의 구조를 샅샅이 파헤치도록 하겠습니다.

제가 학교에서 30분간 파헤쳤는데 NWC의 스트링 구조를 알겠습니다. 정확하게 안 건 아니니 다른 데 쓰지 마시고 '그러려니' 하고 봐 주세요.
"ABCDEFG"라는 스트링은
1. 아스키 코드로 모두 변환한다. 41 42 43 44 45 46 47
2. +0x30 71 72 73 74 75 76 77 (이게 약간 애매하단 말이에요.)
3. 각각의 바이트의 비트 순서를 스왑한다. 8E 4E CE 2E AE 6E EE
이렇게 됩니다. 근데 널 문자도 없고, string의 길이를 어떻게 구하는지 몰라서 잘 모르겠습니다.

올리디버거를 사용할 수 있다면 작업 속도가 훨씬 빠를 텐데;; 기술이 없네요...