Pergunta

Eu quero fazer construir um pequeno aplicativo que cria sons MIDI. Eu nunca lidei com som em programação, então eu gostaria de começar com algo que é básico e tem uma boa documentação. Eu quero ficar com Python desde que eu sou o mais confortável com isso e não quero me oprimir, inicialmente.

Meu tempo é dividida cerca de 50/50 entre o Windows eo Ubuntu assim algo que "simplesmente funciona" em ambas as plataformas seria realmente útil.

Todas as sugestões?

Foi útil?

Solução

A Biblioteca MIDIUtil (hospedado aqui no Google Code) faz o que quiser: gravação MIDI arquivos de uma biblioteca Python puro. Uma vez coisa agradável sobre ele (e divulgação completa: Eu sou o autor) é que você não tem que manter o controle de eventos de nível médio mais baixo, como nota-on e nota-off: ele manipula-los para você.

Como um exemplo para escrever uma nota, você faria algo assim:

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

Espero que isso ajude

Outras dicas

Eu estava procurando por uma biblioteca de Python puro para gerar um arquivo MIDI, biblioteca de mxm Python MIDI é exatamente isso.

A partir este dzone trecho , há uma versão da biblioteca acima de arquivo único , smidi.py ( gist'd aqui para a posteridade)

O uso é bastante simples:

>>> 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()

Provavelmente funciona no Windows (como o exemplo usa originais C:\out.mid como o nome do arquivo de saída), e eu testei no OS X

pyPortMidi é um pitão invólucro de portmidi, que é descrito como um "uma biblioteca C multi-plataforma para realtime controle MIDI". Eu não usei isso mesmo, mas parece muito promissor. menção explícita de ser capaz de enviar dados MIDI em tempo real.

Se você só precisa gerar arquivos MIDI ou midi processo, tente mingus , É um grande pacote e também permite abstrações muito mais elevadas, tais como cordas, progressões de acordes, escalas e assim por diante.

Eu tentei oito pacotes listados no wiki http://wiki.python.org/moin/PythonInMusic . Descobri que o que music21 ( http://web.mit.edu/music21/ ) foi

  • o mais abrangente
  • o melhor tutorial
  • mais fácil de instalar no Windows

mas como ao seu pedido para simplificar, eu acho que não é o mais simples. Mas eu não poderia obter qualquer um dos outros programas para ler arquivos midi de forma robusta (eu tenho uma variedade de formatos estranhos e maravilhosos de arquivo midi que penduram ao redor)

Suporte Midi (dentro e fora) foi adicionado para pygame 1.9, mas é principalmente na fase de desenvolvimento e não é muito bem documentado ainda, mas ele funciona.

apoio

Midi também está sendo desenvolvido no sucessor pygame, pgreloaded (ou pygame2).

Observe também que embora Pygame tem 'jogo' no título, seus usos vão muito além do design do jogo apenas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top