Opcją, o której nikt tak naprawdę nie wspomniał, jest użycie tych dodatkowych cyfr do specjalnych celów (np. zmiana tempa, inny instrument). Jeśli głównym instrumentem jest fortepian, wyobrażam sobie, że po prostu przypisanie cyfry do werbla, basu i talerza dodałoby wiele szyku Twojej ostatecznej muzyce.
W rzeczywistości dodanie nowych instrumentów otworzy masz na to kilka nowych sposobów. Możesz pozwolić, aby każda cyfra reprezentowała operację. Każda operacja mogłaby reprezentować zmianę instrumentu, tempa lub efektu itp. Ponadto każda operacja wczytywałaby wtedy tyle cyfr, ile potrzeba, aby spełnić liczbę parametrów. Dzięki temu twoje beaty będą miały takie rzeczy jak podtrzymanie, akcent itp. W twoich notatkach.
To faktycznie sprawi, że problem posiadania większej ilości miejsca na dane niż miejsca na notatki będzie jeszcze większym problemem, z wyjątkiem fakt, że tak naprawdę nigdy nie stanowiło to problemu. Po prostu wypełnij dodatkową przestrzeń kolejnymi wyższymi i niższymi oktawami. Spowoduje to lekką nierównowagę nut, ale tak naprawdę nie chcemy równowagi ...
Co prowadzi nas do innego problemu. Myślę, że najlepiej jest użyć wzorów występujących w muzyce popularnej, aby zapewnić przyjemne rozproszenie nut. Znalazłem tę witrynę, która zawiera dane, które pozwolą nam to ustalić:
Prawdopodobnie Twoja aplikacja będzie brzmiała lepiej, gdy tworzy nuty o podobnym wzorze dyspersji. Może się okazać, że niektóre instrumenty mogą działać bardzo różnie, więc (tak jak w przypadku tego wszystkiego) ważne będą eksperymenty.
Gdy ten system będzie działał, sugerowałbym spróbować pomyśleć o innej piosence, która brzmi podobnie do tego, co masz i robi dokładniejszy wykres rozproszenia nut, który w rzeczywistości pasuje do utworu w tej samej tonacji. Przeczytaj stronę, do której prowadzi powyższy link, aby zobaczyć, co mam na myśli.
Jeśli chcesz zrobić kolejny krok, będziesz mieć możliwość dodania dowolnej liczby funkcji. Musisz tylko zdecydować, jak duży jest kod operacyjny (1, 2, 3 znaki) w zależności od liczby różnych funkcji, które posiadasz i obsłużyć je wszystkie (nawet jeśli duże bloki robią to samo). Jeśli naprawdę chcesz, aby była to złożona symfonia, sugerowałbym oddzielenie kroku przetwarzania od etapu odtwarzania, aby wyeliminować wszelkie problemy z synchronizacją, które pojawią się z powodu zmiennej szybkości transmisji danych właściwej dla takiego projektu. Na szczęście są standardy. Popularnym standardem jest MusicXML. Jeśli sprawisz, że program po prostu wygeneruje te pliki. Następnie możesz później odtworzyć te pliki za pomocą odtwarzacza MusicXML.
Aktualizacja: Jeśli chcesz zobaczyć moje eksperymenty, możesz otrzymać je tutaj.