Une option que personne n'a vraiment mentionnée est d'utiliser ces chiffres supplémentaires à des fins spéciales (par exemple, changer le tempo, un autre instrument). Si l'instrument principal est un piano, j'imagine que le simple fait d'assigner un chiffre à la caisse claire, à la basse et à la cymbale ajouterait beaucoup de flair à votre musique finale.
En fait, l'ajout de nouveaux instruments ouvrira vous propose un tas de nouvelles façons de le faire. Vous pouvez laisser chaque chiffre représenter une opération. Chaque opération pourrait représenter un changement d'instrument, de tempo ou d'effet, etc ... De plus, chaque opération lirait alors autant de chiffres supplémentaires que nécessaire pour satisfaire son nombre de paramètres. Cela permettra à vos battements d'avoir des choses comme le sustain, l'accent, etc. pour vos notes.
Cela rendra en fait le problème d'avoir plus d'espace de données que d'espace de note encore plus un problème, sauf pour le fait que ce n’était jamais vraiment un problème au départ. Remplissez simplement l'espace supplémentaire avec les octaves supérieures et inférieures suivantes. Cela entraînera un léger déséquilibre des notes mais nous ne voulons pas vraiment d'équilibre de toute façon ...
Ce qui nous amène à un autre problème. Je pense que votre meilleur pari est d'utiliser des motifs trouvés dans la musique populaire pour vous assurer que la dispersion de vos notes est agréable. J'ai trouvé ce site qui contient les données que nous souhaitons pour déterminer que:
Votre application aura plus de chances de mieux sonner lorsque il produit des notes avec un modèle de dispersion similaire à celui-ci. Vous constaterez peut-être que certains instruments peuvent fonctionner très différemment, donc (comme pour tout cela) l'expérimentation sera importante.
Une fois que ce système fonctionne, je vous suggère d'essayer de penser à une autre chanson qui sonne similaire à ce que vous avez et fait un graphique de dispersion des notes plus exact qui correspond en fait à une chanson dans la même tonalité. Lisez la page sur le lien ci-dessus pour voir ce que je veux dire.
Si vous vouliez l'intensifier, vous aurez la possibilité d'ajouter autant de fonctions que vous le souhaitez. Il vous suffit de décider de la taille d'un code d'opération (1, 2, 3 caractères) en fonction du nombre de fonctions différentes que vous avez et de les gérer toutes (même si de gros blocs font la même chose). Si vous voulez vraiment que ce soit une symphonie complexe, je vous suggère de séparer l'étape de traitement de l'étape de lecture pour éliminer tous les problèmes de synchronisation que vous rencontrerez en raison du débit de données variable inhérent à une telle conception. Heureusement, il existe des normes. Un standard populaire est appelé MusicXML. Si vous créez votre programme pour générer simplement ces fichiers. Ensuite, vous pourrez lire ces fichiers ultérieurement à l’aide d’un lecteur MusicXML.
Mise à jour: si vous souhaitez voir mes expériences avec cela, vous pouvez obtenir ici.