Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Musikstücke wiederholen (https://www.delphipraxis.net/116322-musikstuecke-wiederholen.html)

Orhan 26. Jun 2008 20:06


Musikstücke wiederholen
 
Das ist ein Musikstück

|: c,d,e,[f,g a,h ]:|[c,d,e,]f,g,a,h |: c,d,e,f,g,a,h :|

|: Das ist in der Musik ein Wiederholzeichen. Zwischen zwei Wiederholzeichen |: :| müssen die geschriebenen Noten wiederholt werden.

Doch beim zweiten mal muss die erste eckige Klammer [] (ohne zu spielen) in die nächste eckige Klammer übersprungen werden.

Nach den Wiederholungen muss die Musik weitergespielt werden bis zum Ende.

Wir haben einen kleinen Unterrichtsprogramm. Wir spielen im Unterricht kurze Musikstücke.

İst das im Richedit möglich?
İch bitte um ihre Hilfe!

Danke

DP-Maintenance 26. Jun 2008 20:10

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
In die Code-Library gehören nur fertige Code-Snippets.

Matze 26. Jun 2008 20:13

Re: Musikstücke wiederholen
 
Hallo Orhan,

ich habe nicht verstanden, was du möchtest. Könntest du das bitte nochmals genauer erläutern?

Im RichEdit möchtest du vermutlich die Zeichen, wie oben gezeigt, darstellen. Doch wo hast du da genau Probleme?
Soll das Ganze irgendwie abgespielt werden und was hast du denn bisher für Ansätze?

Grüße

DeddyH 26. Jun 2008 20:14

Re: Musikstücke wiederholen
 
Sry, ich verstehe die Frage nicht. Du willst im RichEdit Musik spielen?

[edit] Koter Rasten hat Urlaub [/edit]

Nils_13 26. Jun 2008 20:22

Re: Musikstücke wiederholen
 
Du benötigst eine Audio-Bibliothek. Bass oder FMOD helfen aus, wenn dir das zu schwierig ist, kannst du auch einfach TMediaplayer benutzen, hat aber gerade hierbei seine Nachteile: Du müsstest alle Töne mit einem Programm erzeugen, abspeichern und in der gegebenen Reihenfolge abspielen. Wenn ich nicht irre, kann man mit den beiden genannten Bibliotheken die Töne direkt mit einem Frequenzgenerator erzeugen. Dann würde ich an deiner Stelle ein Edit-Feld reinbauen, welches die Noten enthält. Diese würde ich vorerst ohne die Wiederholung probieren zu spielen. Wenn das funktioniert, ist die Wiederholung relativ einfach: Du suchst alle |: und :| im Code und speicherst die Position dieser in ein Array. Dann kannst du mit Hilfe des Arrays die Wiederholungen leicht berechnen. So machst du dann aus den Wiederholungen einen ganz simplen Notentext, der einfach abgespielt werden könnte. Ich hoffe das war deine Frage. Mit dem RichEdit kann man keine Musik spielen, die wahrscheinlichere Frage, wie man die Noten sozusagen in Klartext verwandelt, habe ich indirekt beschrieben.

DeddyH 26. Jun 2008 20:23

Re: Musikstücke wiederholen
 
Für die Tonausgabe käme auch noch MIDI in Betracht.

Orhan 26. Jun 2008 20:35

Re: Musikstücke wiederholen
 
Hallo

İch möchte im Richedit geschriebene Musiknoten spielen lassen. Die Buchstaben (Do, Re, Mi) zwischen zwei wiederholzeichen |:------:| sind Musiknoten. Die Noten die zwischen zwei Wiederholzeichen stehen müssen zweimal gespielt werden.

Kurz gesagt: İch habe die Musiknoten im Richedit geschrieben. İch möchte diesen kurzen Musikstück mit Wiederholungen und mit übersprungenen Stücken spielen lassen.

İch danke für İhre Interesse!

Matze 26. Jun 2008 21:25

Re: Musikstücke wiederholen
 
Hallo,

eine saubere Lösung wäre es, einen kleinen Parser zu schreiben. Dann bekommst du beispielsweise eine Baumstruktur zurück und weißt genau, was sich wann wiederholt und ähnliches.

Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz