Simple, de la Croix-Plate-forme de la Bibliothèque MIDI pour Python
Je veux faire construire une petite application qui crée des sons MIDI. Je n'ai jamais eu affaire avec le son dans la programmation, donc je voudrais commencer avec quelque chose qui est de base et a une bonne documentation. Je veux rester avec Python depuis que je suis le plus à l'aise avec elle et vous ne voulez pas de submerger moi-même, d'abord.
Mon temps est partagé à 50/50 entre Windows et Ubuntu, donc quelque chose qui "fonctionne" sur les deux plates-formes serait vraiment utile.
Des suggestions?
- Connexes: stackoverflow.com/questions/507227/...
- Pourquoi ne pas vous marquez votre question que d'y répondre!?
- Votre question n'est pas vraiment clair. Vous ne pouvez pas créer des sons MIDI". MIDI ne pas stocker ou de transmettre le son, seulement le contrôle des données pour MIDI-compatible avec le matériel/logiciel. Je suppose que vous voulez un) parlez-en à d'autres appareils MIDI/logiciel en temps réel à l'aide de l'interface MIDI de votre ordinateur ou b) lire et écrire des fichiers MIDI standard (SMF). Ces deux exigences différentes (bien que de nombreuses applications ont à la fois) et il y a différentes bibliothèques de proposer pour les deux tâches
Vous devez vous connecter pour publier un commentaire.
La MIDIUtil Bibliothèque (hébergé ici à Google Code) est-ce que vous voulez: écrire des Fichiers MIDI à partir d'un pur bibliothèque Python. Une fois la bonne chose à propos de ça (et la divulgation complète: je suis l'auteur), c'est que vous n'avez pas à garder une trace de niveau inférieur la MI événements comme le note-on et note-off: il gère pour vous.
Comme un exemple pour écrire une note, vous feriez quelque chose comme:
Espère que cette aide
for pitch in pitches: midi.addNote(.., pitch, ...)
Je cherchais un pur-bibliothèque Python pour générer un fichier MIDI, mxm du Python MIDI de la bibliothèque est exactement cela.
De cet extrait de dzone, il y a un fichier unique version de la au-dessus de la bibliothèque, smidi.py (gist avais ici pour la postérité)
Utilisation est assez simple:
Fonctionne probablement sur Windows (comme le modèle original utilise
C:\out.mid
que le nom de fichier de sortie), et je l'ai testé sur OS XpyPortMidi est un wrapper Python de PortMidi, qui est décrit comme "une croix-plate-forme de C de la bibliothèque en temps réel de contrôle MIDI". Je n'ai pas utilisé moi-même, mais il semble très prometteur. La mention explicite de pouvoir envoyer des données MIDI en temps réel.
player.write_short(0xE0, 0x00, 0x60)
:/Si vous avez seulement besoin de générer Midi ou traiter des fichiers midi, essayez mingus,
C'est un grand paquet et il permet aussi de beaucoup plus que des abstractions telles que les accords, les progressions d'accords, des gammes et ainsi de suite.
J'ai essayé huit paquets listés sur le wiki http://wiki.python.org/moin/PythonInMusic.
J'ai trouvé que celui qui music21 (http://web.mit.edu/music21/) a été
mais comme à votre demande pour des raisons de simplicité, je pense que ce n'est pas le plus simple. Mais je ne pouvais pas obtenir toutes les autres programmes pour lire les fichiers midi en un robuste (j'ai une variété d'étranges et merveilleuses, les formats de fichiers midi traîner)
Midi (in et out) a été ajouté à pyGame 1.9, mais c'est surtout dans la phase de développement et n'est pas très bien documenté, mais il fonctionne.
Midi est également mis en place dans le pyGame successeur, pgreloaded (ou pygame2).
Également noter que même si pyGame a 'jeu' dans le titre, de ses usages qui vont bien au-delà de simplement la conception de jeu.
Regarder cSounds.