Autor |
Beitrag |
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 06.05.13 21:24
Hallo,
nachdem ich unter "Ton erstellen" www.entwickler-ecke....iewtopic.php?t=84203 meinen ersten Versuch, MIDI-Töne zu erzeugen vorgestellt hatte, habe ich heute noch etwas weitergemacht und denke, dass ein eigener Thread unter Open Source Projekte besser ist.
Ich hatte bei "Ton erstellen" schon gesagt, dass ich von Musik so viel Ahnung habe, wie "die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst" (frei nach Einstein).
Ohne das Beispielprogramm von hathor zur MIDI-Erzeugung, wäre es auch nie etwas geworden.
Im Programm werden einzelne Töne über MIDI ausgegeben.
Neben ein paar Schaltern zur Tonausgabe kann man auf der Klaviertastatur mit der Maus die entsprechenden Töne erzeugen.
Die zur Auswahl stehenden Instrumente habe ich auf vorerst 9 reduziert.
Da im Fernsehen, außer "Der Anstalt", nichts los war, musste ich mit meinen kaum vorhandenen Notenkenntnissen versuchen, drei bekanntere Stücke in eine für mein Programm lesbare Form zu bringen.
Wählt Ihr Melodie 1 bis 3 aus, so müsste es eigentlich funktionieren.
Als Mathematiker habe ich auch PI in Töne transformiert. 50 werden hintereinander abgespielt und es klingt grauenvoll schön. Dazu muss der letzte Eintrag rechts gewählt werden.
Ich weiß, dass jeder Musikcomputerprofi nur müde lächeln wird , aber ich find's schön. Und ich hätte nie gedacht, dass ich mit meinen Musikfähigkeiten so etwas hinbekomme.
Beste Grüße
Mathematiker
Rev 1/2: beide Audiokanäle müssten jetzt angesprochen werden; das Beispiel "Für Elise" ist vollständig und fehlerfreier.
Rev 3: Fremdkomponenten entfernt.
Rev 4: Erweiterung der Tonleiter um Töne von MIDI-Nr. 36 bis 86. Tasten und Noten sind miteinander verbunden.
Rev 5: Tonlänge einstellbar. 1.Teil der "Bilder einer Ausstellung" jetzt vollständig.
Rev 6: Dank hathors Hilfe gibt es jetzt Volume und Balance; zlib entfernt und neues Beispiellied.
Rev 7: Die Balance stellt sich mit der aktuellen Lautstärke ein.
Rev 8: Instrumentenwechsel während des Abspielens möglich, "Hummelflug" ist jetzt vollständig.
Rev 9: Rechtschreibfehler beseitigt.
Rev 10: Weitere Instrumente und zusätzlich "Yesterday".
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Zuletzt bearbeitet von Mathematiker am Sa 11.05.13 12:06, insgesamt 14-mal bearbeitet
Für diesen Beitrag haben gedankt: Anika
|
|
FinnO
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Mo 06.05.13 21:29
Moin Mathematiker,
Zwei Probleme:
1. Das Programm friert ein, solange ein Ton abgespielt wird
2. Nur der Linke Audiokanal wird genutzt. €: Okay, etwas Signal kommt auch rechts an. Aber wenig.
Ansonsten doch schon ganz ordentlich
Gruß
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 06.05.13 21:41
Hallo,
FinnO hat folgendes geschrieben : | 1. Das Programm friert ein, solange ein Ton abgespielt wird
2. Nur der Linke Audiokanal wird genutzt. €: Okay, etwas Signal kommt auch rechts an. Aber wenig. |
Danke für die Hinweise.
Und schon habe ich das Problem, dass ich wieder nicht weiß, was ich eigentlich mache.
Linker/Rechter Audiokanal? Toll, was es gibt. Da werde ich wohl suchen müssen, wo man so etwas einstellen kann. Im Moment habe ich keine Ahnung.
Mit dem Einfrieren meinst Du wohl, dass man nicht schnell hintereinander zwei Töne anklicken kann. Da muss ich mir auch noch etwas einfallen lassen.
Jetzt werde ich erst einmal bei "Für Elise" weitere Töne, Ton für Ton, vom Notenblatt ablesen und in "meine" spezielle Form bringen.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
FinnO
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Mo 06.05.13 22:19
Bevor du dich ärgerst: Es gibt ein midi-Dateiformat. Ich finde nur gerade keine wirklich sinnvolle Dokumentation...
Für diesen Beitrag haben gedankt: Mathematiker
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 06.05.13 22:27
Übrigens: Gute MIDI-Beschreibung:
de.wikipedia.org/wik...nt_Digital_Interface
Volume: Das ist im Programm drin, aber deaktiviert...
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure Tfmus.GetMidiVolume(var volLe, volRi: Word); var vol: DWORD; begin volLe := 0; volRi := 0; midiOutGetVolume(0, @vol); volLe := vol and $FFFF; volRi := vol shr 16; end;
procedure Tfmus.SetMidiVolume(var volLe, volRi: Word); var vol: DWORD; begin vol := volLe + volRi shl 16; midiOutSetVolume(0, vol); end; |
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Di 07.05.13 18:50
Hallo,
hathor hat folgendes geschrieben : | Volume: Das ist im Programm drin, aber deaktiviert... |
Danke für den Hinweis, habe ich jetzt aktiviert und hoffe, dass beide Kanäle abgespielt werden.
Das mit dem "einfrierenden" Programm beim Tonabspielen muss ich noch überdenken.
Zumindest habe ich das Beispielstück "Für Elise" vervollständigt und ein paar Fehler beseitigt.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mi 08.05.13 21:18
Hallo,
Rev 4 ist die wahrscheinlich letzte Änderung des Programms.
Die angezeigte Tonleiter wurde auf alle Töne von MIDI-Nr. 36 bis 86 erweitert. Klickt man auf eine Taste wird die Note angezeigt und umgekehrt.
Da keine Frendkomponenten mehr enthalten sind, müsste der Quelltext sich ab Delphi 5 problemlos compilieren lassen.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 09.05.13 08:07
Ich habe eine andere ZLIB-Version (DELPHI 2009)
Folgende Änderung erforderlich:
Delphi-Quelltext 1: 2:
| ZDecompress(InpBuf, sz, OutBuf, OutBytes); |
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Do 09.05.13 11:30
Hallo,
eigentlich wollte ich ja mit dem Programm aufhören, aber naja ...
In der Revision 5 ist jetzt die Tonlänge einstellbar. Irgendwie habe ich den Eindruck, dass die Beispiele bei verschiedenen Instrumenten unterschiedlich schnell abgespielt werden müssten.
Außerdem habe ich den 1.Teil "Promenade" des Beispiels "Bilder einer Ausstellung" jetzt vollständig.
Ganz nebenbei: Ich dachte, Lennons "Imagine" oder Melanies "Ruby Tuesday" würden sich auch ganz gut als Beispiele eignen. Dabei habe ich erst einmal mitbekommen, wie teuer(!) Noten im WWW gehandelt werden. Soweit geht meine "Liebe" zu MIDI dann nun auch wieder nicht.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 09.05.13 12:11
"Du kommst hier nicht raus!"
Volume, Mute und Balance (+Mitte) hinzugefügt.
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Do 09.05.13 20:58
Hallo,
hathor hat folgendes geschrieben : | "Du kommst hier nicht raus!" |
Das befürchte ich auch. Habe heute schon wieder einige Stunden mit dem Programm gekämpft.
hathor hat folgendes geschrieben : | Volume, Mute und Balance (+Mitte) hinzugefügt. |
Vielen Dank.
Ich habe auch Deine Farbgebung übernommen und ein paar weitere kleinere Änderungen durchgeführt.
Weiterhin habe ich zlib rausgeworfen. Solange die Daten für die Musikbeispiele ungepackt nur 15 k sind, kann man auf die Kompression verzichten. Außerdem kann ich Dein ZLib mit meinem Delphi 5 nicht compilieren.
Als 4.Beispiel habe ich Rimski-Korsakows "Hummelflug" (noch nicht vollständig) hinzugefügt.
Weißt Du, wie man zwei verschiedene Instrumente gleichzeitig spielen lassen kann?
Beste Grüße
Mathematiker
Nachtrag: In Rev 7 stellt sich die Balance mit der aktuellen Lautstärke ein.
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 10.05.13 09:04
SoundInit verschoben, damit ein Instrument-Wechsel auch während des Abspielens einer Melodie möglich ist.
Das ergibt einen tollen Effekt!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| ... tonan:=false; i:=0; repeat soundinit; s:=melodieliste[i]; case s[1] of ... |
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 10.05.13 10:25
Hallo,
hathor hat folgendes geschrieben : | SoundInit verschoben, damit ein Instrument-Wechsel auch während des Abspielens einer Melodie möglich ist.
Das ergibt einen tollen Effekt! |
Wunderbar. Allerdings habe ich den Instrumentenwechsel zur Instrumentenauswahl mit
Delphi-Quelltext 1: 2: 3: 4:
| procedure TFMus.RadioGroup1Click(Sender: TObject); begin if not abbruch then soundinit; end; |
kopiert. Dadurch muss nicht vor jedem Ton das Instrument neu gewählt werden.
Außerdem habe ich den "Hummelflug" als Beispiel jetzt vollständig. Wenn ich Klavier spielen könnte oder wenigstens etwas Ahnung von Noten hätte, wäre es nicht so mühsam, Note für Note in die MIDI-Nr. umzuwandeln. Aber es ist geschafft!
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 10.05.13 10:38
Übrigens:
Musik ist eine andere Form von Mathematik.
www.sengpielaudio.co...chner-notennamen.htm
Siehe DP:
www.delphipraxis.net...75-tmidiplayer2.html
MIDI-Files zum Downloaden:
Quelle unbekannt - habe ich schon ca. 5 Jahre...(damals hatte ich noch ein Siemens-Handy S55, das MIDI-Files abspielen konnte)
Evtl. von hier:
ez4mobile.com/nokiatone/midi.htm
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von hathor am Mi 22.05.13 13:26, insgesamt 2-mal bearbeitet
Für diesen Beitrag haben gedankt: Anika, Mathematiker
|
|
Narses
Beiträge: 10181
Erhaltene Danke: 1254
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 22.05.13 10:00
Moin!
@ hathor: Kannst du bitte eine Quelle/Lizenz zu dem Download angeben? Du wirst die MIDI-Files sicher nicht selbst erstellt haben...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 27.05.13 22:04
Hallo,
da ich mit www.entwickler-ecke....pic_Piano_91145.html nun langsam verstehe, wie man selbst MIDI-Dateien erzeugen und vor allem so abspielen kann, dass die entsprechenden Töne angezeigt werden, werde ich nun die mühevoll vom Notenblatt übertragenen Liedbeispiele in MIDI transformieren.
Solange es sich um ältere, gemeinfreie(?) Kompositionen handelt, dürfte es auch keine rechtlichen Probleme geben.
Wie sieht es aber aus, wenn ich z.B. etwas aus der "Neuzeit" abtippen und in MIDI umwandeln will, z.B. "Candle in the wind", "In a gadda da vida" oder solche Dinge aus meiner Jugend, also eigentlich steinalt ?
Konkret: Kann ich urheberrechtliche Probleme bekommen, wenn ich von einem Notenblatt die Töne ablese und diese in MIDI-Noten übersetze? Kennt sich da jemand aus?
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
FinnO
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Mo 27.05.13 23:37
Moin,
Mathematiker hat folgendes geschrieben : | Kennt sich da jemand aus? |
Nein, ich antworte aber trotzdem
und zwar mit einem Zitat.
de.wikipedia.org/wik...krechte#MIDI-Dateien hat folgendes geschrieben: | Über das Setzen eines Musikstückes in das MIDI-Format können zwar die Verwertungsrechte der beteiligten Musiker einer Aufnahme umgangen werden, nicht jedoch der Urheberschutz selbst. Rechtlich gesehen handelt es sich dabei sogar um eine Bearbeitung, für welche eigentlich die Erlaubnis der Rechteinhaber benötigt wird. Kurze MIDI-Ausschnitte zu Zitatzwecken sind tendenziell geduldet, jedoch nicht unumstritten. |
Ich bezweifle allerdings stark, dass du in diesem Rahmen hier Probleme bekommen wirst.
Für diesen Beitrag haben gedankt: Mathematiker
|
|
|