작곡 프로그램 개발 일지 25

2023. 11. 17. 19:58GAME/Unity

불편한 사항에 대해서 논의를 해 본 결과, 샘플을 미리 만들어두고 클릭을 하면 코드 진행이 딱 하고 들어가는게 있으면 어떨까라는 의견이 나왔다. 

 

일단 생각을 해 보면 구현이 가능하다. C코드를 찍는다고 하면 1트랙에 도 2트랙에 레 3트랙에 미 이런식으로 만들어서 넣어주면 되니까. 하지만 구조적으로 한 트랙에 동시에 다른 음이 들어올수가 없으니까 '화음' 을 처리하기에 상당히 고전적인 모습이다. 

 

일단 저런식으로 화음을 넣는다고 하고 다시 수정을 해야할 모습이다. 구조상 화음에 상당히 문제점이 많다. 그러기에 구조를 변경해야 할지 좀 고민해봤다 

이런식으로 세로는 음을 쌓고 가로로 진행되는 모습이다. List로 처리를 하면 되겠지 

 

또, 드래그에 관한 지적이 발생하였다... 솔찍히 인정한다 왜냐하면 -2옥타브 도에서 8옥타브 도까지 가려면 120번의 드래깅이 진행되니까. 그래서 생성될 음계를 미리 선택하는것이 좋을것같다. 

 

미를 클릭하고 패드에 터치하면 미가 생길것. 

 

그리고 터치모드라고 하나의 노트를 터치해서 위치를 교체하는 기능도 있으면 좋을 것 같다. 일단 이것은 우선순위 최하위

 

또 하나의 기능! 복사 & 붙여넣기 기능으로 조금 더 드래깅, 반복작업을 줄일 수 있을것이다. 

 

결론적으로 샘플 + 보조기능으로 편의성을 충분히 증가시킬것.

 

이정도만 일단 생각해두고 지금은 이게 문제가 아님.. 애초에 진행도 안된상황 그래서 빨리 개발을 끝내고 수정사항 개발 진행하는것이 목표

 

 

그래서 이제 다시 와 보자면 어제 수정된것이 또 안되네...? 

노트 생성부터 잘못되었다.

 

애초에 쓸때는 무조건 Network Order 방식에 따라서 써야하니까 호스트 오더 방식을 적용할 필요가 없다.

어지럽네...

 

이렇게만 처리하면 되겠다. 이제 정상적인 노트가 생성되었는지 체크

재생은 일단 문제 X 

 

이제 이 구조를 그대로 읽어오는지 다시 테스트

 

 

오오...그대로 읽어온다 역시 내 생각은 맞았어!

 

그럼 여러 페이지를 찍어서 다시 테스트

바둑판 모양으로 진행, 불러오면?

실패 ㅋ

 

근본적인 파일 문제는 없음. 그렇다면? 불러오는 과정이 문제.  잠깐 설마 저장하는것이 문제?

 

한칸에 0.5박이니 8분음표 솔, 8분쉼표가 번갈아가며 있는 구조라고 생각했는데 

 

왜 4분음표가 있는것? 이 프로그램은 이런 패턴은 스타카토로 처리하나보다;; 착오가 있었따.

 

자 그럼 이제 현란한 디버깅을 통해서 모든 오류를 고친것같다.

이 부분만 이렇게 바꾸면 될듯..  내 위치에서 델타타임 계산해서 이동.

 

Ok 로드 시스템 완성(?)  

 

스케일이 좀 커지니까 어디가 어디인지 잘 몰라서 디버깅만 겁나했다... 다시끔 구조에 대해 생각해본다.

 

이제 이넘의 midi 파일을 서버에 저장해야하는데?

 

어떻게 Multipart Request를 할 수 있을까. 

유니티 공식 사이트에는 IMultipartFormSection 인터페이스 리스트를 만들고, 'MultipartFormFileSection'으로 요청을 하고 있었다. 첫번째 인수로는 서버에서 받는 이름, 두 번째 인수로는 바이트 데이터 세 번째 인수로는 파일 이름 마지막은 콘텐츠 타입. 일단 테스트로 요청을 한번 보내보자.

정상적으로 들어온다!

 

잠깐, 근데 이렇게 하면 문제가...... 여러 데이터를 어떻게 처리할건지??.... 서버에서 JSON + Multipart 이슈 발생.

 

이렇게 하나는 파일로, 하나는 json으로 보낸다. 이게 멀티파트의 장점이랄까?

서버를 개발한지 좀 되서 기억이 안난다.. 

 

암튼 Json으로 담아서, application/json으로 보내고 

Request Part로 각각의 데이터를 받아서 처리하면 된다. (자세한건 모름)

 

 

자 이제 요청을 할 준비를 해야하는데 먼저 좀 더 확장성? 있게 모든 요청에 대해서 생각해보면

대충 메서드 타입, 요청 주소, 전송할 데이터, 응답받고나서의 행동이 파라미터가 되겠다.

 

그것을 하나로 묶자.

REST 서버니까 이렇게 된다.

대충 이렇게 될 것 같다.

 

이렇게 분기해서 처리 가능!

'GAME > Unity' 카테고리의 다른 글

작곡 프로그램 개발 일지 26  (0) 2023.11.28
작곡 프로그램 개발 일지 24  (0) 2023.11.16
작곡 프로그램 개발 일지 23  (0) 2023.11.15