Eine Option, die niemand wirklich erwähnt hat, besteht darin, diese zusätzlichen Ziffern für spezielle Zwecke zu verwenden (z. B. Tempo ändern, ein anderes Instrument). Wenn das Hauptinstrument ein Klavier ist, würde ich mir vorstellen, dass das einfache Zuweisen einer Ziffer zu Snare, Bass und Becken Ihrer endgültigen Musik viel Flair verleiht.
Tatsächlich wird das Hinzufügen neuer Instrumente geöffnet Sie haben eine Reihe neuer Möglichkeiten, dies zu tun. Sie können jede Ziffer eine Operation darstellen lassen. Jede Operation könnte ein Instrument, ein Tempo oder eine Effektänderung usw. darstellen. Außerdem würde jede Operation dann so viele Ziffern einlesen, wie sie benötigt, um die Parameteranzahl zu erfüllen. Auf diese Weise können Ihre Beats Dinge wie Sustain, Akzent usw. für Ihre Notizen haben.
Dadurch wird das Problem, mehr Datenraum als Notenraum zu haben, noch problematischer die Tatsache, dass es anfangs nie wirklich ein Problem war. Füllen Sie einfach den zusätzlichen Raum mit den nächsthöheren und niedrigeren Oktaven auf. Dies führt zu einem leichten Ungleichgewicht der Noten, aber wir wollen sowieso kein Gleichgewicht ...
Was uns zu einem anderen Problem führt. Ich denke, Ihre beste Wahl ist es, Muster zu verwenden, die in der populären Musik zu finden sind, um sicherzustellen, dass Ihre Notenverteilung angenehm ist. Ich habe diese Site gefunden, die die Daten enthält, die wir benötigen würden, um Folgendes festzustellen:
Ihre Anwendung wird mit größerer Wahrscheinlichkeit besser klingen, wenn es erzeugt Noten mit einem ähnlichen Dispersionsmuster wie dieses. Sie werden vielleicht feststellen, dass einige Instrumente sehr unterschiedlich funktionieren, daher ist das Experimentieren (wie bei all dem) wichtig.
Sobald dieses System funktioniert, würde ich vorschlagen, sich ein anderes Lied auszudenken, das es ist klingt ähnlich wie das, was Sie haben, und macht ein genaueres Diagramm zur Notenverteilung, das tatsächlich zu einem Song in derselben Tonart passt. Lesen Sie die Seite unter dem obigen Link, um zu sehen, was ich meine.
Wenn Sie noch einen Schritt weiter gehen möchten, können Sie so viele Funktionen hinzufügen, wie Sie möchten. Sie müssen nur entscheiden, wie groß ein Op-Code ist (1,2,3 Zeichen), abhängig davon, wie viele verschiedene Funktionen Sie haben, und sie alle handhaben (auch wenn große Blöcke dasselbe tun). Wenn Sie wirklich möchten, dass dies eine komplexe Symphonie ist, würde ich vorschlagen, dass Sie den Verarbeitungsschritt vom Wiedergabeschritt trennen, um alle Zeitprobleme zu beseitigen, die Sie aufgrund der variablen Datenrate haben, die einem solchen Design inhärent ist. Zum Glück gibt es Standards. Ein beliebter Standard heißt MusicXML. Wenn Sie Ihr Programm so gestalten, dass diese Dateien einfach generiert werden. Anschließend können Sie diese Dateien später mit einem MusicXML-Player wiedergeben.
Update: Wenn Sie meine Experimente damit sehen möchten, erhalten Sie diese möglicherweise sie hier.