Skip to content

A python program that converts the midi file to mindustry logic processor code - now version 2.

Notifications You must be signed in to change notification settings

jongs12/Midi2Logic-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Midi2Logic 2

[개요]

미디 파일을 읽어서 Mindustry의 모드 중 하나인 Betamindy의 노트블럭을 연주하는 로직 코드를 짜주는 프로그램의 개선된 버전입니다.

이 프로그램을 사용하려면 파이썬mido 모듈(현재 1.2.10)이 필요합니다. 이 글을 따라 파이썬과 pip을 설치한 다음 명령 프롬프트에 pip3 install mido라고 입력하면 mido 모듈이 설치됩니다.

아직 개발 단계입니다. 더 많은 기능들은 추후 추가할 예정입니다.

[사용법]

2

필요한 것들을 모두 설치한 후에 프로그램을 실행합니다. 프로그램이 설치된 곳과 같은 폴더에 있는 mid 파일의 이름을 입력합니다.

3

음정과 속도를 조절합니다. 음정은 0.5가 1음이며, 1옥타브는 6입니다. 속도는 배속으로 적용됩니다. 음수도 입력 가능합니다. 필요없다면 이 부분은 그냥 무시하셔도 됩니다.

4

변환이 끝나면 블록과 페이지 수를 표시합니다. 블록은 필요한 노트블록의 수, 페이지는 필요한 프로세서의 수입니다.

5

마찬가지로 프로그램이 설치된 곳과 같은 폴더에 로직.txt 파일이 생겨있을 겁니다. 확인은 조금 있다가 하고, 우선 민더를 켜 줍니다.

7

편집기로 들어가서 midi.msav 파일을 불러와줍니다.

8

맵의 편집기를 열고, esc를 눌러서 인 게임 편집으로 가줍니다.

9

맵 구성은 기본적으로 이렇게 되어 있습니다. 그냥 사용하셔도 되지만 필요하다면 수정해도 상관없습니다.

10

중요한 점은 프로세서 중 하나가 반드시 모든 노트블록과 스위치(3개), 메모 블록과 메모리 셀(각각 1개)에 연결되어 있어야 한다는 것입니다.

6

그 후 아까 보았던 로직.txt 파일의 내용(0번 페이지)을 복사(Ctrl+ACV)해서 프로세서에 붙여넣어줍니다.

11

나머지 프로세서는 노트블록과 메모리 셀에만 연결되어 있으면 됩니다.

13

다른 페이지를 불러와서 아까와 같이 복붙해줍시다.

12

다 했으면 맵을 좀 꾸미고 나서 저장하고 나와줍니다.

1

사용자 지정 게임을 시작해서 감상하시면 됩니다.

[Sheet2Logic]

이것도 전작과 비슷합니다. 다만 아직 개발 단계이기 때문에 핵심적인 기능만 들어 있고, 몇 가지 간략화된 부분이 있습니다.

파일을 읽어서 프로세서 코드로 변환하는 것은 Midi2Logic과 비슷하지만, 읽는 파일이 mid가 아닌 txt 파일이라는 차이가 있습니다. 미디와 관련이 없기 때문에 mido 모듈은 필요없습니다.

txt 파일은 직접 작성해 주어야 합니다. 아니면 다른사람이 만든걸 가져오던가요. 이때 인코딩은 반드시 UTF-8이어야 합니다.

1

악보는 '트랙'을 기준으로 나누어지며, 연주 시에는 모든 트랙이 동시에 재생됩니다.

트랙 뒤에 뭔가가 오면 해당 트랙의 노트는 악기가 10(드럼)으로 고정되며 음정 변환의 영향을 받지 않습니다. 이 기능은 프로세서에 코드를 처음 붙여넣었을 때 적용되지 않는데 악기를 한번 바꾸면 적용됩니다.

'쀒쀒!'은 그냥 예시입니다. 실제로는 띄어쓰기 빼고 뭐가 와도 상관없습니다.

트랙을 이루는 요소에는 노트와 템포가 있는데, 사진과 같이 노트는 계이름을 한글로 쓴 다음 음높이(옥타브)를 띄어쓰기 없이 입력합니다. 그 다음 한 칸 띄우고 몇 박자 동안 연주할 것인지(연주 후 몇 박자 동안 쉴 것인지) 입력합니다. 검은 건반의 계이름은 #만 지원합니다. 템포는 계이름이 올 자리에 대신 BPM을 입력하면 됩니다.

캡처

Sheet2Logic에만 있는 기능으로, 노트 또는 템포가 올 자리에 #로 시작하는 무언가가 오면 변환된 로직 코드에서 print 블록으로 그 위치를 표시합니다. 사실 개발자용으로 만든 거라 크게 중요한 기능은 아닙니다.

2

그 이후는 Midi2Logic과 같으므로 생략하겠습니다.

[Midi2Sheet]

이것도 Midi2Logic과 유사하지만, 로직 코드로 바로 변환하는 것이 아닌 Sheet2Logic과 연동 가능한 악보로 변환한다는 차이가 있습니다. 변환된 악보의 이름은 미디의 이름과 동일합니다.

아직 불안정하지만, 그래도 멀쩡히 작동은 하니(...) 업로드합니다.

About

A python program that converts the midi file to mindustry logic processor code - now version 2.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages