MIDI to text & vice versa
MIDI to text & vice versa
Hallo,
zur nachträglichen Veränderung von MIDI-Dateien (z.B. Tonhöhenveränderungen mit pitch bend) suche ich ein entsprechendes Programm für Linux.
Habe bisher nur midge gefunden. Das kann einen Perl-Text nach MIDI konvertieren. Es funktioniert zwar hervorragend, doch MIDI-files lassen sich damit leider nicht zu Text konvertieren.
Kennt jemand ein solches Programm?
Grüße
Klaus
zur nachträglichen Veränderung von MIDI-Dateien (z.B. Tonhöhenveränderungen mit pitch bend) suche ich ein entsprechendes Programm für Linux.
Habe bisher nur midge gefunden. Das kann einen Perl-Text nach MIDI konvertieren. Es funktioniert zwar hervorragend, doch MIDI-files lassen sich damit leider nicht zu Text konvertieren.
Kennt jemand ein solches Programm?
Grüße
Klaus
- Mitsch
- Power User
- Beiträge: 1226
- Registriert: Mo Feb 20, 2006 11:17 am
- Wohnort: Ludwigsburg
- Kontaktdaten:
Re: MIDI to text & vice versa
Moinsen! Spät dran!
Ich verstehe ehrlich gesagt nicht ganz, was Du machen willst.
MIDI-Dateien pitchen? Du hast 'ne MIDI-Datei und die soll einen Notenwert höher abgespielt werden? So ungefähr?
Grüße!
Ich verstehe ehrlich gesagt nicht ganz, was Du machen willst.
MIDI-Dateien pitchen? Du hast 'ne MIDI-Datei und die soll einen Notenwert höher abgespielt werden? So ungefähr?
Grüße!
- linuxchaos
- Site Admin
- Beiträge: 1312
- Registriert: Mo Mär 03, 2003 9:32 pm
- Kontaktdaten:
Re: MIDI to text & vice versa
bin mir auch nicht so sicher, was gemeint ist. sowas wie transponieren oder anschlagsstärke verändern oder sowas können die sequencer...
grüsse
l.chaos
grüsse
l.chaos
http://www.audiowerkstatt.de
-
- New User
- Beiträge: 15
- Registriert: Mo Apr 25, 2011 1:00 pm
Re: MIDI to text & vice versa
Falls Du ein pitch bend wie beim Gitarrespielen meinst, das kannst Du mit Tux Guitar nachahmen. Song über Dateimenü "import" als Midi-Datei importieren, und da Tux Guitar speziell für Gitarrentabulaturen gemacht ist, kann es solche Gitarren-"Features". Ob beispielsweise Rosegarden das kann, weiß ich nicht. Aber ich bin mir nicht sicher, ob ich Deine Frage überhaupt richtig verstanden habe.
Grüße
Grüße
Re: MIDI to text & vice versa
Naja, du hast sie noch am ehesten verstanden. Es geht natürlich nicht um Transposition. Das könnte ja jeder Sequencer.zoschfrosch hat geschrieben:Aber ich bin mir nicht sicher, ob ich Deine Frage überhaupt richtig verstanden habe.
Es geht darum, die Tonhöhen in einer MIDI-Datei abweichend von der gleichstufigen Stimmung zu verändern. Das geht mit "pitch bend"-Daten. Immerhin kann das Tux Guitar prinzipiell (siehe hier), doch ist das für meine Zwecke nicht genau genug und auch zu mühsam.
Wenn man z.B. mikrotonale oder auch reine Intervalle einsetzen möchte, dann sollten die schon ziemlich genau gestimmt sein.
Für so etwas gibt es vermutlich keinen (freien und graphischen) MIDI-Editor.
Man kann zwar z.B. mit ZynAddSubFx beliebige Stimmungen erzeugen und verwenden, doch die entsprechende Mikrotonalität ist nicht in MIDI abgespeichert sondern in einer Datei, die ZynAddSubFx lesen kann. Man wäre beim Abspielen einer mikrotonalen MIDI-Komposition an diesen Klangerzeuger gebunden, was natürlich zu einschränkend ist.
Also ist das Ziel, Abweichungen von der gleichstufigen Stimmung in den MIDI-Dateien zu speichern, was nur über "pitch bend"-Daten geht. Ich hoffe also wenigstens auf einen textorientierten Editor, mit dem ich in eine MIDI-Datei nachträglich die gewünschten Tonabweichungen einfügen kann.
Grüße
Klaus
Re: MIDI to text & vice versa
Wie du im Bild siehst, kann das ein Sequencer (hier Rosegarden)
http://www.rosegardenmusic.com/images/snap-10.02-3.png
Dazu hat der Sequencer den Matrixeditor (Midisequenz selektieren, Rechtsklick und "im Matrixeditor öffen" wählen)
Dann über das Menü Ansicht->Eventlineal hinzufügen->Pitchbend den im Bild sichtbaren Editierbereich für Pitchbend hinzufügen.
Die Beschreibung bezieht sich auf Rosegarden 1.7.3, bei neueren Versionen dürfte das aber ähnlich sein.
Gruß und ausprobieren
http://www.rosegardenmusic.com/images/snap-10.02-3.png
Dazu hat der Sequencer den Matrixeditor (Midisequenz selektieren, Rechtsklick und "im Matrixeditor öffen" wählen)
Dann über das Menü Ansicht->Eventlineal hinzufügen->Pitchbend den im Bild sichtbaren Editierbereich für Pitchbend hinzufügen.
Die Beschreibung bezieht sich auf Rosegarden 1.7.3, bei neueren Versionen dürfte das aber ähnlich sein.
Gruß und ausprobieren
Re: MIDI to text & vice versa
Danke, das hilft ein Stück weiter. Es treten im praktischen Gebrauch noch Schwierigkeiten auf, mit Rosegarden 10.2:Drumfix hat geschrieben:Wie du im Bild siehst, kann das ein Sequencer (hier Rosegarden)
Bearbeitet man im Lineal für Tonhöhen-Änderung die pitch bends nachträglich, so lassen ich die Veränderungen überraschenderweise nicht abspeichern.
Man kann auch im Menue unter "Editieren->Tonhöhensequenz eingeben" mit "End Wert" eine definierte Tonhöhe eingeben. Möchte man die nachträglich ändern, so wird die vorher definierte Einstellung überraschenderweise ebenfalls nicht mehr angezeigt.
Bisher habe ich noch Schwierigkeiten, bei veränderten Tonhöhen einen hörbaren glissando-Effekt zu vermeiden.
Ich muß aber die Möglichkeiten in Rosegarden noch genauer unter die Lupe nehmen, um festzustellen, inwiefern man damit sinnvoll mit veränderten Tonhöhen arbeiten kann.
Jedenfalls Danke für den Tipp!
Die Entwicklung von openoctave verfolge ich mit Interesse (siehe Thread).khz hat geschrieben:evt. sowas wie openoctave?
Ich vermute mal, momentan wäre es noch zu riskant damit auf Ubuntu Studio zu arbeiten, wenn man überhaupt die Installation hinbekommt. Und solange ich die "creative commons-licensed orchestral sample library" "Sonatina Symphonic Orchestra" nicht auf FluidSynth erklingen lassen kann, ist das Interesse für openoctave ohnehin eingeschränkt.
Hast du Hinweise darauf, daß in openoctave die pitch bends bequem eingegeben werden können? Immerhin wäre das ja für die Posaunen auf der von dir zitierten Seite interessant. Da könnte es schon sein, daß openoctave eine gute Lösung entwickelt hat.
Vielleicht wäre es doch am einfachsten, wenn man eine erstellte MIDI-Datei mit einem Text-basierten Programm nachträglich entsprechend verändern könnte.
Grüße
Klaus
- linuxchaos
- Site Admin
- Beiträge: 1312
- Registriert: Mo Mär 03, 2003 9:32 pm
- Kontaktdaten:
Re: MIDI to text & vice versa
zum text editor:
du kannst dir den midi"stream" in eine textdatei speichern und dann "ganz normal" bearbeiten. wenn man das nicht gewohnt ist, ist das sehr kryptisch (für mich wäre es nix).
und bei muse gibt es (glaube ich) die möglichkeit, sich die daten im list-editor anzeigen zu lassen. keine ahnung, ob man da auch editieren kann.
midi-controller-daten können auch nachträglich auf eine existierende spur aufgenommen werden. müsste auch mit pitch gehen und das würde die eingabe vielleicht etwas erleichtern (also pitch einspielen und nur noch die fehler verbessern).
und zum glissando:
ich gehe davon aus, dass du damit meinst, dass du stufen hörst. dann folgendes im kopf haben: pitch hat wie alles bei midi 128 stufen. bleiben also 64 stufen pro richtung. was diese daten machen ist "dem midi" erstmal egal. das wird beim klangerzeuger vorgegeben oder lässt sich dort einstellen. bei manchen ist der bereich ein halbton, bei manchen lässt es sich auf eine ganze oktave stellen. bei einer oktave mit 12 halbtonschritten sind das also 64/12 schritte pro halbton oder 5,33... schritte pro halbton. da ist dann klar, dass man noch stufen hört (ich meine auch einen synth mit der möglchkeit von 2 oktaven gesehen zu haben, aber bin mir nicht mehr sicher. das wären dann nurnoch gute 2,5 stufen pro halbton!)
grüsse
l.chaos
du kannst dir den midi"stream" in eine textdatei speichern und dann "ganz normal" bearbeiten. wenn man das nicht gewohnt ist, ist das sehr kryptisch (für mich wäre es nix).
und bei muse gibt es (glaube ich) die möglichkeit, sich die daten im list-editor anzeigen zu lassen. keine ahnung, ob man da auch editieren kann.
midi-controller-daten können auch nachträglich auf eine existierende spur aufgenommen werden. müsste auch mit pitch gehen und das würde die eingabe vielleicht etwas erleichtern (also pitch einspielen und nur noch die fehler verbessern).
und zum glissando:
ich gehe davon aus, dass du damit meinst, dass du stufen hörst. dann folgendes im kopf haben: pitch hat wie alles bei midi 128 stufen. bleiben also 64 stufen pro richtung. was diese daten machen ist "dem midi" erstmal egal. das wird beim klangerzeuger vorgegeben oder lässt sich dort einstellen. bei manchen ist der bereich ein halbton, bei manchen lässt es sich auf eine ganze oktave stellen. bei einer oktave mit 12 halbtonschritten sind das also 64/12 schritte pro halbton oder 5,33... schritte pro halbton. da ist dann klar, dass man noch stufen hört (ich meine auch einen synth mit der möglchkeit von 2 oktaven gesehen zu haben, aber bin mir nicht mehr sicher. das wären dann nurnoch gute 2,5 stufen pro halbton!)
grüsse
l.chaos
http://www.audiowerkstatt.de
Re: MIDI to text & vice versa
Danke für die Antwort, doch ich fürchte, sie hilft letztlich leider nicht weiter.
Natürlich hatte ich eine MIDI-Datei schon mit einem Text-Editor geöffnet. (Unter Ubuntu Studio wird das übrigens durch den Editor glatt verweigert, selbst nach Umbenennung in .txt.)
Mit KWrite oder Okteta kann man sie öffnen und dann sieht man, daß es eine Binär-Datei ist. Sprich, außer ein paar Label-Worten sieht man keine deutbaren Zeichen, die man jetzt sinnvoll editieren könnte.
Es wäre schon notwendig, MIDI vor dem Editieren mit einem geeigneten Programm in einen übersichtlichen Text zu konvertierten.
Wäre positiv überrascht, wenn muse das mit "list" zustanden bringen würde, doch ich möchte es wegen des vagen Hinweises nicht extra installieren.
Das mit dem separaten Aufnehmen von midi-controller-daten merke ich mir mal. Vielleicht kann man das einmal verwenden.
Zum Glissando: Ich meinte nicht, daß ich Stufen höre, diese Prinzipien in MIDI sind mir bekannt. Mir gelang es noch nicht, zwei Töne, z.B. der Frequenz 440 Hz und 460 Hz nacheinander aufzunehmen, ohne daß man ein Glissando hört. Ich möchte sie einfach so abspielen können, wie auf einem monophonen Keyboard.
In ZynAddSubFx geht das z.B. ohne weiteres (enable microtonality), sogar polyphon, aber man kann die Tonfolge da natürlich nciht als MIDI-Datei mit entsprechendem pitch ausgeben. (Pitch bezieht sich ja immer auf einen Kanal und nicht auf einen Ton. Frequenzen sind in MIDI-Töne plus pitch umrechenbar.)
Irgendwelche uralten DOS-Programme konnten offenbar das, was ich möchte. Ich hoffte allerdings auf einen besseren Weg.
Grüße
Klaus
Natürlich hatte ich eine MIDI-Datei schon mit einem Text-Editor geöffnet. (Unter Ubuntu Studio wird das übrigens durch den Editor glatt verweigert, selbst nach Umbenennung in .txt.)
Mit KWrite oder Okteta kann man sie öffnen und dann sieht man, daß es eine Binär-Datei ist. Sprich, außer ein paar Label-Worten sieht man keine deutbaren Zeichen, die man jetzt sinnvoll editieren könnte.
Es wäre schon notwendig, MIDI vor dem Editieren mit einem geeigneten Programm in einen übersichtlichen Text zu konvertierten.
Wäre positiv überrascht, wenn muse das mit "list" zustanden bringen würde, doch ich möchte es wegen des vagen Hinweises nicht extra installieren.
Das mit dem separaten Aufnehmen von midi-controller-daten merke ich mir mal. Vielleicht kann man das einmal verwenden.
Zum Glissando: Ich meinte nicht, daß ich Stufen höre, diese Prinzipien in MIDI sind mir bekannt. Mir gelang es noch nicht, zwei Töne, z.B. der Frequenz 440 Hz und 460 Hz nacheinander aufzunehmen, ohne daß man ein Glissando hört. Ich möchte sie einfach so abspielen können, wie auf einem monophonen Keyboard.
In ZynAddSubFx geht das z.B. ohne weiteres (enable microtonality), sogar polyphon, aber man kann die Tonfolge da natürlich nciht als MIDI-Datei mit entsprechendem pitch ausgeben. (Pitch bezieht sich ja immer auf einen Kanal und nicht auf einen Ton. Frequenzen sind in MIDI-Töne plus pitch umrechenbar.)
Irgendwelche uralten DOS-Programme konnten offenbar das, was ich möchte. Ich hoffte allerdings auf einen besseren Weg.
Grüße
Klaus
Zuletzt geändert von klaus111 am Sa Mai 07, 2011 9:54 am, insgesamt 1-mal geändert.
Re: MIDI to text & vice versa
Danke! Das dürfte schon mal eine Lösung sein. An eine Notationssoftware hatte ich noch gar nicht gedacht.
Für Ubuntu Studio steht beides in Synaptic zur Verfügung: midi2abc und abc2midi
Für ABC gibt es zum Glück ein spezielles Programm für Mikrotonalität: microabc
Das wird in Synaptic allerdings nicht angeboten.
Tutorials unter:
hudsonlacerda.webs.com/abc/microabc-tutorial.pdf
http://hudsonlacerda.webs.com/abc/microabc.html
Hier übrigens das Frequency Data format von MIDI. Mit dieser Information dürfte man mit Okteta die entsprechenden Binärdaten der Frequenzen wie gewünscht verändern können, vorausgesetzt, man kann eine MIDI-Datei mit diesem Format erzeugen.
Wer es zum Laufen bringt und damit umgehen kann, der kann dies wohl auch mit Scala bewerkstelligen (nicht in Synaptic). (Help: Introduction)
Inwiefern die MIDI-Eigenschaften der interessanten Programme Cecilia (in Synaptic enthalten) und Bol Processor (nicht enthalten) hilfreich sein könnten, überblicke ich momentan noch nicht.
Grüße
Klaus
Edit: Zwischenbericht aus der Praxis:
microabc (mit abc) ist mir zu kompliziert (Installation u. Einarbeitung)
Eine MIDI-Datei mit dem o.g. "Frequency Data format" konnte ich mit Rosegarden nicht erzeugen. Man könnte mit dem Matrixeditor pichtes setzen, die man nachträglich auch mit Okteta verändern kann. Bequemer natürlich mit dem Matrixeditor. Der Grund, warum ich wie oben gesagt, keinen MIDI-File ohne glissando-Effekt erzeugen konnte it nun klar: Die meisten MIDI-Sounds haben einen starken Hall-Anteil. Dieser wird durch pitch bend verändert, auch wenn die Note nicht mehr gespielt wird (Pitch bend wirkt auf den ganzen Kanal). Man den Effekt vermeiden, indem man solange andere Kanäle verwendet, bis der Hall auf dem zuerst benutzen Kanal verklungen ist. Das wird wohl in microabc so gemacht.
Cecilia und Bol Processor können offenbar MIDI-Dateien nur lesen, aber nicht schrieben.
Der erfolgversprechendste Weg zum Erzeugen von Musik mit beliebigen Tönen (mikrotonal) besteht wohl darin, einen MIDI-file zu retunen. Das geschieht mit Hilfe einer erstellten Tabelle und mit Scala. Im Falle von Timidity klappt das auch und man hört keinen glissando-Effekt. Die Methode arbeitet nicht mit pitch bend, sondern mit dem "MIDI Tuning Standard (MTS)". An Timidity wird eine von Scala erzeugt Tabelle (.tbl) gesandt, die Timidity entsprechend (ver-)stimmt.
Auch mit Fluidsynth soll das ähnlich funktionieren, was ich demnächst ausprobiere.
Code in Scala:
Viele (mind. 32) Synthesizer werden nach diesem Prinzip unterstützt. Eine Liste findet sich bei Scala.
Wahrscheinlicher Nachteil der Geschichte: Die Tuning-Daten (tuning dump formats) können zwar in den MIDI-file integriert werden, doch damit die Töne korrekt wiedergegeben werden, muß der MIDI-file auch mit dem entsprechenden Synthesizer abgespielt werden.
Für Ubuntu Studio steht beides in Synaptic zur Verfügung: midi2abc und abc2midi
Für ABC gibt es zum Glück ein spezielles Programm für Mikrotonalität: microabc
Das wird in Synaptic allerdings nicht angeboten.
Tutorials unter:
hudsonlacerda.webs.com/abc/microabc-tutorial.pdf
http://hudsonlacerda.webs.com/abc/microabc.html
Hier übrigens das Frequency Data format von MIDI. Mit dieser Information dürfte man mit Okteta die entsprechenden Binärdaten der Frequenzen wie gewünscht verändern können, vorausgesetzt, man kann eine MIDI-Datei mit diesem Format erzeugen.
Wer es zum Laufen bringt und damit umgehen kann, der kann dies wohl auch mit Scala bewerkstelligen (nicht in Synaptic). (Help: Introduction)
Inwiefern die MIDI-Eigenschaften der interessanten Programme Cecilia (in Synaptic enthalten) und Bol Processor (nicht enthalten) hilfreich sein könnten, überblicke ich momentan noch nicht.
Grüße
Klaus
Edit: Zwischenbericht aus der Praxis:
microabc (mit abc) ist mir zu kompliziert (Installation u. Einarbeitung)
Eine MIDI-Datei mit dem o.g. "Frequency Data format" konnte ich mit Rosegarden nicht erzeugen. Man könnte mit dem Matrixeditor pichtes setzen, die man nachträglich auch mit Okteta verändern kann. Bequemer natürlich mit dem Matrixeditor. Der Grund, warum ich wie oben gesagt, keinen MIDI-File ohne glissando-Effekt erzeugen konnte it nun klar: Die meisten MIDI-Sounds haben einen starken Hall-Anteil. Dieser wird durch pitch bend verändert, auch wenn die Note nicht mehr gespielt wird (Pitch bend wirkt auf den ganzen Kanal). Man den Effekt vermeiden, indem man solange andere Kanäle verwendet, bis der Hall auf dem zuerst benutzen Kanal verklungen ist. Das wird wohl in microabc so gemacht.
Cecilia und Bol Processor können offenbar MIDI-Dateien nur lesen, aber nicht schrieben.
Der erfolgversprechendste Weg zum Erzeugen von Musik mit beliebigen Tönen (mikrotonal) besteht wohl darin, einen MIDI-file zu retunen. Das geschieht mit Hilfe einer erstellten Tabelle und mit Scala. Im Falle von Timidity klappt das auch und man hört keinen glissando-Effekt. Die Methode arbeitet nicht mit pitch bend, sondern mit dem "MIDI Tuning Standard (MTS)". An Timidity wird eine von Scala erzeugt Tabelle (.tbl) gesandt, die Timidity entsprechend (ver-)stimmt.
Auch mit Fluidsynth soll das ähnlich funktionieren, was ich demnächst ausprobiere.
Code in Scala:
Code: Alles auswählen
set synth 107
Synthesizer 107: MIDI Tuning Standard bulk tuning dump, 3 byte
Wahrscheinlicher Nachteil der Geschichte: Die Tuning-Daten (tuning dump formats) können zwar in den MIDI-file integriert werden, doch damit die Töne korrekt wiedergegeben werden, muß der MIDI-file auch mit dem entsprechenden Synthesizer abgespielt werden.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast