Musik-Primitiven

Design Patterns, Erklärungen zu Algorithmen, Optimierung, Softwarearchitektur
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
Antworten
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

Musik-Primitiven

Beitrag von dronus »

Ich frage mich grad, was die Grundbausteine und Konzepte von Musik sind.

Ich programmiere wieder an prozeduralen Grafikroutinen, wo ich denke dass man fast alles was Leute heute in Mal- und 3d-Tools zusammennähen auch stark parametrisiert von Code gemalt werden kann. Mit dem Vorteil, unzählige Varianten erzeugen zu können usw.

Doch wie ist das mit Musik? Synthetische Sounds werden ja mehr oder weniger ähnlich wie prozedurale Texturen zusammengesetzt. Aber Rhytmus und Melodie eher selten.. das automatischste sind vielleicht mit Zufallswerten gefüllte Pattern-Sequencer die man bei einigen verschrobenen Musikgeräten manchmal anfindet. Aber es kann ja nicht immer wie eine elektronisches Avantgarde-Experiment klingen, was wäre denn Tetris ohne Tschaikowskys Nussknacker Melodien...

Welche Konzepte muss man denn wohl alle charakterisieren, bis ein schmeichelndes Instrumentalstück gerendert werden kann?
Benutzeravatar
ponx
Establishment
Beiträge: 217
Registriert: 04.05.2008, 12:52
Echter Name: Andy Ponx
Wohnort: Hamburg
Kontaktdaten:

Re: Musik-Primitiven

Beitrag von ponx »

Hola Paul! da gibt's verschiedene Ansätze, der Oberbegriff dafür ist "Generative Music". Bei Wikipedia gibt's wohl eine ganz gute Übersicht: http://en.wikipedia.org/wiki/Generative_music
Benutzeravatar
Jonathan
Establishment
Beiträge: 2367
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Musik-Primitiven

Beitrag von Jonathan »

Will man das denn überhaupt? Ist nicht ein wichtiger Punkt bei Musik gerade der Wiedererkennungswert? Zumindest mir geht es oft so, dass ich viele Lieder erst gut finde und zu schätzen wisse, wenn ich sie mehrmals gehört habe. Ein krasses Beispiel sind die Weihnachtslieder die man jetzt immer wieder gehört hat - viele haben eigentlich überhaupt keine besonders schöne Melodie, sind aber solche Klassiker, dass sie dann doch irgendwie zu Weihnachten gehören.
Es gibt so viele Spiele bei denen ich den Soundtrack einfach im Ohr habe und ihn wirklich mag. Da will ich gar nicht, dass er jedesmal neu zusammengewürfelt wird, weil es die Stücke einfach nicht besser macht, wenn jedesmal irgendwelche Details anders sind und weil es absolut ok ist, das selbe Lied immer und immer wieder zu hören.

Was ich hingegen sinnvoll finde, sind Systeme die Lieder an nahezu beliebigen Stellen enden oder in andere Stücke überblenden können. Einfach um einen harmonischen Übergang zu schaffen, wenn sich die Spielsituation ändern (von Erkunden in Kampf, beispielsweise) und ich jetzt schnell andere Hintergrundmusik brauche. Aber das ist ja auch irgendwie etwas anderes.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

Re: Musik-Primitiven

Beitrag von dronus »

ponx hat geschrieben:Hola Paul! da gibt's verschiedene Ansätze
Das ist eine gute Sammlung, hab da jetzt einiges gelesen.. das wirkt fast so, als sei das Thema schon ein paar mal in der Szene unterwegs gewesen, und schon fast etwas abgenutzt.. Leider sind die vielversprechendsten Ansätze offenbar in veralteter unbekömmlicher Software vergossen.
Jonathan hat geschrieben:Will man das denn überhaupt?
Ja! Ich will. Sei es Experiment oder Sport aber vielleicht hat es ja auch Sinn.. Wenn es geht, ist es ja auch kein Problem, nur vier Lieder zu berechnen und die immer wieder abzuspielen. Bzw. die Parameter so zu wählen dass immer nur sehr ähnliche Lieder über den selben wenigen Themen mit hohem Erkennungswert entstehen...
Jonathan hat geschrieben: und weil es absolut ok ist, das selbe Lied immer und immer wieder zu hören.
Absolut!
Benutzeravatar
Jonathan
Establishment
Beiträge: 2367
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Musik-Primitiven

Beitrag von Jonathan »

dronus hat geschrieben:Leider sind die vielversprechendsten Ansätze offenbar in veralteter unbekömmlicher Software vergossen.
Hm, vielleicht hat es sich einfach nicht so wirklich durchsetzen können :D

Aber hast du dich schon in der Demo-Szene umgeschaut? Also bei den Jungs die Beispielsweise mit 4KB großen Programmen mehrminütige Filmchen inklusiv Musikuntermalung generieren. Die haben mit Sicherheit einen ganzen Fundus an Methoden dafür.

Ein paar weitere Links:

http://cre.fm/cre145-musik-und-midi-hacking (den habe ich neulich erst gehört, war gut)
http://cre.fm/cre136-techno (könnte auch passen)
http://cre.fm/cre154-digital-audio (könnte auch passen)
http://cre.fm/cre149-synthesizer (könnte auch passen)

http://www.golem.de/news/meta-ex-code-m ... 02709.html (mit Sicherheit Grundlage für weitere Recherche)

Ansonsten ist sicherlich auch allgemeine Musiktheorie interessant. Fast jede Musikrichtung hat ja festgelegte Schemen, die einfach in verschiedenen Variationen benutzt werden. Dann kann man beispielsweise schnell von einer Melodie zu passenden Akkorden, zu passenden Begleitstimmen - alles mehr oder weniger automatisch generierbar.

Fraglich ist natürlich, ob man damit irgendetwas wirklich neues erzeugen kann, was dann auch ästhetisch ist. Zum Vergleich: Objekte anzuordnen um daraus ein spielbares Level zu erzeugen ist mit etwas nachdenken schnell getan. Aber Objekte anzuordnen um daraus eine ästhetische Collage zu erzeugen ist etwas gänzlich anderes und nahezu unmöglich (wobei ich irgendwo mal von einem Programm gemalte Bilder gesehen habe. Die waren schon etwas ganz anderes, als irgendwelche Fraktale, aber halt immer noch irgendwie komisch). In gleicher Weise muss auch Musik nicht nur irgendwo "richtig" sondern eben auch schön sein.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

Re: Musik-Primitiven

Beitrag von dronus »

Demo-Szene war ein guter Hinweis! Leider gibts da nicht viel freien Sourcecode, oder?
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Musik-Primitiven

Beitrag von Chromanoid »

Kannst Dir ja mal das hier anschauen: http://4klang.untergrund.net/ Da ist der Quelltext dabei.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Musik-Primitiven

Beitrag von Tiles »

Hihi, dein Link wird als attackierende Webseite gemeldet :D

Hm, ich kenne da eigentlich nur Autocomp das da einigermassen sinnvolle Ergebnisse ausspuckt. All die anderen fraktalen Generatoren sind da meist viel zu zufällig im Ergebnis um das noch Musik nennen zu können.

Ist aber kein Open Source. Und kann nur Midi. http://hp.vector.co.jp/authors/VA014815 ... ocomp.html
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
joeydee
Establishment
Beiträge: 1044
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Musik-Primitiven

Beitrag von joeydee »

Zwar spät, aber trotzdem will ich noch etwas Senf dazugeben:

Mathematisch komponieren (also ohne Notenkenntnisse eine Melodie finden, die zumindest rein technisch gesehen in sich harmonisch ist) kann man vereinfacht gesehen nach folgenden Regeln:

- Es gibt 12 Halbtöne in einer Oktave (Index 0-11)
- Die Tonika (T, Grundakkord) hat den Index 0
- Die Subdominante (S) hat den Index 5
- Die Dominante (D) hat den Index 7
- Ein Dur-Akkord beinhaltet die Töne 0,4,7, d.h. T=[0,4,7]; S=[5,9,12]; D=[7,11,14];
- Eine Pattern besteht aus einer Akkord-Abfolge aus Tonika, Subdominante, Dominante in beliebiger Reihenfolge, am besten z.B. in 4er-Gruppen; jeder Buchstabe steht für einen Takt. Beispiele: P1=TTDT; P2=SSDD; (man kann auch innerhalb eines Taktes den Akkord wechseln, das wird hier der Einfachheit halber nicht berücksichtigt)
- Eine Melodiebegleitung besteht aus einer Pattern-Abfolge in beliebiger Reihenfolge (z.B. P1,P1,P2,P1, wiederholend, wobei ein Stück/Thema mit T beginnen und enden sollte).
- Eine Melodie besteht aus Tönen der an entsprechender Stelle gespielten Akkorde. An einer beliebigen Stelle hat man also "nur" 3 Töne zur Auswahl (andere Oktaven nicht berücksichtigt), insgesamt aber trotzdem alle Möglichkeiten für alle denkbaren Melodien, s.u., und man kann sichergehen, dass jeder dieser 3 Töne harmonisch passt.

Es gibt eine Menge Akkordkonstruktionen (kann man sich z.B. hier herleiten: http://www.gitarrengriffe-online.de/git ... kkorde.php)
sowie eine Menge "Verwandtschaften" und sich daraus ergebende sinnvolle "Fortschreitungen" (z.B. hier http://www.hochweber.ch/theorie/CdurAkk ... kkorde.htm).

- Ein Moll-Akkord beinhaltet die Töne 0,3,7
- Eine Mollparallele zu einem Dur-Akkord 0,4,7 beinhaltet die Töne -3,0,4 (starke Verwandtschaft)
- Ein Powerchord beinhaltet die Töne 0,7 (und kann daher weder Dur noch Moll zugeordnet werden)


Da die Akkorde T,S,D zusammen sämtliche Töne (Modulo 12) der Dur-Tonleiter zur Tonika (0,2,4,5,7,9,11) beinhalten, kann man damit schon sämtliche Melodien dieser Tonleiter begleiten und sichergehen dass in der Dreiecksbeziehung T/S/D jeder mit jedem "kann".
Für Variation, Spannungsaufbau etc. sollte man sich natürlich schon die Akkordvarianten und Mollparallelen sowie den Grad der harmonischen Beziehung untereinander anschauen und daraus entsprechende Diagramme ableiten.

Rhythmus-Patterns kann man z.B. so erstellen:
4/4-Takt in Achteln notiert: 1+2+3+4+
Auslassungen: 1 2+ +4+
wobei 1 am stärksten, 3 weniger, 2 und 4 noch weniger und + am wenigsten betont wird.
Bei einer Gitarre wären die Ziffern Ab- und die + Aufschläge, was sich nochmal geringfügig anders anhört.
Das obige Stück TTDTTTDTSSDDTTDT bekommt dann für jeden Buchstaben (Takt) ein Pattern zugeordnet; man kann auch ein Pattern durch das ganze Stück wiederholen.
Das Stück (Begleitspur) sähe dann auf der Zeitskala in Achtelnoten so aus:

Code: Alles auswählen

1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+
1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+1_2+_+4+
T_TT_TTTT_TT_TTTD_DD_DDDT_TT_TTTT_TT_TTTT_TT_TTTD_DD_DDDT_TT_TTTS_SS_SSSS_SS_SSSD_DD_DDDD_DD_DDDT_TT_TTTT_TT_TTTD_DD_DDDT_TT_TTT
Übersetzt in Indizes:
0-00-0000 …
4-44-4444 …
7-77-7777 …
Melodie aus diesen Indizes z.B. (man kann natürlich auch die Oktave ändern, also jeweils +/- 12)

Code: Alles auswählen

1+2+3+4+1+2+3+4+1+2+3+4+1+2+3+4+1+2+...
0---7-4-0-------0-------7---12--- …
Notenlängen der Melodie sind glaube ich nahezu beliebig; jedenfalls kenne ich da jetzt spontan keine Regeln. Am besten, man achtet nicht auf Längen (Ganze, Halbe,…), sondern wo man einen Ton am geschicktesten anschlägt damit das nicht aus dem Rhythmus kommt(auf die 1; auf ganze Zahlen; auf + nur wenn auch auf die vorherige Zahl).

Ein ganzes Stück setzt sich dann aus mehreren sich abwechselnden und wiederholenden Sequenzen zusammen, ist ja bekannt.

Um "echte" Noten zu erhalten, mappt man die Indizes auf [c,c#,d,d#,e,f,f#,g,g#,a,a#,h] plus einen Grundton (z.B. 2 für D-Dur):
d---a-f#-d-------d-------a---d1--- …
(Hab mir diesen Müll natürlich nicht angehört, dürfte aber zumindest nicht schief klingen!)

Es geht auch ganz ohne Noten: Index 9 (Kammerton a) hat 440Hz, alle 12 Indizes weiter verdoppelt sich die Frequenz - Daraus kann man alle Frequenzen direkt ableiten.
Antworten