Mathe&Musik: Melodieskizzen aus Sprachsätzen und andere pseudaleatorische, algorithmische Kompositions-Ansätze

Verstehe Deine Punkte, aber Du würdest es ja mit Deinem Output trainieren, nicht mit Bach.

Und Modelle wie sie heute existieren lernen (oder erfinden) stark übergeordnete quasi semantische "Metamuster" -
und noch Ebenen darüber.
Ich hab ein Beispiel im AI Thread gepostet vorher, das hätte ich auch in den Neubauten/Depeche Mode Thread posten können.

Da ist ein künstliches Zitat von Blixa Bargeld drin, das zumindest mich tatsächlich an seine Sprache erinnert.
Keine Ahnung wie das Modell das auf Englisch funktionieren sollte und nicht auf Deutsch das gelernt hat.

Wie auch immer, Deine Punkte gelten dann zwar trotzdem noch, aber die Frage ist wie wäre es wenn es ein natürliches neuronales Netz wäre,
geklont aus Deinen Nervenzellen?
Und dann weiter gedacht, wo wäre der Unterschied zu a) Deinem Kopf und b) zum künstlichen Netz?

Das sind jetzt mehr rhetorische Fragen, bzw Fragen die ich mir selbst stelle.

Also Du willst nicht würfeln und keine stochastischen (Meta)Muster nutzen, was dann?
 
Also Du willst nicht würfeln und keine stochastischen (Meta)Muster nutzen, was dann?
Würfeln ist im Prinzip auch das, was hier passiert - nur füttere ich den Zufallsgenerator eben mit einem Seed aus Unicode-Text. Ich möchte das Ergebnis so reproduzieren können. Und wenn dieser Unicodetext etwas für mich bedeutet, so suggerier ich mir selber, dass die resultierenden Noten damit zusammenhängen. Tun sie auch - nur eben auf keine von mir kontrollierbare, vorausschaubare Art und das ist wichtig, um mich überraschen lassen zu können.

Die Zufallsdaten jedenfalls, ob sie nun gewürfelt sind oder aus einem deterministischen Algorithmus stammen wie hier, können halt durch ein Markovnetz geschickt werden, wodurch ihre Entropie reduziert wird, Strukturen sich herausbilden können. Quasi reine Stochastik: Jedes mögliche Intervall wird einem Bereich x-y zugeordnet. Wenn ein einzelnes Zufallsdatum in diesen Bereich fällt, führt es zu dem jeweiligen Intervall. Natürlich müssen diese Bereiche lückenlos aneinander anschließen, damit jeder mögliche Wert zu einem eindeutigen Ergebnis führt.

Das ist erklärbare Deterministik. Zugegeben, nicht mehr so leicht und knapp erklärbar, wenn der Wertbereich zu jedem Intervall, in den ein Wert fallen muss, um das jeweilige Intervall zu ergeben, sich Markov sei dank aus der letzten entschiedenen Note, bzw. den soundsoviel letzten Noten ergibt.
 
Zuletzt bearbeitet:
Und wenn dieser Unicodetext etwas für mich bedeutet, so suggerier ich mir selber, dass die resultierenden Noten damit zusammenhängen. Tun sie auch - nur eben auf keine von mir kontrollierbare, vorausschaubare Art und das ist wichtig, um mich überraschen lassen zu können.
Verstehe. Ist dann sozusagen Magie.
 
Will das nur als "Entwurf 0" hier einstellen, damit hinterher klar ist, wie weit ich mich für einen tatsächlich kreativen Entwurf 1 davon entfernt habe, den ich irgendwann vielleicht in Your Tracks poste und hierher verlinke. Mein Anspruch ist, nicht all zuweit. Am Ende des Codes eine URL, mit der man den Entwurf wahrscheinlich reproduzieren kann, eventuell aber auch nicht (mehr), da es eines Tages den Server womöglich nicht mehr gibt. Und ne, der Tagebucheintrag als Seedphrase wäre abgefälscht, selbst wenn es ihn gegeben hätte. So viel Datenschutz muss sein. ;-)

Code:
# This is Sompyler/YAML script, a human- as well as machine-readable
# music notation resoluble down to the level of exact sounding.
# [Weiteres Bla gelöscht - etwas Werbung in eigener Sache, Hinweis auf ein textgesteuertes Offline-Synthese-System,
# das schon lt. der >1000-Seitenschwarte "Computer Music Tutorial" (Curtis96) eher von gestern gewesen wäre.
# Aber hey, selber machen ist geil, und wenn man es beim Autobau nur bis zur Seifenkiste bringt, trotzdem, wurscht.]
#
# Or, even better, make a sheet of it to play on your own instrument.
#

# A "tick" is the subdivision of the number of beats indicated in the
# stress pattern. "cut" adds to the offset of the first note. There will not
# be more pause before the note, only the stress of the note is adjusted
# accordingly.

stage:
  p: 1|1 0 # Well, this "piano" is pretty unsatisfactory in sound.
                     # One may omit it alltogether, so Sompyler expects
                     # a ...

# ... free-style sound defined:
instrument p: # Folgendes händisch hinzugefügt,
# Vom Ressourcenverbrauch her billig, aber mit Obertönen, ein Hoch auf die FM
1A: 0.02:1,20;2,20;3,20;4,19
1R: 0.15:1;2,1;3,0
1FM: 1.5f[1,2;4,1;5,0];3:5

# But, alas, this is not on sound, just on inspiration for composition.

---
_meta:
  stress_pattern: 2,0,0,1,0;1,0
  ticks_per_minute: 200
  upper_stress_bound: 100
  lower_stress_bound: 95
  cut: 3

p: # { 3: D4 1, 4: D3 1, 5: D2 1, 6: B2 1, 7: B3 1, 8: C4 1, 9: F3 1 }
  - D4 ...o......
  - C4 ........o.
  - B3 .......o..
  - F3 .........o
  - D3 ....o.....
  - B2 ......o...
  - D2 .....o....
---
p: # { 0: B3 1, 1: C4 1, 2: D4 1, 3: A4 1, 4: C5 1, 5: E5 1, 6: G5 1, 7: B5 1, 8: B4 1, 9: C5 1 }
  - B5 .......o..
  - G5 ......o...
  - E5 .....o....
  - C5 ....o....o
  - B4 ........o.
  - A4 ...o......
  - D4 ..o.......
  - C4 .o........
  - B3 o.........
---
p: # { 0: G4 1, 1: F4 1, 2: C5 3, 5: D5 1, 6: F5 1, 7: B5 1, 8: C6 1, 9: B5 1 }
  - C6 ........o.
  - B5 .......o.o
  - F5 ......o...
  - D5 .....o....
  - C5 ..o__.....
  - G4 o.........
  - F4 .o........
---
p: # { 1: C6 1, 2: D6 2, 4: C7 1, 5: F7 1, 6: G7 1, 7: F7 3 }
  - G7 ......o...
  - F7 .....o.o__
  - C7 ....o.....
  - D6 ..o_......
  - C6 .o........
---
p: # { 0: D7 1, 1: E6 1, 2: D7 1, 3: E6 1, 4: A5 1, 5: A6 1, 6: G7 1, 7: G6 1, 8: E7 1, 9: E6 1 }
  - G7 ......o...
  - E7 ........o.
  - D7 o.o.......
  - A6 .....o....
  - G6 .......o..
  - E6 .o.o.....o
  - A5 ....o.....
---
p: # { 0: C6 2, 2: G5 2, 4: G5 1, 5: C6 1, 6: F5 2, 8: F5 3 }
  - C6 o_...o....
  - G5 ..o_o.....
  - F5 ......o_o__
---
p: # { 1: G4 1, 2: G3 1 }
  - G4 .o........
  - G3 ..o.......

# -------
# You can reproduce above output simply by URL:
# https://demo.neusik.de/randomelody?seedphrase=Ah%2C+Steffi%2C+du+warst+es+und+er+war+bei+dir%2C+hab+euch+zuf%C3%A4llig+gesehen.+Werdet+gl%C3%BCcklich+zusammen%2C+ich+bin+es+allein.&markov=-7.-6.-5.-4.-3.-2.-1.0.1.2.3.4.5.6.7.C.83.23.56.76.92.96.88.76.179.85.86.72.48.33.65.D.100.77.52.30.35.42.95.123.90.82.75.62.78.82.98.E.45.16.23.15.29.44.59.76.67.53.49.37.25.56.62.F.13.12.17.15.14.19.30.21.25.15.19.17.16.23.26.G.55.42.33.24.32.39.46.55.51.45.37.31.36.42.39.A.83.7.20.12.15.23.19.92.19.12.14.17.23.29.97.B.1.0.0.0.0.0.0.0.15.0.0.0.0.0.1.C-E.D-F.C.-D.E-F.G-.A.A-E..-D-A.G-.E-F-D.A.-G.E.-D.C-E-..F-..G-B-D.56.48.36.22.26.29.33.27.21.73.55.42.11.19.33&melody-share=1&pause-share=1&sompyler_init=20010~2~3~100~100~95&wrap_keys=yes

Anhang anzeigen entwurf0_h.mp3
 
De facto leicht tendenziöses random() über Intervallen bis zu einer Oktave, jepp. Damit man die Tendenzen heraushört, müsste das Material wohl länger sein als 20sec.

Das Markovgedöns ist schon recht beliebig definiert, aus dem Bauch heraus. Sieh aber im URL-Parameter markov die Zahlen nach .B... - alles Nullen außer unter -7, +1 und +7. Das bedeutet, auf B folgt immer entweder C zu einer Wahrscheinlichkeit von p=15/17, oder B zu p=2/17. Auf die gleiche Weise könnte man F und G weiter in Richtung C zinken, F die Zahlen für -1 und +6 erhöhen für die absteigende Gleittonwirkung. So könnte man die Sache noch weiter Richtung C-Dur bringen.

Aber die Leittonwirkung und der Einsatz von E, A und B statt Eb, Ab und Bb für C-Moll soll mir reichen, was den Dur-Charakter betrifft.

PS: "The Computer Music Tutorial" von Curtis Roads, 1996, kann ich wirklich jedem ans Herz legen zu lesen, der des Englischen mächtig ist. Bin schon durchaus stolz, übrigens, dass ich auf vieles darin durch eigenes Nachdenken gekommen bin. Teilweise aber auch enttäuschend, da ich einiges als total genial wähnte, als noch nie erdacht, und lesen musste, dass es sich schon vor 20 Jahren um etabliertes Wissen handelte.
 
Zuletzt bearbeitet:
wiederholung und random hört man eben immer raus und die sollten daher so sparsam wie ein gewürz verwendet werden.
 
Zuletzt bearbeitet:
Bezogen auf Kompositionen magst du recht haben. Um Kompositionen geht es hier nicht. Nur um Ansätze, sprich, um Inspirationen. Komposition = Inspiration × Kreativität. Vielleicht sollte ich doch nicht auf den Beitrag mit dem obigen "Entwurf 0" verlinken, wenn ich die Musik (Entwurf 1) poste. Denk mir angesichts deiner Beiträge, das Wissen um die (hier mechanische) Inspirationsquelle verfälscht nur das Urteil manches Zeitgenossen.
 
kann ich nachvollziehen - allerdings hattest du ein audio beispiel gepostet... da lag es nahe, das aus dem entsprechenden blickwinkel zu betrachten...

da hier im hintergrund grad hardin klimpert, habe ich selbst mir meine fahrlässiges off topic post bereits verziehen.
 
Hast schon recht, das hiesige Publikum ist darauf konditioniert, dass sich hinter jedem Play-Knopf mehr oder weniger ausproduzierte eigene Musik verbirgt, und lange Texte auschliesslich dazu da sind, den Scrollfinger zu trainieren, was abseits meiner Beiträge beides vielleicht auch stimmt. Null Werkstattatmosphäre, aber die soll vielleicht auch gar nicht sein bei einem von Thomann gesponserten Board. Playknöpfe sollen die Lust auf neues Gerät anfachen, aber doch bitte nicht soviel das Augenmerk weg vom Konsum auf die kreative Herstellung von Musik lenken.

Gäbe es eine Community, die ausgehend von initial von irgendwem hochgeladene Melodie- oder Rhythmuslinien oder Motivsammlungen im Audioformat Vorschläge macht, und man kann die Vorschläge hoch- und runtervoten, und der Künstler produziert zu allen Vorschlägen, die ihm gefallen, einen entsprechend weiterentwickelten Entwurf, der wiederum kommentiert/bewertet werden kann und so weiter, würde ich mein Glück eher da versuchen.

In einem existierenden Board, das zudem die strikt zeitlineare Diskussion abbildet, keine strukturell ersichtlichen Abzweigungen ermöglicht, scheitert das an der Übersichtlichkeit. Und wie würde man auch rechtssicher taugliche Endergebnissen verwerten und etwaige Erlösegerecht an den Künstler und die anderen Beteiligten dividieren, oder wen geht wer bei etwaigem Plagiatsverdacht an, das wären noch mal andere Fragen, die einem (wie mir) den Gedanken an eine Communitygründung madig machen. Aber gemeinschaftlich-evolutive Kunst hätte schon was. Wenn ich nicht schon tausend Hochzeiten laufen hätte ... naja, Fahrradkette und so. So textbasiertes Zeug könnte man wie beim kollaborativen Programmieren über eine entsprechende Plattform wie Github oder Gitlab deichseln.

Änderungslog:
3.10. schon mal kompaktiert und die gröbsten Fehler des "Zufallsgenerators" bereits korrigiert
10.10. Jetzt klingt es schon irgendwie fast nach Musik. Melodie und Harmonie ist drin. Fehlt noch Rhythm und Bass, wenn ich die üblichen vier vollmachen will. Und das will ich, halt der Übung halber.
16.10. Jetzt neu! Die beste Erfindung seit Handysöckchen: Musik mit Metrik!
22.10. Fleißig weiter daran gefeilt. Feinabstimmung Harmonie <~> Melodie. Rhythmusschiene nicht zu meiner Zufriedenheit, geht auch ohne.
Code:
stage:
  p: 1|1 0
  h: 1|3 1
  b: 3|2 1 h

instrument p:
  NOT_CHANGED_SINCE: 2021-10-13 20:59:00
  TIMBRE: 9500:100;3,105;4,95!;6,98;8,85;11,80
  VOLUMES: 15:100;1,95;2,76;6,70
  A: 0.02:1,20;2,20;3,20;4,19
  S: 20;1,19;6,18
  R: 0.15:1;2,1;3,0
  MORPH:
  - 1 1;1,1;3,1
  - 15 5;1,4;3,2;9,1
  PROFILE:
  - FM: 2f[3;1,2;2,1;4,0;5,0];3:1
  - match: 1n
    FM: 2f[3;1,1;2,1;4,0;5,0];3:1
  - match: 3n
    FM: 2.01f[3;1,3;2,3;4,2;5,0];2:1
  - match: 15
    FM: 2f[3;1,1;2,1;4,0;5,0];3:1

instrument h:
  NOT_CHANGED_SINCE: 2021-10-16 23:22:21
  VOLUMES: 12:100;1,90;2,70!;3,73;5,70
  PROFILE:
  - match: 1
    A: 0.05:1,1;3,1
    S: 20;1,19;4,18
    R: 0.3:1;1,1;3,0
  - match: 2
    A: 0.055:1,2;2,3
  - match: 12
    A: 0.035:1,1;2,3
    S: 10;1,8;3,7
    R: 0.3:2;1,1;2,0
  FM: 3f[1,1;4,1;5,0];1:1

---
_meta:
  stress_pattern: 2,0,0,1,0;1,0
  ticks_per_minute: 200
  upper_stress_bound: 100
  lower_stress_bound: 95
  cut: 3
  tuning: mj.... .....
p: # { 3: D4 1, 4: D3 1, 5: D2 1, 6: B2 1, 7: B3 1, 8: C4 1, 9: F3 1 }
  - D4 .. .o ..    .o-3 o+o-8
  - D3 .. .. oo-12o+10. ..
b: D2 ....o_o+3_o+7_

---
_meta:
  tuning: -2mj.... .....
p: # { 0: B3 1, 1: C4 1, 2: D4 1, 3: A4 1, 4: C5 1, 5: E5 1, 6: G5 1, 7: B5 1, 8: B4 1, 9: C5 1 }
  8:                      Bb4 o  o++
  0: Bb3 o_o++ o++o+7_ o+3o++
h:   D3  o=_o+3_*2 o+5_
b: Bb2 o_o+4_o=_o+4_o=_

---
_meta:
  tuning: +7mj.... .....
p: # { 0: G4 1, 1: F4 1, 2: C5 3, 5: D5 1, 6: F5 1, 7: B5 1, 8: C6 1, 9: B5 1 }
   G4 o_o-- o+7 o++_ o+3o+4o+ o-
h: C4 o_o-3_ o=_o-3o-4 o+4o-4.
b: F2 o_o+4_o=_o+7_o+5_

---
_meta:
  tuning: +7mj.... .....
p: # { 1: C6 1, 2: D6 2, 4: C7 1, 5: F7 1, 6: G7 1, 7: F7 3 }
   C6 o_ o++  o--o+4_ o+o-__
h: C3 o_o+4_ o=_ o+4o+3_o-3
b: G2 o_o+5_o-8_o+3_o+5_

---
_meta:
  tuning: -3mn.... .....
p: # { 0: D7 1, 1: E6 1, 2: D7 1, 3: E6 1, 4: A5 1, 5: A6 1, 6: G7 1, 7: G6 1, 8: E7 1, 9: E6 1 }
   D6 o=_o-10o+8o-8_ o-7 o--_ o-3
h: A3 o_ o+3 o=_ o+3 o+4o-4o-3o-4
b: A2 o_o+3_o=_o+7_o=_
---
_meta:
  tuning: -4mj.... .....
p: # { 0: C6 2, 2: G5 2, 4: G5 1, 5: C6 1, 6: F5 2, 8: F5 3 }
   C5 o_   o-3 oo-4_   o+4_o_
h: F4 o_o-5 o=_o-5 o-7_o+4_
b: F2 o_o+4_o=_o+7_o=_

---
_meta:
  tuning: -1ml.... .....
p: # { 1: G4 1, 2: G3 1 }
   G#4 o_o-4 o-- o+6_   o+3_3
h: E3  o_o+4 o=_o-5 o+5_ o++_
b: E2 o_o+4_o=_o+7_o=_

---
_meta:
  tuning: -4mj.... .....
p: C5 3
h:
   0: [G4 3, E4 3, C4 3]
b: C3 3

# -------
# You can reproduce original output simply by URL:
# https://demo.neusik.de/randomelody?seedphrase=Ah%2C+Steffi%2C+du+warst+es+und+er+war+bei+dir%2C+hab+euch+zuf%C3%A4llig+gesehen.+Werdet+gl%C3%BCcklich+zusammen%2C+ich+bin+es+allein.&markov=-7.-6.-5.-4.-3.-2.-1.0.1.2.3.4.5.6.7.C.83.23.56.76.92.96.88.76.179.85.86.72.48.33.65.D.100.77.52.30.35.42.95.123.90.82.75.62.78.82.98.E.45.16.23.15.29.44.59.76.67.53.49.37.25.56.62.F.13.12.17.15.14.19.30.21.25.15.19.17.16.23.26.G.55.42.33.24.32.39.46.55.51.45.37.31.36.42.39.A.83.7.20.12.15.23.19.92.19.12.14.17.23.29.97.B.1.0.0.0.0.0.0.0.15.0.0.0.0.0.1.C-E.D-F.C.-D.E-F.G-.A.A-E..-D-A.G-.E-F-D.A.-G.E.-D.C-E-..F-..G-B-D.56.48.36.22.26.29.33.27.21.73.55.42.11.19.33&melody-share=1&pause-share=1&sompyler_init=20010~2~3~100~100~95&wrap_keys=yes
 
Zuletzt bearbeitet:


Neueste Beiträge

News

Zurück
Oben