Sto cercando un modo per cambiare le singole note in un file MIDI preesistente in Python. Ho trovato molti pacchetti che consentono la scrittura di file MIDI, ma non alterano quelli esistenti. C'è un pacchetto che potrebbe aiutare con questo o un modo di analizzare l'esadecimale del file MIDI per realizzare questo?Manipolare file MIDI in Python
risposta
Probabilmente non è possibile "modificare i file esistenti" se si intende modificarli sul posto.
Ma è possibile solo analizzare il file MIDI, modificarlo (in memoria o in modo iterativo) e scriverne uno nuovo.
Non hai menzionato quali pacchetti hai guardato per scrivere file MIDI, ma tutti quelli con cui ho mai avuto a disposizione possono anche leggere file MIDI, quindi probabilmente hai già tutto ciò di cui hai bisogno.
E non c'è niente che richiede di utilizzare lo stesso pacchetto sia per la lettura che per la scrittura. Ad esempio, è possibile utilizzare midiparser
per la lettura e python-midi
per la scrittura; il codice per mappare i messaggi MIDI dal formato di un pacchetto all'altro è banale.
Il programma open source MIDICSV converte il MIDI in testo CSV e viceversa. Puoi aprire un file CSV come testo e modificarlo facilmente usando Python, senza dover contare su alcun modulo speciale.
Per informazioni sul protocollo MIDI, vedere:
In un recent project ho trovato questo lavoro molto facile da fare.
La maggior parte dei pacchetti in grado di scrivere file MIDI può anche leggerli. In caso contrario, una rapida [ricerca PyPI] (https://pypi.python.org/pypi?%3Aaction=search&term=midi&submit=search) mostra un sacco di opzioni, come 'midiparser'. – abarnert