문제

미디 사운드를 만드는 작은 앱을 만들고 싶습니다. 나는 프로그래밍에서 사운드를 다루지 않았으므로 기본적이고 좋은 문서를 가지고있는 것으로 시작하고 싶습니다. 나는 가장 편안하고 처음에는 자신을 압도하고 싶지 않기 때문에 Python을 고수하고 싶습니다.

내 시간은 Windows와 Ubuntu 사이에서 약 50/50 정도 나누어 지므로 두 플랫폼에서 "그냥 작동"하는 것이 정말 도움이 될 것입니다.

제안이 있습니까?

도움이 되었습니까?

해결책

미디 유틸 라이브러리 (호스팅 여기 Google 코드에서)에서 원하는 작업을 수행합니다. 순수한 Python 라이브러리에서 MIDI 파일을 작성하십시오. 일단 좋은 점 (그리고 전체 공개 : 저는 저자입니다)은 노트 온 및 노트 오프와 같은 낮은 수준의 중간 이벤트를 추적 할 필요가 없다는 것입니다.

예를 들어 메모를 작성하는 예로 다음과 같은 작업을 수행합니다.

MyMIDI = MIDIFile(1)
track = 0
channel = 0
pitch = 60
time = 0
duration = 1
volume = 100
MyMIDI.addNote(track,channel,pitch,time,duration,volume)

도움이 되었기를 바랍니다

다른 팁

MIDI 파일을 생성하기 위해 순수한 파이썬 라이브러리를 찾고있었습니다. MXM의 파이썬 미디 라이브러리 정확히입니다.

에서 이 dzone 스 니펫, 위의 라이브러리의 단일 파일 버전이 있으며 smidi.py (여기서 gist'd 후손)

사용법은 매우 간단합니다.

>>> import smidi
>>> m = smidi.MidiOutFile('out.mid')
>>> m.header()
>>> m.start_of_track()
>>> m.update_time(0)
>>> m.note_on(note=0x40)  # single note
>>> m.update_time(192)
>>> m.note_off(note=0x40) # stop it after 192
>>> m.update_time(0)
>>> m.end_of_track()
>>> m.eof()

아마도 Windows에서 작동합니다 (원래 예제가 사용하는 것처럼 C:\out.mid 출력 파일 이름으로), 그리고 나는 OS X에서 테스트했습니다.

Pyportmidi Portmidi의 Python 래퍼이며 "실시간 MIDI 컨트롤을위한 크로스 플랫폼 C 라이브러리"로 묘사됩니다. 나는 그것을 직접 사용하지 않았지만 매우 유망한 것 같습니다. MIDI 데이터를 실시간으로 보낼 수 있다는 명시적인 언급.

MIDI를 생성하거나 MIDI 파일을 프로세스하기 만하면됩니다. Mingus, 그것은 훌륭한 패키지이며 화음, 코드 진행, 스케일 등과 같은 훨씬 더 높은 추상화를 허용합니다.

위키에 나열된 8 개의 패키지를 시도했습니다 http://wiki.python.org/moin/pythoninmusic. 나는 음악 21을 발견했다.http://web.mit.edu/music21/) 였다

  • 가장 포괄적입니다
  • 최고의 튜토리얼
  • Windows에서 가장 쉽게 설치합니다

그러나 단순성에 대한 귀하의 요청에 관해서는 가장 간단한 것이 아니라고 생각합니다. 그러나 나는 다른 프로그램 중 하나를 강력한 방식으로 MIDI 파일을 읽을 수 없었습니다 (나는 다양한 이상하고 멋진 MIDI 파일 형식이 매달려 있습니다).

MIDI 지원 (In and Out)은 Pygame 1.9에 추가되었지만 주로 개발 단계에 있으며 아직 문서화되지 않았지만 작동합니다.

MIDI 지원은 Pygame 후계자 PgreLoaded (또는 Pygame2)에서도 개발되고 있습니다.

또한 Pygame은 타이틀에 '게임'을 가지고 있지만 그 사용은 게임 디자인을 넘어서 훨씬 늘어납니다.

보다 csounds.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top