jede Woche eine Vorlesung, eine Übung
Prüfungszulassung: regelmäßiges und erfolgreiches Bearbeiten von Übungsaufgaben (teilw. autotool)
Prüfung:
(gemeinsames) Abschluß-Konzert
(individuelle) Dokumentation (welche kreative Idee wurde wie realisiert)
Sie benutzen die Rechner im Pool (Z430) mit dort installierter Software. — Kopfhörer mitbringen!
Es ist zu empfehlen, die gleiche Software auch auf Ihren privaten Rechnern zu installieren, damit Sie selbst experimentieren und Hausaufgaben erledigen können. Ist aber nicht zwingend nötig—Rechner im Pool können außerhalb von LV frei benutzt werden.
wir verwenden ausschließlich freie Software (Definition: siehe https://www.gnu.org/philosophy/free-software-intro.html) (Debian-Pakete oder selbst kompiliert). Alles andere wäre unwissenschaftlich — weil man es eben nicht analysieren und ändern kann.
Das sind Beispiele für Tätigkeiten, die in dieser LV (und in allen anderen) immer wieder vorkommen: nicht nur Software bedienen und Knöpfchen drehen, sondern auch:
Analysieren, Rechnen, Recherchieren, historisch einordnen, Programmieren (Synthetisieren).
ausprobieren: Hydrogen (Drum-Sequencer) \(\to\) Rakarrack (Effekt-Prozessor)
Audio-Routing mit qjackctl
Finden Sie die von Hydrogen benutzte Audio-Datei für TR808 Emulation Kit, Kick Long
anhören mit vlc
,
konvertieren Sie mit sox
in wav
-Format, (Hinweis: man sox
),
betrachten Sie Dateiinhalt (Amplituden-Verlauf) mit
gnuplot -persist -e "plot 'kick.wav' binary format='%int32' using 0:1 with lines"
Bestimmen Sie mittels dieses Bildes die Grundfrequenz der Schwingung. Welche weitere Information ist dazu nötig, woher bekommen Sie diese?
betrachten Sie Dateiinhalt mit
od -cx kick.wav | less
Wo endet der Header (wo steht das erste Datenbyte)?
Suchen Sie die offizielle WAV-Spezifikation, bestimmen Sie deren bibliografische Daten (Autor/Gremium, Ort, Jahr)
Erzeugen Sie durch ein selbstgeschriebenes Programm (Sprache beliebig) eine wav-Datei, die einen (kurzen) Sinus-, Dreieck-, oder Rechteckton enthält,
ansehen mit gnuplot, abspielen mit vlc,
verwenden Sie das als Sample in Hydrogen.
Wie sah diese Maschine (TR808) aus? Welche Band führt diese Maschine im Namen? (Hinweis: http://www.vintagesynth.com/)
Kann Hydrogen alle dort angegebenen Eigenschaften des Originals simulieren?
simulieren Sie wesentliche Elemente aus Ritchie Hawtin: Minus Orange 1
Computermusik fassen wir auf als:
Analyse und Synthese von Musik
mithilfe der Informatik (Algorithmen, Software)
(A: hören, verstehen; S: komponieren, aufführen)
beruht auf Modellen aus der Musiktheorie, z.B. für
Erzeugung von Klängen in physikalischen Systemen,
das Tonmaterial:
Tonhöhe, Konsonanz und Dissonanz, Akkorde, Skalen
die zeitliche Anordnung des Materials:
Rhythmen, Melodien, Kadenzen, Kontrapunkt
die Kunst der zeitlichen Anordnung von Klängen.
(Edgar Varese 1883–1965: I call it organised sound)
Kunst bedeutet: der Autor (Komponist, Interpret) will im Hörer Empfindungen hervorrufen
das geht sowohl sehr direkt, Beispiele:
Tonreihe aufsteigend: Frohsinn, absteigend: Trübsal
Dissonanz \(\Rightarrow\) Spannung, Unruhe;
Konsonanz \(\Rightarrow\) Auflösung, Ruhe
als auch indirekt, Beispiele:
Zitat (Parodie) von Elementen andere Musikwerke:
Anerkennung (Daft Punk \(\Rightarrow\) Giorgio Moroder), Aneignung (F.S.K.), Ablehnung (Punk \(\Rightarrow\) Prog Rock).
die mechanische (Aufnahme und) Vervielfältigung von Audiosignalen (seit ca. 1920, Grammophon)
trennt die Aufführung vom ihrem Resultat (dem Klang)
(Elijah Wald, An Alternative History of American Popular Music, Oxford Univ. Press, 2009)
dadurch entsteht Popmusik, das ist etwas Neuartiges
statt Komposition (Klassik) oder Improvisation (Jazz): Produktion des Klangs in einem Studio
rezipiert wird nicht nur der Klang, sondern unzählige Nebenprodukte, insb. Bilder (z.B. Schallplattenhüllen)
die Bedeutung wird daraus vom Fan konstruiert
(Diederich Diederichsen, Über Popmusik, Kiepenheuer, 2014)
Daft Punk (Guy-Manuel de Homem-Christo und Thomas Bangalter): Giorgio by Moroder (LP Random Access Memories, 2013)
Donna Summer: I Feel Love (Single, 1977) Produzent: G. Moroder
Kraftwerk (Ralf Hütter und Florian Schneider): Autobahn (LP 1974), aufgenommen im Studio Conny Plank
Neu! (Michael Rother und Klaus Dinger): Hallogallo (1972), Produzent: Conny Plank
Stereolab (Tim Gaine, Laetitia Sadier u.a.): Jenny Ondioline (1993)
Grandmaster Flash (Joseph Sadler) The Message(1982)
Big Black (Steve Albini u.a.): Kerosene (1986)
KW 42: Klang-Erzeugung (Physik der Musikinstrumente)
KW 43: Klang-Analyse (Spektren) und Klangveränderung
KW 44: Analog-Synthesizer (und ihre Simulation)
KW 45: Algebraische Beschreibung von Klängen (csound-expression)
KW 46: Töne, Skalen, Konsonanzen, Akkorde, Kadenzen
KW 47: Algebra Of Music (haskore), Notensatz (lilypond)
KW 48: A Pattern Language (tidal-cycles, supercollider)
ab hier Reihenfolge noch unklar:
KW 49: Rhythmus (breakbeat science)
KW 50: Mathematische Musiktheorie
KW 51: Musikgeschichte, Zwischenstand Projekte
KW 54: Audio-Analyse
KW 55: Digital Audio Workstations (ardour, sooperlooper)
KW 56: algorithmische Mechanik
KW 57: Zusammenfassung, Abschluß Projekte
Geräusch:
erzeugt durch Schwingungen eines physikalischen Systems (z.B. Musikinstrument)
übertragen durch Druckschwankungen in einem Medium (z.B. Luft), durch Ohr wahrnehmbar
Klang: …durch periodische Schwingungen …
virtuelle (elektronische) Instrumente
simulieren den physikalischen Vorgang
oder speichern nur dessen Amplitudenverlauf
Unterschied zu automatischem Spiel reeller Instrumente
Modell:
ein Körper mit Masse \(m\) und Ruhelage \(0\)
bewegt sich auf einer Geraden \(g\),
d.h., hat zum Zeitpunkt \(t\) die Koordinate \(y(t)\)
die Rückstellkraft (bei Pendel: durch Schwerkraft, bei schwingender Saite: durch Elastizität) ist \(F= -k\cdot y\).
Notation: das ist eine Gl. zw. Funktionen (der Zeit)!
mathematische Beschreibung
Geschwindigkeit \(v = y'\), Beschleunigung \(a = v' = y''\)
nach Ansatz ist \(a= F/m = - (k/m) \cdot y\)
\(y\) ist Lsg. der Differentialgleichung \(-(k/m) y = y''\)
gegeben \(k, m\), bestimme Funktion \(y\) mit \(-(k/m) y = y''\)
numerische Näherungslösung durch Simulation:
ersetze Differentialgl. durch Differenzengl.
wähle \(y_0\) (initiale Auslenkung), \(\Delta>0\) (Zeitschritt),
bestimme Folgen \(y_0, y_1,\dots,v_0=0,v_1,\dots,a_0,a_1,\dots\)
mit \(a_i=-(k/m) y_i\), \(v_{i+1}=v_i+\Delta a_i\), \(y_{i+1}=y_i+\Delta v_i\)
ausrechnen in Haskell, anzeigen mit https://hackage.haskell.org/package/gnuplot-0.5.5.3/docs/Graphics-Gnuplot-Simple.html
genaueres in VL Numerik,
z.B.: Stabilität besser, wenn \(y_{i+1}=y_i+\Delta v_{i+1}\)
gegeben \(k, m\), bestimme Funktion \(y\) mit \(-(k/m) y = y''\)
genaueres siehe VL Analysis, z.B. Ansatz von \(y\) als
Potenzreihe mit unbestimmten Koeffizienten
Linearkombination von Basisfkt. mit unbest. Koeff.
wenn man Glück hat, oder die numerische Lösung gesehen hat:
Ansatz \(y(t) = \cos (f \cdot t)\)
wir erhalten die reine harmonische Schwingung
diese Modell ist Energie-erhaltend
tatsächlich wird aber Energie abgegeben (1.über das Medium an den Sensor, 2. durch Reibung im schwingenden Körper als Wärme an die Umgebung)
Modellierung der Dämpfung z.B. durch Reibungskraft proportional zu Geschwindigkeit \(F_R = r\cdot v = r\cdot y'\)
Aufstellen und Simulation der Dgl. in Übung.
mit diesem Modell können wir beschreiben:
Klang einer Saite (Gitarre, Klavier, Cembalo)
(nicht Geige)
Klang eines Trommelfells (Fußtrommel, nicht Snare)
Wirkung der Dämpfung kann durch regelmäßige Energiezufuhr ausgeschaltet werden (\(\Rightarrow\) angeregte Schwingung) z.B. das Anstoßen einer Schaukel
Geige:
Bewegung des Bogens führt der Saite Energie zu
regelmäßige Unterbrechung durch Kontaktverlust Bogen–Saite bei zu starker Auslenkung
Blasinstrumente:
Anblasen führt der schwingenden Luftmenge Energie zu
regelmäßige Unterbrechung durch Blatt (Oboe, Saxofon), Lippen (Trompete) oder Luftsäule selbst (Orgel, Flöte)
nichtperiodisches Verhalten kann erzeugt werden durch
nichtperiodische Schwingung eines phys. Systems
z.B. Doppel-Pendel, Mehr-Körper-System
keine direkte Anwendung als Instrument bekannt,
Simulation evtl. für virtuelle Instrumente nützlich
Überlagerung (fast gleichzeitiger Ablauf) sehr vieler unterschiedlicher periodischer Schwingungen
für zahlreiche (Rhythmus)-Instrumente benutzt, z.B.
Maracas (Rumba-Kugel): enthalten viele kleine harte Klangkörper, die aneinanderstoßen
Snare (kleine Trommel): mehrere Federn, die gegen Fell der Unterseite schlagen (schnarren)
wenn man das wirklich nur simulieren möchte, nicht mechanisch realisieren,
dann kann man auch Systeme ohne mechanisches Äquivalent betrachten
Bsp: die Iteration der Funktion
\(f: [0,1]\to[0,1]: x\mapsto 4\cdot (x - 1/2)^2\)
zeigt aperiodisches (chaotisches) Verhalten
Ü: Wertefolge ausrechnen, ansehen, anhören
Wie wird Musikgeschichte zitiert (im Klang und) im Text von: DJ Hell: Electronic Germany (2009)
Wer singt auf U Can Dance des gleichen Albums? War früher (viel früher) in welcher Band? Wer hat dort anfangs elektronische Instrumente gespielt? Danach welchen Musikstil erfunden?
weitere Beispiele für Musikzitate suchen, genau beschreiben, was zitiert wird, wie groß der Abstand ist (zeitlich, inhaltlich) und diskutieren, warum.
Schwingungen (periodische, gedämpfte, chaotische)
Einzelheiten und Quelltexte: https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/kw42
simulieren, Resultate ansehen, anhören.
als benutzerdefiniertes Drumkit in Hydrogen benutzen.
Schwingungen von (Aufnahmen von) reellen oder virtuellen Musikinstrumenten ansehen
mit den selbst ausgerechneten vergleichen
jede periodische Schwingung kann als gewichtete Summe harmonischer Schwingungen dargestellt werden
(Jean Fourier, 180?, http://www-history.mcs.st-and.ac.uk/Biographies/Fourier.html)
die Folge dieser Gewichte der Obertöne ist das Spektrum, das charaktetisiert die Klangfarbe
Änderung des Amplitudenverlaufs
linear (z.B. Filter), nichtlinear (z.B. Verzerrer)
kann beschrieben werden als Änderung des Spektrums
für \(\Omega=[-\pi,\pi]\) betrachte \(\textsf{P}=\{f\mid f:\Omega\to\mathbb{R}\}\).
\(\textsf{P}\) ist Vektorraum (Addition, Skalierung) und Hilbert-Raum
Skalarprodukt \(\displaystyle \langle f,h\rangle := \int_\Omega f(x)\cdot g(x) ~ dx\), Norm \(|f|=\sqrt{\langle f,f\rangle}\)
\(b_1=1, b_2=\sin(x),b_3=\cos(x),b_4=\sin(2x),b_5=\cos(2x),\dots\)
bilden eine orthogonale Basis für \(\textsf{P}\)
nach geeigneter Skalierung sogar orthonormal
jedes \(f\in \textsf{P}\) eindeutig darstellbar als Linearkombination von Basisvektoren \(\displaystyle f = \sum_i~ \langle f,b_i\rangle / |b_i|^2 \cdot b_i\)
weitere Voraussetzungen sind nötig (damit Integrale und Summen existieren), siehe VL Analysis
numerisch: approximiere Integral durch Summe
\(\Omega\to\mathbb{R}: t\mapsto \textsf{if~}t<0 \textsf{~then~}-1 \textsf{~else~}\textsf{if~}t = 0 \textsf{~then~}0 \textsf{~else~}1\)
das ist die Signum- (Vorzeichen)-Funktion \(\operatorname{sign}\)
\(\displaystyle \operatorname{sign}(x) = (4/\pi) \sum_{k~\text{ungerade}} \frac{\sin(kx)}{k}\)
(nur ungerade Oberwellen)
Nebenrechnungen:
\(\cos(kx)\) ist gerade Funktion, \(\operatorname{sign}(x)\) ungerade,
deswegen \(\langle \operatorname{sign}(x),\cos(kx)\rangle=0\)
\(\langle\operatorname{sign}(x),\sin(kx)\rangle = 2\cdot \int_{[0,\pi]} \sin(kx)dx=[-1/k\cdot \cos(kx)]_0^\pi=\)
\(\textsf{if~}2|k \textsf{~then~}0 \textsf{~else~}4/k\)
\(f: \Omega\to\mathbb{R}: x\mapsto x\)
numerische Bestimmung der Fourier-Koeffizienten
let k = 4 ; d = 0.01
in sum $ map (\x -> d * x * sin (k*x))
[ negate pi, negate pi + d .. pi ]
==> -1.570723326585521
Vermutung \(\displaystyle f = -\frac{2}{\pi} \sum_{k\ge 1} \frac{(-1)^k}{k}\sin(kx)\) ( alle Oberwellen )
Spektrum eines Signals \(f\) kann so bestimmt werden:
teile Signal in Zeit-Intervalle (z.B. \(\Delta=1/10\) s),
\(f_i : [-\Delta, \Delta] \to \mathbb{R}: t \mapsto f(i\Delta + t)\)
wähle Frequenz-Werte \(k_1, k_2, \dots\)
bestimme Koeffizienten der Freq \(k_j\) zur Zeit \(i\Delta\) als \(\langle f_i,k_j\rangle\)
Anzeige z.B. in vlc
: Audio \(\to\) Visualisations \(\to\) Spectrum
es gibt schnellere Algorithmen
(diskrete Fourier-Transformation)
das Ohr bestimmt die Fourier-Koeffizienten durch Resonanz in der Schnecke (Cochlea), Frequenz-Auflösung ist ca. 3 Hz bei 1 kHz
Chris Cannam, Christian Landone, and Mark Sandler: Sonic Visualiser: An Open Source Application for Viewing, Analysing, and Annotating Music Audio Files, in Proceedings of the ACM Multimedia 2010 International Conference.
Anwendungsbeispiel:
Aphex Twin, \(\Delta M_i^{-1}=-\alpha \Sigma D_i[\eta] Fj_i[\eta-1]+F\text{ext}_i[\eta^-1]\),
Album: Windowlicker, 1999.
hergestellt mit Metasynth (Eric Wenger, Edward Spiegel, 1999) http://www.uisoftware.com/MetaSynth/,
harmonische Schwingung: keine Oberwellen
kommt in der Natur selten vor und ist für Musikinstrumente auch gar nicht erwünscht:
Oberwellen ergeben interessantere Klänge,
die auch variiert werden können
Bsp: Gitarre: Anschlagen nahe dem Steg: viele Oberwellen, zur Saitenmitte: weniger.
Bsp. Schlagzeug (Trommel, Tom): Anschlag Mitte/Rand
Bsp: Orgel: offene und gedackte Pfeifen
Ü: dazu in Kalähne: Akustik (1913) nachschlagen
ein Filter ist ein Operator von \((\Omega \to \mathbb{R})\) nach \((\Omega\to\mathbb{R})\)
(eine Funktion der Zeit auf eine Funktion der Zeit,
d.h., Filter ist Funktion zweiter Ordnung)
Bsp: der Operator \(\textsf{scale}_s: g\mapsto (x \mapsto s\cdot g(x))\)
Bsp: der Operator \(\textsf{shift}_t: g \mapsto (x\mapsto g(x-t))\)
akustisch ist das ein Echo. Mehrere Echos ergeben Hall.
Realisierungen:
Speicherung auf Tonband-Schleife
Federhallstrecke (Drehschwingung einer Feder)
typisch für: Gitarrenklang in Surf-Musik (Bsp: Dick Dale),
Gesamtklang im (Dub) Reggae (Bsp: Lee Perry)
Operator \(F\) ist linear (L), wenn \(\forall a,b\in \mathbb{R}, g,h\in(\Omega\to\mathbb{R}): F(a\cdot g+b\cdot h)=a\cdot F(g) + b\cdot F(h)\)
\(F\) ist zeit-invariant (TI), wenn \(\forall t\in\mathbb{R}: \textsf{shift}_t\circ F = F\circ \textsf{shift}_t\)
Satz: jeder LTI-Filter kann als (Limes einer unendl.) Summe von \(\textsf{shift}\) und \(\textsf{scale}\) dargestellt werden
Satz: jeder lineare Filter operiert auch linear auf den Fourier-Koeffizienten.
Folgerung: Obertöne werden geschwächt oder verstärkt, aber niemals aus dem Nichts erzeugt.
Das begründet den Wunsch nach nichtlinearen Filtern (Verzerrern).
mit Hydrogen und Rakarrack Aspekte des Schlagzeugs (Rhythmus, Sound) nachbauen:
Vivien Goldman (und New Age Steppers): Private Armies Dub (1981)
(Produzent: Adrian Sherwood, vgl. Bugaloo (2003, video)
Fourier-Koeffizienten einer Rechteck-, Sägezahn-, Dreiecks-Schwingung bestimmen:
Skalarprodukte symbolisch oder numerisch bestimmen
Amplitudenverlauf in WAVE-Datei schreiben und Spektrum analysieren (sonic-visualiser
)
Phaser: für eine Sägezahnschwingung \(f\): bestimmen Sie Amplitudenverlauf und Spektrum der Schwingung \(f + \textsf{scale}_{-1}(\textsf{shift}_d (f))\) abhängig von Parameter \(d\in[0,\pi]\).
Echo, Hall, Phaser selbst implementieren
Verzögern und ggf. rückkoppeln
(WAVE-Datei lesen, bearbeiten, schreiben)
Ansatz: https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/kw43
bisher: mechanische Schwingungen
Bsp: Massepunkt/Feder,
Anwendung: akustische Musikinstrumente
Bsp: Saiten, Membrane, Luftsäulen
jetzt: elektrische Schwingungen (und Filter)
Bsp: Oszillator (LC), Tiefpaß (RC)
Anwendungen:
Analog-Synthesizer (Robert Moog 64, Don Buchla 63)
Simulation von A.-S. (csound, Barry Vercoe, 1985)
Ziele: 1. möglichst exakte Nachbildung (des Akustischen, des Analogen), 2. völlig neuartige Klänge
Schaltung: gerichteter Graph,
Kanten sind Bauelemente
ohne Zustand: Widerstände, Verstärker (Transistor)
mit Zustand:
Kondensator: Ladung, Spule: magnetisches Feld
durch jede Kante fließt Strom,
jeder Knoten hat Potential
besondere Knoten: Masse (0), Eingabe, Ausgabe
Zustandsänderung ist Funktion der Ströme und Spannungen
Schaltung realisiert einen Operator von (Zeit \(\to\) Eingabe) nach (Zeit \(\to\) Ausgabe)
Schaltung:
(0,3) node [left]\(U_E\) to [short,i=\(I\),*-] (1,3) to [R,l=\(R\), -*] (4,3) to [C,l=\(C\)] (4,1) node [ground] (3,3) to [short,-*] (5,3) node [right] \(U_A\) ;
Widerstand: \(U_E-U_A=R \cdot I\)
(siehe auch Kraftwerk: Ohm Sweet Ohm, 1975)
Kondensator: \(\displaystyle I = C \cdot \frac{d U_A}{d t} = C\cdot U_A'\)
Bsp: \(U_E(t) = 1 \text{V}\), \(U_A(0)=0\) (Kondensator leer)
\(C\cdot U_A' = I = (1-U_A)/R\), Simulation, exakte Lösung
Bsp: \(U_E(t)=\sin(2\pi f t)\), \(U_A(t)=?\)
wirkt als Tiefpaß-Filter: Schwächung hoher Frequenzen
(0,3) node [left]\(U_E\) to [short,i=\(I\),*-] (1,3) to [R,l=\(R\), -*] (4,3) to [L,l=\(L\)] (4,1) node [ground] (3,3) to [short,-*] (5,3) node [right] \(U_A\) ;
, Spule: \(\displaystyle U_A = L \cdot\frac{d I}{d t}= L \cdot I'\)
wirkt als Hochpaß (tiefe Frequenzen werden geschwächt)
(0,3) node [left]\(U_E\) to [short,i=\(I\),*-] (1,3) to [R,l=\(R\), -*] (4,3) to [L,l=\(L\)] (4,1) node [ground] (4,3) to [short,-*] (6,3) to [C,l=\(C\)] (6,1) node [ground] (6,3) to [short,-*] (8,3) node [right] \(U_A\) ;
, wirkt als Bandpaß
(hohe und tiefe \(f\) geschwächt, in der Nähe der Resonanzfrequenz weniger)
Bandpaß mit Rückführung und Verstärkung:
wirkt als Oszillator (schwingt auf Resonanzfrequenz)
wesentlich für musikalische Anwendungen:
Steuerung von System-Eigenschaften (z.B. Resonanzfrequenz, Filter-Steilheit) durch
Ausgabe-Spannung anderer Teilsysteme
Bedienerschnittstelle (Regler, Klaviatur — ebenfalls als Spannungsquellen realisiert)
\(\Rightarrow\) modularer Aufbau eines Synthesizers, Verbindung der Komponenten (\(=\) Programmierung) durch Kabel/Stecker
Robert Moog: Voltage Controlled Electronic Music Modules, J. Audio Engineering Soc. Volume 13 Issue 3 pp. 200-206; July 1965, http://www.aes.org/e-lib/browse.cfm?elib=1204
Verstärker (VCA, voltage controlled amplifier)
eigentlich Multiplizierer: \(U_A(t) = U_C(t) \cdot U_E(t)\)
Oszillator (VCO)
Steuerspannung \(\sim\) Frequenz: \(U_A (t) = \sin (U_C(t) \cdot t)\)
Filter (VCF): Steuerspannung \(\sim\) Resonanzfrequenz
periodische \(U_C\) mit kleiner Frequenz erzeugt durch
LFO (low frequency oscillator)
einfachste Möglichkeit: Taste drücken/loslassen
Impulslänge je nach Eingabe, Impulshöhe konstant
mehr Ausdruck: Stärke des Tastendrucks bestimmt Impulshöhe (konstant über gesamte Länge)
(Luxus: gewichtete Tastatur, simuliert Trägheit der Klavier-Mechanik)
(Hüll)kurvenparameter für nicht-konstante Impulse:
Attack (Anstiegszeit auf maximale Höhe)
Decay (Abfallzeit bei noch gedrückter Taste)
Sustain (Impulshöhe nach Decay)
Release (Abfallzeit nach Loslassen der Taste)
spannungsgesteuerte modulare Synthesizer produziert ab 1963 (Robert Moog, Don Buchla)
(Bsp: Buchla: In The Beginning Etude II, 1983?)
erste Anwendungen (auf publizierten Aufnahmen)
für exotische Klänge als Verzierung in Standard-Popmusik (Byrds: Space Odyssey, 1967)
als Solo-Instrument
als Ersatz klassischer Instrumente, für klassische Musik (Wendy Carlos: Switched on Bach, 1968)
für neuartige, eigens komponierte Musik (Morton Subotnick: Silver Apples of the Moon, 1967)
(frühere elektronische Instrumente: siehe 120 Years of Electronic Music http://120years.net/)
ALSA modular synthesizer
Komponenten (LFO, VCO, VCF, …) auf Arbeitsfläche,
Verbindung durch Kabel (Ausgangsgrad beliebig, Eingangsgrad 1)
Verbindungen zur Außenwelt (Bsp.)
In: MCV (MIDI control voltage) Steuerspannung ist Tonhöhe der Taste eines virtuellen Keyboards (z.B. vkeybd
) oder externen Keyboards (z.B. USB-MIDI)
qjackctl (Alsa): virtual keybd
output — ams
input
Out: PCM,
qjackctl (Audio): ams
output port — system
input port
Hausaufgabe:
wie lautet die exakte (stationäre) Lösung für den RC-Tiefpaß mit Eingabe \(U_E(t)=\sin (2\pi f t)\)?
Ansatz: \(U_A(t) = a \cdot \sin(2 \pi f t + \phi)\) mit unbekannten \(a, \phi\).
in der Übung:
evtl. Experimente mit https://gitlab.imn.htwk-leipzig.de/waldmann/circuit, evtl. als autotool-Aufgabe
Experimente mit ALSA modular synthesizer:
Ausprobieren LFO, VCO, VCF, MCV, ADSR (Env)
die zeitliche Umkehrung einer ADSR-Kurve ist im allgemeinen nicht ADSR – sondern nur für welche Parameter?
Nachbilden bestimmter Klänge
base drum,
snare drum,
der Grashüpfer in Biene Maja (deutsche Tonspur der japanischen Verfilmung von 1975)
Becken (hihat, crash, ride)
Metallophon,
Flexaphon (Hörbeispiel: ca. bei 0:55 in Can: Sing Swan Song, 1972)
Xylophon,
Orgelpfeife, (Pan)Flöte
einzelner Wassertropfen, Regen, Wasserfall, Meer
elektrische Schaltungen zur Klangerzeugung …
real bauen (Analog-Synthesizer, Moog, Buchla, …)
oder simulieren. Bedienung/Beschreibung
grafisch (alsa modular synthesizer)
textuell (durch eine DSL)
separate DSL, Bsp: Csound
https://csound.com/, Barry Vercoe 1985
eingebettete DSL (in Haskell): csound-expression
https://hackage.haskell.org/package/csound-expression, Anton Kholomiov
hall 0.5 ( usqr 6 * (sqr (400 * usaw 2.1)))
Klangbeschreibung durch algebraischen Ausdruck
hall 0.5 ( usqr 6 * (sqr (400 * usaw 2.1)))
verwendet:
Operatoren aus Csound-API (VCO, VCF, …)
(Spannungs-)Steuerung durch passende Argumente
Haskell (Typen, Funktionen, *
, map
, …)
wird in Csound-Ausdruck kompiliert, (ansehen mit
( renderCsd $ hall ...) >>= putStrLn
)
dieser wird an Csound-Server gesendet, dieser führt Simulation durch (berechnet Amplitudenverlauf)
Fourier-Darstellung der Rechteck-Schwingung
let f = 300
in sum $ map (\k -> (osc $ k * f) / k )
$ map fromIntegral [1, 3 .. 9]
das funktioniert, weil…
k
und f
den Typ Sig
haben (nicht Zahl!)
für Sig
die Addition definiert ist (instance Num Sig
)
Klang vergleichen mit sqr f
, obere Grenze (9) variieren
Übung: desgl. für Sägezahn-Schwingung,
für Summe vieler harmonischer S. mit zufälliger Frequenz
Wind https://hackage.haskell.org/package/csound-catalog-0.7.2/docs/Csound-Catalog-Wave.html#v:mildWind
Schlagzeuge (Hans Mikelson) https://hackage.haskell.org/package/csound-catalog-0.7.2/docs/Csound-Catalog-Drum-Hm.html
Glocke (noiseBell) u.a. https://hackage.haskell.org/package/csound-catalog-0.7.2/docs/Csound-Catalog-Wave.html#v:noiseBell
Lev (Leon) Termen, 1922, Rußland
wird berührungslos (!) gespielt, Prinzipien:
durch Handbewegung wird Kapazität eines Kondensators in einem HF-Schwingkreis (170 kHz) (!) geändert, dadurch die Frequenz der Schwingung
Tonhöhe: vom HF-Summensignal hört man nur die (niederfrequente) Differenzfrequenz zu einem zweiten (nicht verstimmten) Schwingkreis,
vgl. dac $ osc 30000 + osc 30300
Lautstärke: HF-Bandpaß und Gleichrichtung erzeugt Steuerspannung für VCA
Hörbeispiel: Captain Beefheart: Electricity, 1967
MIDI-Signalquelle
reelles Keyboard: https://github.com/spell-music/csound-expression/issues/51
virtuelles Keyboard:
vdac $ midi $ \ m -> return $ osc $ sig $ cpsmidi m
Signaturen:
midi :: Sigs a => (Msg -> SE a) -> SE a
cpsmidi :: Msg -> D
sig :: D -> Sig
osc :: Sig -> Sig
vdac :: RenderCsd a => a -> IO ()
return :: Monad m => a -> m a
Verwendung von GUI-Elementen aus Csound:
dac $ do
(g,f) <- slider "f" (expSpan 20 2e4) 440
panel g ; return $ osc f
Signaturen:
slider :: String -> ValSpan -> Double -> Source Sig
expSpan :: Double -> Double -> ValSpan
type Source a = SE (Gui, Input a); type Input a = a
panel :: Gui -> SE () ; osc :: Sig -> Sig
dac :: RenderCsd a => a -> IO ()
mehrere Element kombinieren durch hor,ver :: [Gui] -> Gui
csound-expression:
Types in Csound-Expression: https://www.imn.htwk-leipzig.de/~waldmann/etc/untutorial/ce/
Tonerzeugung https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/kw46/data
Benutzt wurden nur: osc, usaw, usqr, white, mul, at, (+), (-), (*), hall, fvdelay
zum Vergleich — Hörbeispiel: Autechre: Perlence (Album: Quaristice, 2008)
Tonerzeugung: Aufgaben von voriger Woche
GUI benutzen https://github.com/spell-music/csound-expression/blob/master/tutorial/chapters/FxFamily.md#ui-stompboxes
bisher: Geräusche,
Töne (Grundfrequenz, Obertöne, Spektren)
heute: welche Töne klingen gut
zusammen (in Akkorden),
nacheinander (in Melodien)?
später:
Folgen von Akkorden (Kadenzen),
Führung mehrerer Stimmen (Kontrapunkt)
und Notation dafür (algebraisch, grafisch – Partituren)
Hermann von Helmholtz: Die Lehre von den Tonempfindungen als physiologische Grundlage für die Theorie der Musik, Vieweg 1863.
https://reader.digitale-sammlungen.de/de/fs1/object/display/bsb10598685_00366.html
(von H.H. zitiert) Leonhard Euler: Tentamen novae theoriae Musicae, Petropoli, 1739.
http://eulerarchive.maa.org/pages/E033.html,
vgl. Patrice Bailhache: Music translated into Mathematics, https://web.archive.org/web/20050313140417/http://sonic-arts.org/monzo/euler/euler-en.htm
Hugo Riemann: Katechismus der Harmonielehre, 1890
bei schwingender Saite, schwingender Luftsäule
kommen neben Grundton \(f\) ganzzahlige Obertöne vor,
bilden die Naturtonreihe \(f, 2f, 3f, 4f, 5f,\dots\)
einzelne Obertöne lassen sich durch passende Spielweise betonen (isolieren) (z.B. Flageolett)
Bsp: Canned Heat: On the Road Again, 196?. (Flageolett-Töne im Intro)
die Naturtonreihe bis \(15f\) reduziert (durch Halbieren)
1, | 9/8, | 5/4, | 11/8, | 3/2, | 13/8, | 7/4, | 15/8, | 2 |
c | d | e | \(\approx\) f | g | \(\approx\) a\(\flat\) | \(\approx\) b\(\flat\), | \(\approx\) b | c’ |
11/8: das Alphorn-Fa
wie stimmt man Instrumente mit mehreren Saiten?
wie stimmt man Instrumente mit mehreren Saiten \(f, g,\dots\)
\(g\) nicht als Oberton von \(f\),
sondern wir wollen neue Töne. Welche?
Töne wie z.B. 300 Hz, 315 Hz
klingen nicht gut zusammen (sondern rauh, dissonant)
das Ohr nimmt die Schwebung (mit 15 Hz) wahr
Schwebungen zw. 10 Hz und 40 Hz sind unangenehm
(nach Helmholtz: 33 Hz ist am schlimmsten)
konsonante Töne haben keine solchen Schwebungen
\(f,g\) konsonant \(:=_\text{def}\) keine Schwebung geringer Frequenz zwischen Obertönen von \(f\) und Obertönen von \(g\).
\(\displaystyle S(f,g) := \min\{ |a\cdot f - b\cdot g| : a,b\in \mathbb{N}, af \neq bg \}\)
Bsp: \(S(300, 315), S(270, 375), S(270,360) \dots\)
Satz: \(S(f,g)\) ist der …von \(f\) und \(g\).
(Begriff und Berechnung bekannt aus 1. Semester)
\(f,g\) konsonant, wenn \(\gcd(f,g)\) groß …
absolut: \(\gcd(f,g)> 40 \text{Hz}\)
relativ: \(\gcd(f,g)/\max (f,g)\to \text{groß}\)
Hör-Eindruck: \((80,120)\) gegenüber \((480,520)\)
spricht für die relative Definition.
Def: \(R(f,g) := \gcd(f,g)/\max(f,g)\)
hier \(\gcd(f,g)\) auch für \(f,g\in \QQ\) definiert als \(\min_{a,b}\{af - bg\}\)
Aufg: Bestimme \(1=f_0<f_1\ldots <f_k=2\)
mit \(W(f)=\min \{R(f_i,f_j)\mid 0\le i<j\le k\}\) maximal
Bsp: \(k=3\). Für \(1, 4/3, 5/3, 2\) ist \(W(f)=\dots\), geht besser?
nach Pythagoras (ca. 500 v.Chr.) konstruiere Tonmenge
beginne mit 1 (Grundfrequenz)
multipliziere mit 3/2,
multipliziere mit 1/2, falls \(>2\)
\(\displaystyle \begin{array}{ccccccccc} 1,& \frac{3}{2},& \frac{9}{4} \to \frac{9}{8},& \frac{27}{16},& \frac{81}{32}\to \frac{81}{64},& \frac{243}{128},&\frac{729}{256} \to \frac{729}{512},&\dots \\ c&g&d&a&e&b& f\sharp & c\sharp & \end{array}\)
pentatonische Skala: die ersten 5 Töne dieser Reihe,
nach Frequenzen geordnet \(c,d,e,g,a\)
Bsp: The Monochrome Set: Iceman, Album: Spaces Everywhere, 2015. (Intro, Skala von \(d\): \(\{d,e,f\sharp,a, b\}\))
diatonische Skala: die ersten 7 Töne dieser Reihe
geordnet \(g,a,b,c,d,e,f\sharp\)
(bisher) aufsteigend \(c,g,d,a,e,b,f\sharp,c\sharp, g\sharp,d\sharp,a\sharp,e\sharp,b\sharp,f\sharp\sharp,\dots\)
absteigend: beginne mit \(2\), mult. mit \(2/3\), ggf. mit \(2\)
\(\displaystyle \begin{array}{ccccccccc} 2,& \frac{4}{3},& \frac{8}{9} \to \frac{16}{9},& \dots \\ c', & f, & b\flat, & e\flat, & a\flat, & d\flat, & g\flat, c\flat,f\flat,b\flat\flat,\dots \end{array}\)
vereinige die jeweils ersten 7 Töne, ordne.
\(c, d\flat,d,e\flat,e,f, \underline{g\flat, f\sharp}, g, a\flat,a, b\flat,b,c'\)
Abstände sind
\(2^8/3^5\approx 1.053\) (zw. \(b\) und \(c'\)), \(3^7/2^{11}\approx 1.068\) (zw. \(b\flat\) und \(b\)),
sowie \(3^{12}/2^{19} \approx 1.013\)
die pythagoreische Reihe enthält 12 exakte 3:2
\(g\flat\to d\flat\to a\flat\to e\flat\to b\flat\to f\to c\to g\to d\to a\to e\to b\to f\sharp\)
schließt nicht: \(1\neq (3/2)^{12}/ (2/1)^7\) (pythagoreisches Komma)
Konsonanzen aus der Naturtonreihe fehlen, z.B. 4:5:6.
angenähert durch \(c:e:g =1:\frac{81}{64}:\frac{3}{2}\)
der Fehler \(\frac{81}{64}/\frac{5}{4}\) ist das diatonische Komma
reine Stimmung: 4:5:6 für spezielle Akkorde:
Tonika c,e,g, Subdominante f,a,c, Dominante g,b,d.
gleichtemperierte St.: das pythagoreische Komma wird geschlossen, d.h., g:c \(= 2^{7/12}\approx 1.4983\)
mit \(f=2/3\cdotc, g = 3/2\cdot c, d = 9/8 \cdot c, \dots\)
\(c \stackrel{T}{-} d \stackrel{T}{-} e \stackrel{S}{-} f \stackrel{T}{-} g \stackrel{T}{-} a \stackrel{T}{-} b \stackrel{S}{-} c'\)
die Abstände sind: T: Ganzton, S: Halbton
hiervon sind die Intervallbezeichnungen abgeleitet:
Sekunde, Terz, Quarte, Quinte, Sexte, Septime, Oktave.
große Terz (\(2T\)) \(c-e,\dots\), kleine Terz (\(T+S\)): \(e-g,\dots\)
der Modus beschreibt eine zyklische Verschiebung:
ionisch (Dur): \(c,d,\dots\),
äolisch (Moll): \(a, b,\dots\).
Grundformen (konsonant):
Dur (große Terz, kleine Terz) \(C = \{c, e, g\}\)
in C-Dur-Skala enthalten: \(C, F, G\)
Moll (kleine Terz, große Terz) \(C^- =\{c, e\flat, g\}\)
in C-Dur-Skala enthalten: \(D^-, E^-, A^-\)
Modifikationen (dissonant):
vermindert: (kleine, kleine) \(C^0 = \{c, e\flat, g\flat\}\)
in C-Dur-Skala enthalten: \(B^0\)
vergrößert: (große, große) \(C^+ = \{c, e, g\sharp\}\)
nicht in C-Dur-Skala enthalten.
Dreiklang plus Septime (kleine oder große)
Bsp: \(C^7=\{c,e,g,b\flat\}, C^\text{maj7}=\{c,e,g,b\}\)
skalen-eigene Vierklänge:
\(C^\text{maj7}=\{c,e,g,b\},D^{-7}=\{d,f,a,c\},\) \(E^{-7},F^\text{maj7}, G^{-7},A^{-7},B^{-7 (\flat 5)}\)
simple Realisierung in electribe 2
:
Dur-Skala, 4 Noten pro Akkord (Grundton, \(+2, +4, +6\)),
da kann überhaupt nichts schief gehen, …
auch bei frei improvisierter Melodie nicht
(XY-Pad: X ist Tonhöhe (aus Skala), Y ist Arpeggio)
das klingt aber doch beliebig,
woher kommt die musikalische Spannung?
bestimmen Sie die Frequenzverhältnisse für C-Dur, d-Moll und e-Moll in der C-Dur-Skala bei Stimmung
diatonisch
rein
gleich temperiert
und vergleiche Sie akustisch (csound-expression)
Konstruktion der chromatischen Töne nach Paul Hindemith (Unterweisung im Tonsatz, 1937):
zu jedem Ton aus der Obertonreihe des Grundtons (c) werden mögliche Grundtöne bestimmt. Bsp: \(5\cdot c = 4\cdot ?\).
Dabei Multiplikation mit \(1 \dots 6\), Division durch \(1,(2), 3, (4), 5\), mit Identifikation von Oktaven.
Welche Töne entstehen aus c?
Dieser Vorgang wird für jeden der entstandenen Töne wiederholt.
Welche neuen Töne enstehen? Sind die Abstände gleichmäßig (oder fehlen noch Töne)? Vergleich mit pythagoreischer Skala.
was hat H. Helmholtz auf S. 291f. gerechnet/gezeichnet? Rekonstruieren Sie die einfachste mathematische Formel, erzeugen Sie daraus die Diagramme, vergleichen Sie mit denen im Buch
was hat L. Euler gerechnet? (Helmholtz S. 349, Fußnote) Überführen Sie die dort zitierte rekursive Definition der Stufenzahl in eine explizite Formel.
Bestimmen Sie die Stufenzahl der Akkorde aus der 1. Aufgabe.
Wo steht die Definition im Originaltext von Euler?
mit csound-expression oder alsa-modular-synthesizer (Module: CV: Random, Quantizer)
Akkorde (Dreiklänge, Vierklänge) erzeugen.
Akkorde aus einer Skala zufällig aneinanderreihen,
dazu eine zufällige Melodie aus dieser Skala
zur Stimmung der Gitarre:
man kann die unteren (tiefen) Saiten so stimmen: Saite mit Flagoelett bei 1/4 \(=\) nächst-höhere Saite mit Flageolett bei 1/3.
Welches Intervall ist das? Wenn man bei tiefem E beginnt und alle Saitenpaaare so stimmt, welcher Ton ist dann auf der 6. (höchsten) Saite?
Das Intervall zwischen 4. und 5. Saite wird bei üblicher Stimmung um einen halben Ton verringert.
Es werden gern auch abweichende Stimmungen verwendet, vgl. http://www.sonicyouth.com/mustang/tab/tuning.html Warum?
Bsp: Sonic Youth: Hyperstation, Album: Daydream Nation (1988)
Das Bild auf der Hülle ist https://www.gerhard-richter.com/en/art/paintings/photo-paintings/candles-6/candle-5195/
Wie ist die Gitarre im Intro von On the Road Again gestimmt?
Der 4. Ton bleibt liegen, wird bei Beginn des Themas verschoben. Wohin, warum?
in csound-expression nachbauen! Spezifikation von Tonfolgen vgl.
notes = fmap temp $ fmap (220 * ) [1, 5/4, 3/2, 2]
q = mel [mel notes, har notes]
dac $ mix $ sco oscInstr q
klassisch: Musikstück repräsentiert durch Partitur,
Ton repräsentiert d. Note, bezeichnet Tonhöhe, -dauer
Tempo, Klangfarbe, Lautstärke
durch weiter Annotationen spezifiziert
oder nicht, d.h., dem Interpreten überlassen
Komposition:
Noten nebeneinander bedeutet Töne nacheinander
Noten (Zeilen) übereinander: Töne (Stimmen) gleichzeitig
jetzt: Musikstück repräsent. d. (abstrakten Syntax-)Baum
Paul Hudak , Tom Makucevich , Syam Gadde , Bo Whong: Haskore Music Notation - An Algebra of Music, JFP 1995, http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.8687
Partitur kompiliert zu MIDI-Strom, der von Hard- oder Software-Synthesizer interpretiert wird
Anton Kholomiov: Csound-Expression Tutorial – Scores, https://github.com/spell-music/csound-expression/blob/master/tutorial/chapters/ScoresTutorial.md
Partitur wird durch Csound-Instrumente interpretiert,
P. kann Csound-spezifische Elemente enthalten
data Score
= Note Pitch Duration
| Rest Duration
| Seq [ Score ]
| Par [ Score ]
| Use Instrument Score
c = 0 :: Pitch; cis = 1 :: Pitch, d = 2 :: Pitch, ...
q = 1/4 :: Duration; o = 1/8 :: Duration; ...
s :: Score
s = Use Piano
$ Seq [ Note c q, Rest o
, Par [ Note e o, Note g o ] ]
minor :: Pitch -> Duration -> Score
minor x d =
Par [ Note x d , Note (x+3) d, Note (x+7) d ]
bass =
Seq [ Note e (3*q) , Note b q, Note (b-12) q ]
chords = Seq [ Rest o, minor e o
, Rest q, minor e q , Rest q, minor b q ]
score = Par
[ Seq $ replicate 4 [ bass, chords ]
, Seq [ Rest (3*q), Note (b-12) o
, Note d o, Note e o, Note g o, Note bes o, ... ] ]
benutzerdefinierte Namen (bass
), Funktionen (minor
), Standard-Funktionen (replicate
), Typisierung
data Event =
Event Time Instrument Pitch Duration'
type Performance = [ Event ]
Startzeitpunkt und Dauer in Sekunden, Liste schwach monoton steigend bzg. Startzeitpunkten
perform :: (Time, Instrument, Tempo)
-> Score -> (Performance, Time)
perform (start, inst, temp) s = case s of
Rest d -> ( [], start + temp * d )
Note p d -> ( [ Event start inst (temp * d) ], start + temp * d )
Seq2 x y ->
let (xs, mid) = perform (start, ...) x
(ys, end) = perform (mid , ...) y
in (xs <> ys, end)
sequentielle, parallele Komposition: Seq, Par :: [Score] -> Score
Transposition (Tonhöhen-Verschiebung):
Transpose :: Pitch -> Score -> Score
Tempo-Skalierung
Scale :: Rational -> Score -> Score
dabei immer zwei Möglichkeiten: Operation ist …
reifiziert (\(=\) verdinglicht), d.h., Konstruktor im AST)
interpretiert, d.h., beliebige Funktion von AST nach AST
scale :: Rational -> Score -> Score
scale r s = case s of
Note p d -> Note p (r * d) ; ...
für zweistellige Versionen der Kompositionen
seq2, par2 :: Score -> Score -> Score
seq2 x y = Seq [x,y]; par2 x y = Par [x,y]
seq2
ist semantisch assoziativ: für alle \(p,x,y,z\)
perform p (seq2 (seq2 x y) z)
= perform p (seq2 x (seq2 y z))
neutrales Element? kommutativ? Desgl. für par2
gelten Distributiv-Gesetze? (Nein).
Ü: wann sind par2 (seq2 a b) (seq2 c d)
und seq2 (par2 a c) (par2 b d)
semantisch gleich?
Cantus Firmus (feststehende Melodie, die anderen Stimmen sind Verzierung)
Kontrapunkt (Note gegen Note): Vorschriften zur Konstruktion der Begleit-Stimmen, u.a.
Konsonanzen zu bestimmten (schweren) Zeitpunkten
keine Parallelen (gleichmäßiges Auf- oder Absteigen)
Fuge (Flucht, die Stimmen fliehen voreinander) alle Stimmen sind aus einem Thema konstruiert durch
zeitlichen Versatz (Kanon), zeitliche Spiegelung
Versatz der Tonhöhe, Skalierung des Tempos, …
Kadenzen (Akkordfolgen) mit untergeordneten Stimmen
eine Stimme wird mehrfach zeitlich versetzt
Beispiel: Karl Gottlieb Hering (1766-1853): C A F F E E
X: 1 K: F M: 3/4 "1."c2 A2 F2 | F2 E2 E2 | E2 G2 E2 | F E F G F2 | w:C A F F E E trink nicht so viel* Caf* fe "2."A A c c A A | B A B c B2 | G G B B G G | A G A B A2 | w:nicht für Kin-der ist der Tür* ken* trank L: 1/4 "3."F F F | G G G | C C c | c C F | w:sei doch kein Mu-sel-man der das nicht las-sen kann
Übung: 1. Harmonien bestimmen, 2. programmieren
eine anspruchsvolle Form des Kontrapunktes. alle Stimmen sind aus einem Thema konstruiert durch
zeitlichen Versatz (wie im Kanon)
Versatz der Tonhöhe
zeitliche Spiegelung
Tonhöhen-Spiegelung
Skalierung des Tempos
Johann Sebastian Bach (1685–1750): Die Kunst der Fuge, Contrapunctus XV - Canon per Augmentationem in Contrario Motu, (Solist: Pierre-Laurent Aimard, 2008)
http://www.mutopiaproject.org/ftp/BachJS/BWV1080/contrapunctusXV/
Ü: Operatoren in Partitur erkennen, implementieren
Grundformen: Dur und Moll
major x d =
Par [ Note x d , Note (x+4) d, Note (x+7) d ]
minor x d =
Par [ Note x d , Note (x+3) d, Note (x+7) d ]
mit Septime (kleiner, großer)
major7 x d = Par
[ Note x d, Note (x+4) d, Note (x+7) d, Note (x+10) d ]
major7maj x d = Par
[ Note x d, Note (x+4) d, Note (x+7) d, Note (x+11) d ]
weitere Varianten durch Umstellen (anderer Grundton); Hinzufügen, Ändern, Weglassen von Tönen
lateinisch cadere \(=\) fallen
die Voll-Kadenz (Quinten abwärts) in C-Dur:
3kl. | \(C\) | \(F\) | \(B^0\) | \(E^-\) | \(A^-\) | \(D^-\) | \(G\) | \(C\) |
4kl. | \(C^{\maj7}\) | \(F^{\maj7}\) | \(B^{-7(\flat 5)}\) | \(E^{-7}\) | \(A^{-7}\) | \(D^{-7}\) | \(G^{7}\) | \(C^7\) |
Ton | I | IV | VII | III | VI | II | V | I |
T | S | Dp | Tp | Sp | D | T |
verkürze, ersetze \(B^0=\{b,d,f(,a)\}\) durch \(G=\{g,b,d(,f)\}\),
ergibt die Kadenz: \(C,F,G,C = T, S, D, T\)
Tonika (1,3,5), Dominante (5,7,9),Subdominante (4,6,8),
Dur: \(T= (c,e,g)\), \(S=(f,a,c)\), \(D=(g,b,d)\),
Moll: \(t=(c,e\flat,g)\), \(s=(f,a\flat,c)\), \(d=(g,b\flat,d)\)
Betrachtung der Akkorde nach ihrer (vermuteten, häufigen) Funktion in musikalischer Phrase.
nach Hugo Riemann (1849–1919):
T These, S Antithese, D Synthese.
in einer Kadenz können Akkorde durch Parallelen vertreten werden
die Parallelen (mit gleicher großer Terz)
\(Tp = (-1,1,3) = (a,c,e)\), \(tP = (3,5,7) = (e\flat,g,b\flat)\),
entsprechend \(Dp, dP, Sp, sP\)
The Beatles: Penny Lane: T, Tp, Sp, D (C, Am, Dm, G)
harmonische Analyse einer Stelle aus Bach: BWV 268
Über Hugo Riemann, von dessen Sohn Robert: http://www.hugo-riemann.de/
Kritik an Riemann durch Heinrich Schenker (1868–1935) https://web.archive.org/web/20120403032916/http://www.schenkerdocumentsonline.org:80/profiles/person/entity-000712.html
Kritik an einer Kritik an Schenkers Theorie der Urlinie https://web.archive.org/web/20160731145955/http://schenkerdocumentsonline.org/documents/other/OJ-21-24_1.html
Kadenz T S (T) D T
Beispiele: tausende, u.a. Beach Boys: Little Honda, 1964 (Version von Yo La Tengo, 1997)
Strophe: \(D D D D | G G D D | A A D A\)
The Jesus and Mary Chain: Upside Down, 1984 (auf Creation Records). Strophe: \(4\cdot (G G G C) ~ 4\cdot C ~ 4\cdot G\)
Beatles: Tomorrow Never Knows, 1966.
Lou Reed: One chord is fine. Two chords is pushing it. Three chords and you’re into jazz.
Thelonius Monk: Round Midnight, 1944
zu Folie Partitur und Interpretation:
Warum schwach monoton, nicht stark?
Welche Rechnung muß im Zweig Par2 x y ->
stattfinden? Wie werden die Teilresultate verknüpft?
Welches ist der abstrakte Datentyp für [Event]
(welche Operationen gehören zur API)? Welche effiziente Implementierungen dafür kennen Sie?
Fragen von Folie Eigenschaften der Operationen
zu Bach: Contrapunktus XV (canon per augmentationem in contrariu motu)
Bestimmen Sie die globale zeitliche Struktur der Komposition.
Der 1.Takt der 1. Stimme erscheint (gedehnt und gespiegelt) in Takt 5 und 6 der 2. Stimme. Wo noch?
Was zeigt der Trennstrich nach Takt 52 an?
Bestimmen Sie die Tonhöhen-Abbildung (Spiegelung) von erster zu zweiter Stimme.
Lesehilfe: Der Violin-Schlüssel bezeichnet das G (der Kringel, zweite Notenlinie von unten), der Baß-Schlüssel bezeichnet das F (der Doppelpunkt, zweite Notenlinie von oben)
Programmieren Sie den CAFFEE-Kanon (3 Stimmen, jede mit eigenem Instrument).
Ergänzen Sie https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/blob/master/kw47/Caffee.hs
Beschreibung der Bibliotheks-Funktionen: https://github.com/spell-music/csound-expression/blob/master/tutorial/chapters/ScoresTutorial.md
Benutzen Sie eine Darstellung (d.h., Unterprogramme), die die lokale Strukur ausnutzt, z.B.: zweite Häfte der 2. Zeile ist Transposition der ersten Hälfte.
Wir verschieben nicht chromatisch (2 Halbtöne), sondern diatonisch (1 Ton in der F-Dur-Skala).
Realisieren Sie auf ähnliche Weise eine Voll-Kadenz
effizient programmieren unter Benutzung der Skalen-Numerierung
eine dazu passende Melodie programmieren
Hinweis: jede Melodie (aus Skalentönen) paßt
klassische Partitur beschreibt das Musikstück extensional (durch Angabe der zu spielenden Töne)
jetzt: intensional (durch Angabe einer Vorschrift (Algorithmus) zur Bestimmung der zu spielenden Töne )
z.B. algebraische Ausdrücke (par, seq)
jetzt auch: randomisierte Algorithmen zur Komposition
Aufführung durch Maschinen oder Menschen
mit Würfeln und Tabellen:
Johann Philipp Kirnberger: Der allzeit fertige Menuetten- und Polonaisen-Komponist, 1757
Carl Philipp Emanuel Bach: Einfall einen doppelten Contrapunct in der Oktave von sechs Tacten zu machen ohne die Regeln davon zu wissen, 1758
mit Rechenmaschinen
Lejaren Hiller, Loenard Isaacson: Illiac Suite, 1955
das Ziel ist hier immer die Nachahmung bekannter Musikstile
hier geht es um wirklich neue Musik:
Iannis Xenakis: http://iannis-xenakis.org/
Metastasis, 1955; Buch Formalized Music — Thought and Mathematics in Music, 1963,
Gottfried Michael Koenig http://www.koenigproject.nl/, Projekt 1 1964, Projekt 2 1966, Sound Synthesis Program 1971
RU-Prinzip: inspiriert von der Unwiederholbarkeit von Reihenelementen (unregelmäßig) einerseits und den gruppenbildenden Multiplikations-reihen (regelmäßig) andererseits.
die Kompositions-Aufgabe: bestimme eine (bestmögliche) Partitur, die diese Bedingungen (Constraints) erfüllt:
Randbedingungen
(Anzahl Stimmen, Tonart, Metrum, Anzahl Takte)
musikalische Regeln (keine Dissonanzen, Parallelen)
ggf. Ähnlichkeit zu Vorlagen
(Bsp: eine Fuge im Stil von Bach)
ggf. Vermeidung der Ähnlichkeit zu Vorlagen
(Bsp: eine Fuge, aber anders als die vorige)
maschinelle Lösung dieser Aufgabe durch
exakte Verfahren (vgl. VL Constraint-Programmierung)
statistische Näherungsverfahren (sog. maschinelles Lernen)
Constraint: Häufigkeiten aufeinanderfolgender Töne
Modell: stochastischer endlicher Automat (Markov-Prozeß)
Constraint: Häufigkeiten globaler Strukturelemente
Modell: stochastische generative Grammatik
Constraint: spannendes Verhältnis zwischen mehreren Stimmen
Modell: Zweipersonenspiel
Constraint: Regelmäßigkeit ohne Wiederholungen
Modell: zellulärer Automat, Lindenmayer-System
wenn die Kompositionsarbeit scheinbar durch einen Computer übernommen wird — welche Rolle haben: der Komponist? der Interpret? der Hörer?
der kreative Vorgang ist: Komponist schreibt das Programm (wenigstens: wählt Programme aus und stellt die Parameter ein)
bei live coding (dazu später mehr) ist das ein zentraler Aspekt (Publikum sieht den Bildschirm des Komponisten)
vgl. aber Joseph Schillinger: The Mathematical Basis of the Arts, 1943. (S. 17: fünf Erscheinungsformen der Künste) https://archive.org/details/TheMathematicalBasisOfTheArtsJosephSchillinger1943/
(klassische) Sprache über Alphabet \(\Sigma\) ist Abbildung \(L:\Sigma^*\to\{0,1\}\) (die Zweiermenge)
stochastische Sprache über \(\Sigma\) ist Abbildung \(L:\Sigma^*\to[0,1]\) (das Intervall reeller Zahlen)
\(L(w)\approx\) die Wahrscheinlichkeit, mit der \(w\in L\)
Plan: stochastische Sprache
für \(\Sigma=\) Elementar-Ereignisse (z.B. Noten)
so definieren, daß interessante \(w\in\Sigma^*\) hohe Wahrscheinlichkeit haben
durch endliches Objekt (Automat, Grammatik) repräsentieren
ein endlicher stochastischer Automat \(A\) besteht aus:
Zustandsmenge \(Q\)
Initialvektor \(I\in (Q\to [0,1])\),
Transitionsmatrix \(T\in (Q\times Q\to [0,1])\).
wobei \(I\) stochastischer Vektor (\(\sum_{q\in Q}I(q)=1\))
und \(T\) stoch. Matrix (jede Zeile ist stoch. Vektor)
stochastischer Prozeß erzeugt Wort \(w=q_0 q_1\dots q_n\in Q^n\):
wähle \(q_0\in Q\) nach Verteilung \(I\),
wähle \(q_{k+1}\in Q\) nach Verteilung \(T(q_k)\).
Anwendungen in der Musik: \(Q=\) Noten, \(Q =\) Akkorde.
dabei wird aber die globale Struktur (nach Riemann: die Funktion der Akkorde) ignoriert!
Kontextfreie Grammatik beschreibt Satzbau von natürlichen (und künstlichen) Sprachen und Musik
Jeder Satz hat Subjekt und Prädikat \(\approx\)
jede Kadenz beginnt und schließt mit Tonika.
stochastische CFG: wie klassisch, zusätzlich zu jeder Variablen \(l\) ein Wsk-Vektor \(\vec{v}\) über alle Regeln, \([(v_1,l\to r_1),\ldots,(v_n,l\to r_n)]\)
Bsp: mittlere Wortlänge für \([(1/2, S\to b),(1/2, S\to aSS)]\)
Ü: Beziehung stoch-CFG/Markov-Prozesse
(MP \(\approx\) endlicher Automat \(=\) Typ-3-Grammatik \(\subseteq\) Typ-2-Grammatik)
Donya Quick and Paul Hudak: Grammar-Based Automated Music Composition in Haskell, http://functional-art.org/2013/quick.pdf, Workshop on Functional Art, Music, Modeling and Design (FARM)
D0L-System besteht aus
Axiom \(S\in\Sigma\), Funktion \(\phi:\Sigma\to\Sigma^*\) mit \(S\sqsubset \phi(S)\)
\(F=(0, \{0\mapsto 01, 1\mapsto 0\}),\) \(G=(a,\{a\mapsto abc, b\mapsto ac, c\mapsto b\})\)
Aristide Lindenmayer (1925–1989), http://algorithmicbotany.org/papers/#abop
definiert Folge \(S, \phi(S), \phi^2(S),\dots\) mit \(i<j\Rightarrow \phi^i(S)\sqsubset \phi^j(S)\)
d.h. Folge hat Limes \(\phi^\omega(S) \in\Sigma^\omega\)
\(w_F= 01001 01\dots\), \(w_G= abc ac b abc b ac abc \dots\)
Satz: \(w_G\) ist quadratfrei, d.h., enthält kein Teilwort \(uu\).
Anwendung: Tonfolge konstruiert aus \(w_G\) enthält keine benachbarten Wiederholungen
Algorithmische Komposition
Beispiel: http://www.donyaquick.com/interesting-music-in-four-lines-of-code/.
benutzt Bibliothek Euterpea zur MIDI-Signalerzeugung (https://hackage.haskell.org/package/Euterpea, http://www.euterpea.com/)
MIDI-Instrument vorbereiten: z.B. qsynth
starten, dann in qjackctl
: Connect \(\to\) Alsa: Midi Through mit Fluidsynth verbinden. (Euterpea schickt Noten auf Midi Through.)
Quelltext laden und abspielen:
ghci partitur.hs
playX x2
verwenden Sie die Musik-Operatoren einzeln, ändern Sie die Komposition
Installation: im Pool schon erfolgt, sonst https://github.com/sternenseemann/Euterpea2
Implementieren Sie Steve Reich: Piano Phase (1967).
Aufführung (Peter Aidu, 2006, solo!) https://archive.org/details/top.09,
Beschreibung: https://en.wikipedia.org/wiki/Piano_Phase#First_section
Stochastische Musik:
https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/blob/master/kw48/stoch.hs
zufällige Permutation: Implementierung vervollständigen
deterministische nichtperiodische Musik
benutzen Sie https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/blob/master/kw48/dnp.hs
Quelle: Thor Magnusson und Alex McLean: P.w.P.o.T, Kap. 14 in: Oxford Handbook of Algorithmic Music, OUP 2018, https://slab.org/publications/
Software: https://tidalcycles.org/
algebraische Beschreibung von periodischen Verläufen (Parameter für Klänge), eingebettete (in Haskell) DSL
Back-end: https://supercollider.github.io/ James McCartney, 1996–
Tidal benutzt SC zum Abspielen von Samples
Tidal ist System für live-coding (durch ghci-Kommandos)
Sound-Server (supercollider) starten
sclang dirt_startup.scd
Ghci starten
ghci
:script BootTidal.hs
Klänge ausgeben
d1 $ s "bd [sn sn]"
d2 $ s "[jvbass*2]*2" |*| n "0 1 2 3 4"
hush
ein Muster m :: Pattern a
beschreibt eine periodische Abbildung von Zeit nach a
elementares Muster: pure x
mit Periode 1
c :: ControlMap
Parameter zum Sample-Abspielen
s: Verzeichnis, n: Datei-Nummer, gain, delaytime, …
Funktionen zum Abspielen:
d1, d2, ... :: Pattern ControlMap -> IO ()
let p = pure $ M.fromList [("s", VS "bd")]
d1 p
queryArc p (0,3)
[(0>1)|s: "bd",(1>2)|s: "bd",(2>3)|s: "bd"]
Bsp. verwenden p = run 3
, mit queryArc p (0,1)
==> [(0>1/3)|0, (1/3>2/3)|1, (2/3>1)|2]
Transformation der Werte fmap (\ x -> x+1) p
==> [(0>1/3)|1, (1/3>2/3)|2, (2/3>1)|3]
zeitliche Verschiebung (1/3) <~ run 3
==> [(0>1/3)|1, (1/3>2/3)|2, (2/3>1)|0]
zeitliche Streckung slow 2 p
[(0>2/3)|0, (2/3>1)-4/3|1, 2/3-(1>4/3)|1, (4/3>2)|2]
Muster nacheinander: cat :: [Pattern a] -> Pattern a
cat [p, p] ==>
[(0>1/3)|0, (1/3>2/3)|1, (2/3>1)|2, (1>4/3)|0, (4/5>5/3)|1, (5/3>2)|2]
fastcat
wie cat
, aber Resultat auf Länge 1 gestaucht
fastcat [p, p] ==>
[(0>1/6)|0, (1/6>1/3)|1, (1/3>1/2)|2, (1/2>2/3)|0, (2/3>5/6)|1, (5/6>1)|2]
Muster gleichzeitig: stack :: [Pattern a] -> Pattern a
fast 3 $ stack [ slow 2 (s "sn"), slow 3 (s "bd") ]
zusätzlich zur bisher beschriebenen eDSL:
eine konkrete Syntax für fastcat
und stack
s $ fromString "bd sn"
ist äquivalent zu
s $ fastcat [ pure "bd", pure "sn" ]
mit :set -XOverloadedStrings
: s "bd sn"
in den Strings gilt:
Hintereinanderschreiben: fastcat
x*3
bedeutet: fastcat $ replicate 3 x
in Klammern []
mit Komma: stack
x?
bedeutet: degrade x
Bsp: "[[bd sn?]*2, [hc?*2 ho]*4]"
man kann in Tidal sehr leicht sehr schwierige Rhythmen hinschreiben (z.B., "[[bd*2, sn*3], hc*5]"
)
das kann wahrscheinlich kein Mensch spielen und will auch keiner hören (jedoch: Piano Phase)
welche Rhythmen kommen in der (europ.) Praxis vor?
4/4 (Polka, Rock’n’Roll), 3/4 (Walzer), Zwiefacher!
Hörbeispiele
Norma Tanega: You’re Dead, 1966
Lalo Shifrin: Mission Impossible (Theme) 1966
Billy Goldenberg: Kojak (Theme) 1973
Erich Ferstl: Alpha Alpha (Thema) 1972
Paul Desmond (rec. Dave Brubeck): Take Five, 1959
das ist die eigentliche Erfindung von Tidal
Kombination von zwei gleichzeitigen Mustern:
allgemeinster Fall: Verknüpfung durch beliebige Funktion
(,) <$> run 2 <*> run 3
[(0>1/3)|(0,0),(1/3>1/2)|(0,1),(1/2>2/3)|(1,1),(2/3>1)|(1,2)]
häufige Anwendung: Zusammensetzen von ControlMaps
s "bd arpy" |+| n (run 3)
(0>1/3)|n: 0.0f, s: "bd"
(1/3>1/2)|n: 1.0f, s: "bd"
(1/2>2/3)|n: 1.0f, s: "arpy"
(2/3>1)|n: 2.0f, s: "arpy"
Ausdrucksmittel sind hier (z.B. ggü. csound-expression) absichtlich beschränkt, Schwerpunkt von Tidal ist die Kombination von (zeitlichen) Mustern, nicht von Effekten
ein globaler Effekt-Weg, Parameter in ControlMap
d1 $ sound "sn"
# delay 0.7 # delaytime (2/3) # delayfeedback 0.7
# room 0.7 # size 0.9
# cutoff 400 # resonance 0.7
Parameter sind auch Muster, z.B., size "0.5 0.9"
durch orbit <string>
unabhängige Effektstrecken
stack [ .. # orbit "0", .. # orbit "1" ]
Kindohm at International Conference on Live Coding, October 15th 2016, at The Spice Factory, Hamilton, Ontario, Canada. https://www.youtube.com/watch?v=smQOiFt8e4Q
vgl. http://iclc.livecodenetwork.org/2015/papers.html, http://iclc.livecodenetwork.org/2016/papers.html
aktuelles Album: Mesabi Range https://nadarecs.bandcamp.com/album/kindohm-mesabi-range
Markov-Prozesse (falls Fragen zu autotool-Aufgabe)
Rhythmen:
weitere Beispiele für ungerade Takte in der Pop/Rockmusik mitbringen
z.B.: Go-Betweens: Cattle and Cane, 1983.
Das Bjorklund-Verfahren, siehe https://tidalcycles.org/patterns.html#bjorklund und dort zitiertes Paper von Toussaint.
Geben Sie eine formale Spezifikation an für möglichst gleichmäßige Verteilung von \(k\) Ereignissen auf \(n\) Zeitpunkte, begründen Sie, daß die angegebene Konstruktion diese Spezifikation erfüllt. Sind diese Lösungen eindeutig? Beispiel \(E(5,8)\).
bestätigen Sie die angegebenen Vorkommen von \(E(k,n)\) in der Natur, z.B. bei lateinamerikanischen Rhythmen.
Hörbeispiele Bossa Nova: Stan Getz/Joao Gilberto 1964, Quincy Jones: Big Band Bossa Nova 1962; Senor Coconut (Uwe Schmidt, Atom TM): El Baile Aleman, 2000.
Tidal installieren und starten
jack richtig configurieren, siehe https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18#hinweise-zur-richtigen-konfiguration-von-audio-hard-und-software
SuperDirt installieren
dann SC-Server starten mit sclang superdirt_startup.scd
Tidal-Cycles ist installiert, dann
ghci
:script BootTidal.hs
d1 $ s "bd sn"
hush
Tidal benutzen
Types in Tidal-Cycles: https://www.imn.htwk-leipzig.de/~waldmann/etc/untutorial/tc/ beachte insbesondere Semantik von cat
für einige Audio-Files (https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/kw49/data) den Tidal-Quelltext erraten. Hinweis: benutzt wurden s "casio:1"
, fast
, speed
, rev
, every
, room
Steve Reich: Piano Phase nachbauen.
Hinweis: chromatische Tonfolgen so möglich: s "sine" |+| speed (fmap (\i -> 2**(i/12)) "0 4 9"
Mike Hodnick: Deconstructing D-Code, https://blog.mikehodnick.com/deconstructing-d-code/
Antonio Carlos Jobim, Newton Mendonca: One Note Samba, Rec. Stan Getz, Charlie Byrd, 1962, LP Jazz Samba. Der Stil wurde als Bossa Nova bekannt.
Welche Rolle spielt der festgehaltene Ton (\(f\)) im jeweiligen Akkord? (\(D^{-7} D^{\flat7} C^{-7} B^{7\flat 5}\))
Programmieren Sie den Rhythmus (Stick ab 1:28 min)
Ziel: Methoden aus der Vorlesung benutzen, um eine musikalische Wirkung zu gestalten.
Ideen für Projekte:
(Standard: jedes Vorlesungsthema, siehe auch Übungsaufgaben)
Verknüpfung von zwei verschiedenen Themen
Hacks, d.h., Verwendung einer Methode/eines Werkzeugs zu einem nicht bestimmungsgemäßen Zweck
Verknüpfung mit Themen aus anderer Vorlesung, z.B. Robotik
Bezug zu Leipzig, z.B.
J. S. Bach, H. Riemann,
Musikautomaten https://mfm.uni-leipzig.de/dt/dasmuseum/Publik_6onlinepub.php
nützliche Software, z.B. autotool-Aufgaben zur Musiktheorie
Projekt besteht aus Bericht und Vorführung. Je 2 bis 3 Personen sollen zusammenarbeiten. Bis KW 50 Gruppen/Themen nennen, bis KW 51 Abstract und Gliederung vorlegen. Zu Vorlesungsende abzugeben sind Bericht (PDF) sowie Arbeitsversionen der Quelltexte und Audiodateien. Können bis Vorführung noch überarbeitet werden. Im Bericht sind individuelle Beiträge zu markieren, pro Person ca. 5 Seiten.
Bewertet werden
Plan: was soll stattfinden, wie soll es wirken?
Inhalt: Bezug zu Themen, Methoden, Werkzeugen aus der Vorlesung, ggf. durch eigene Recherchen ergänzt
Form: wissenschaftliches Schreiben, vgl. Simon Peyton Jones: https://www.microsoft.com/en-us/research/academic-program/write-great-research-paper/
Technik/Vorführung: stimmt mit Beschreibung überein, wurde geübt, ohne Verzögerungen präsentiert, Präsentation ist nachvollziehbar (Quelltexte, Befehle, Eingaben/Ausgaben sind live sichtbar)
Vorführung zu geeigneter Zeit an geeignetem Ort (Beschallungs- und Video-Technik, Getränke, Gäste). Vorschläge?
(aus Journal of Mathematics and Music: Aims and Scope)
The use of mathematical modelling and computation in music theory,
mathematical approaches to musical structures and processes, including mathematical investigations into music-theoretic or compositional issues as well as mathematically motivated analyses of musical works or performances.
In consideration of the deep unsolved ontological and epistemological questions concerning knowledge about music, …
Fachverbände, Konferenzen, Zeitschriften
Society for Mathematics and Computation in Music http://www.smcm-net.info/
Journal of Mathematics and Music https://www.tandfonline.com/JMM/
Intl. Congress on Music and Mathematics
Forscher
David Clampitt, Ohio State Univ., https://music.osu.edu/people/clampitt.4
Guerino Mazzola, Univ. of Minnesota, http://www.encyclospace.org/CV/mazzola.html
Thomas Noll, Esc. Sup. de Musica, Barcelona
(meine Notizen zu Gastvortrag von Herrn Dr. Noll)
\(2 = x_0y_0\) mit \(x_0=3/2\) (Quinte), \(y_0=2/x_0=4/3\) (Quarte)
Töne: \(c\stackrel{x_0}{\longrightarrow}g\stackrel{y_0}{\longrightarrow}c'\)
\(x_0\mapsto y_0x_1\), mit \(x_1=x_0/y_0=3/2\cdot3/4=9/8\) (Sekunde)
Töne: \(c\stackrel{y_0}{\longrightarrow}f\stackrel{x_1}{\longrightarrow}g \stackrel{y_0}{\longrightarrow}c'\)
\(y_0\mapsto x_1y_1\), mit \(y_1=y_0/x_1=2^5/3^3\) (kleine Terz)
Töne: \(c\stackrel{x_1}{\longrightarrow}d\stackrel{y_1}{\longrightarrow}f \stackrel{x_1}{\longrightarrow}g\stackrel{x_1}{\longrightarrow}a\stackrel{y_1}{\longrightarrow}c'\) (Pentatonik)
\(y_1\mapsto x_1y_2\), mit \(y_2=y_1/x_1=2^8/3^5\) (Halbton)
\(c\stackrel{x_1}{\longrightarrow}d \stackrel{x_1}{\longrightarrow}e\stackrel{y_2}{\longrightarrow}f \stackrel{x_1}{\longrightarrow}g \stackrel{x_1}{\longrightarrow}a \stackrel{x_1}{\longrightarrow}b\stackrel{y_2}{\longrightarrow}c'\) (Diatonik)
\(x_1\mapsto y_2x_2\), mit \(y_2=x_1/y_2=3^7/2^{11}\) (Halbton)
\(c\stackrel{y_2}{\longrightarrow}c\sharp\stackrel{x_2}{\longrightarrow}d \stackrel{y_1}{\longrightarrow}d\sharp\stackrel{x_2}{\longrightarrow}e \stackrel{y_2}{\longrightarrow}f\dots\) (Chromatik)
Anwendung: das Intervall \([c,f]\) sieht immer genauso aus wie \([g,c']\), d.h., Melodien können verschoben werden
vgl. Kapitel 4.5 in Graham, Knuth, Patashnik: Concrete Mathematics, Addison Wesley 1994
Moritz Stern, Achille Brocot: beginne mit \(0/1 < 1/0(=+\infty)\),
zw. benachbarte \((p/q)<(p'/q')\),
füge \(\operatorname{\textsf{Med}}(p/q,p',q'):=(p+p')/(q+q')\) ein.
1. Schicht: \(0/1, \underline{1/1}, 1/0\), 2. Schicht: \(0/1, \underline{1/2}, 1/1, \underline{2/1}, 1/0\),
3. Schicht: \(0/1,\underline{1/3}, 1/2, \underline{2/3}, 1/1, \underline{3/2}, 2/1, \underline{3/1}, 1/0\).
Satz (Ü): es gilt immer \(\gcd(p+p',q+q')=1\)
Satz (Ü): wenn \(p/q< p'/q'\) benachbart, dann \(p'q - p q'=1\).
Ü: wo steht 7/5 (welche Schicht, welcher Pfad)?
Baumstruktur: für jeden Knoten \(y=p/q\),
seien \(x<z\) die Knoten, aus denen \(y\) entstanden ist: \(\operatorname{\textsf{Med}}(x,z)=y\).
Dann \(\operatorname{\textsf{Left}}(y):=\operatorname{\textsf{Med}}(x,y),\operatorname{\textsf{Right}}(y):=\operatorname{\textsf{Med}}(y,z)\).
Bsp: \(y=3/5\). Dann \(x=1/2, z=2/3\) (eindeutig!)
\(\operatorname{\textsf{Left}}(y)=4/7, \operatorname{\textsf{Right}}(y)=5/8\)
Satz: jedes \(q\in\QQ_{> 0}\) kommt genau einmal vor.
Adresse von \(q\) als Wort über \(\{L,R\}^*\), von \(1/1\) aus.
Bsp: \(3/5 = LRL, 4/7=LRLL, 5/8=LRLR\).
Adressen irrationaler Zahlen in \(\{L,R\}^\omega\)
Bedeutung eines \(L,R\)-Pfades: \(L=\begin{pmatrix}1&1\\0&1 \end{pmatrix} , R=\begin{pmatrix}1&0\\1&1 \end{pmatrix}\)
Bsp: \(4/7 = LRLL=\begin{pmatrix}2&5\\1&3 \end{pmatrix}\).
Zeilensummen (gespiegelt) sind \(4,7\),
Spalten sind \(1/2, 3/5\) (die Vorgänger von \(4/7\))
zu teilerfremden \(p/q>0\) den \(\{L,R\}\)-Pfad bestimmen:
\(f(p,q):=\) īf \(p=q\) then \(\epsilon\)
else if \(p<q\) then \(L\cdot f(p,q-p)\) else \(R\cdot f(p-q,q)\)
\(f(4,7)=L f(4,3)=LR f(1,3)=LRL f(1,2) =LRLL f(1,1)\)
\(x=\log_2 (3/2)\approx 0.585\) (Logarithmus der Quinte)
Pfad in die Nähe von \(x\) ist \(LRLL\dots\)
\(f(x,1)=L f(x,1-x)\approx L(0.585,0.415)\)
\(f(x,1-x)=R f(2x-1,1-x)\approx X(0.170,0.415)\)
\(f(2x-1,1-x)=L f(2x-1,2-3x)\approx L(0.170,0.245)\)
\(f(2x-1,2-3x)=L f(2x-1,3-5x)\approx L(0.170,0.075)\)
Die Reste sind jeweils \(\log_2\) von: 0.415 Quarte, 0.170 Sekunde, 0.245 Terz, 0.075 Halbton
Matrizen \(L,R\) waren Abb. von \(\mathbb{N}^2\to\mathbb{N}^2\),
jetzt auffassen als Abb. von \(\Sigma^*^2\to \Sigma^*^2\) für \(\Sigma=\{x,y\}\).
\(L=\begin{pmatrix}1&1\\0&1 \end{pmatrix}\) als \((x,y)\mapsto (x,xy)\),
\(R=\begin{pmatrix}1&0\\1&1 \end{pmatrix}\) als \((x,y)\mapsto(xy,y)\).
Dann \((|w|_x,|w|_y)\cdot L=(|wL|_x,|wL|_y)\)
Bsp: \(w=yxy\), \(wL=xyxxy\). \((2,1)L=(2,3)\).
TODO: vergleiche mit “Fortgesetzte Teilung der Oktave”, es sollten genau diese \(\{x,y\}\)-Folgen entstehen.
drei Aufgaben von Folie Die Stern-Brocot-Darstellung
wie lautet der Stern-Brocot-Code von \(e\) (Basis der natürlichen Logarithmen)?
Bestimmen Sie die ersten Stellen (wieviele Stellen können Sie durch Rechnung mit double
sicher bestimmen?), vermuten Sie eine Regel.
welche (irrationale) Zahl hat den Code \((LR)^\omega\)?
Bestimmen Sie die ersten Näherungsbrüche.
Geben Sie den numerischen Wert in Inverse Symbolic Calculator (Integer Relations Algorithms) ein.
Beweisen Sie die dort ausgegebene Behauptung.
Die Aufgabe zur Jahreszeit (mit Schneebällen):
auf der Zahlengeraden wird in jeder rationalen Zahl \(x=p/q\) ein Kreis mit Radius \(1/(2q^2)\) tangential aufgesetzt.
Beweisen Sie: diese Kreise überschneiden sich nie.
Welche Kreise berühren sich? (Beziehung zum Stern-Brocot-Baum formulieren und beweisen.)
Zeichnung: siehe https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/blob/master/kw50/F.hs
Def: Sample \(=\) Amplitudenverlauf eines Audio-Signals
Anwendung 1: Optimierung der Synthese
Klänge im Voraus synthetisieren, abspeichern,
wenn Software-Simulation des physikalischen Systems nicht in Echtzeit möglich ist
Bsp: Synclavier (1977, 32 MB Speicher) http://www.vintagesynth.com/misc/synclav.php
Anwendung 2: musikalische Aussage
Audio-Signal wird aus erkennbarer Quelle zitiert:
einzelner Klang (eines bestimmten Instrumentes)
zusammenhängende Klänge (Teil eines Musikstückes)
Sample als Audio-Datei (wav), wird bei Start von Supercollider geladen, siehe auch https://tidalcycles.org/index.php/Custom_Samples
d1 $ s "breaks152"
spielt das Sample ab
in Original-Länge \(l\) und -Tempo
beginnend zu jeder (!) Tidal-Periode \(p\)
d.h. auch selbst-überlappend, falls \(l>p\)
stack [ fast 4 $ s "hc"
, s "breaks152" # begin 0 # end 0.3 # speed 0.9 ]
begin und end sind relativ zu \(l\), speed ist relativ zu \(p\)
The Winstons: Amen Brother, 1969.
(Schlagzeug: Gregory Sylvester Coleman)
X: 1 K: F M: 4/4 L: 1/16 F2F2 c3c z c FF c3c | F2F2 c3c z c FF c3c | F2F2 c3c z c F2 z2 c2 | z c FF c3c z c F2 z2 c2 |
…most sampled track in the history of music (Quelle?)
198* Hip Hop (Hörbeispiele)
199* Breakbeat (Drum and Bass) (Ü Breakbeat Science)
Arbeiten mit (eigenen) Samples in Tidal, vgl. https://we.lurk.org/hyperkitty/list/tidal@we.lurk.org/thread/W27AKWANOWAROPE5FX5M2IPYMRXFHQFZ/ experimentieren Sie mit breaks165
, bev
(wie angegeben), led
(schwierig)
Nick Collins: Algorithmic Composition Methods for Breakbeat Science, 2001
https://composerprogrammer.com/research/acmethodsforbbsci.pdf
autotool-Aufgaben zu Euklidischen Rhythmen (gleichmäßige Verteilung von Ereignissen/Zahlen in einem Raster).
Entwickeln Sie eine Theorie für den zweidimensionalen Fall, vgl. https://gitlab.imn.htwk-leipzig.de/autotool/all0/issues/562
(abendländische) Musik im Laufe der Jahrhunderte:
Monophonie \(\to\) Homophonie \(\to\) Polyphonie \(\to\) Kontrapunkt \(\to\) Kadenzen \(\to\) …
Unterschiede …
sachlich begründet (Skalentheorie, Musikinstrumente),
gesellschaftlich (kirchliche/höfische/bürgerliche Kultur)
welche Entwicklungen gibt es in der Populärmusik? Welche Gründe haben diese?
Film, Regie: Richard Linklater, Darsteller: Jack Black,
15:09–18 are you gonna teach us anything
31:20–33 first thing you do when you start a band
47:04 das Tafelbild, siehe auch https://movies.stackexchange.com/questions/9353/who-wrote-the-school-of-rock-blackboard
dort als Vorlage zitiert: Reebee Garofalo: marketing trends and stylistic patterns in pop/rock music https://www.historyshots.com/products/rockmusic
aus Edward Tufte: Visual Explanations: Images and Quantities, Evidence and Narrative, 1997
beachte: Zappa, Can, Beefheart: Fragezeichen
die Musikstilbezeichnungen sind Erfindungen von Marketing-Abteilungen von Plattenfirmen
trotzdem gibt es dort sowohl große Künstler
(Bsp: im Soul: Isaac Hayes, Temptations)
…als auch lustige Retortenbands (Glam-Rock : Sweet)
es fehlen: elektronische Musik (Kraftwerk)
mglw. außerhalb des vorgegebenen Themas Rock
es fehlen jedoch wirklich, und das ist schade
Ska, Reggae (vorwiegend Jamaica)
als Einfluß auf Punk, New Wave (England)
Ska (195*), Rocksteady, Reggae (196*)
in der Karibik, insb. Jamaica (bis 1962 britische Kolonie)
Melodien und Texte des Blues, Walking Bass,
Offbeat-betont (4/4-Takt, aber auf 1 ist Ruhe)
Beispiele Bands: Upsetters, Congos.
Trennung Vokalisten/Band (Instrumentalisten), modular
Produktion von Stücken ohne Gesang (Dub-Version),
angereichert durch Sound-Effekte
Beispiele Produzenten: King Tubby, Lee Perry
\(\Rightarrow\) England: 2-Tone Ska (Bsp: Specials, Madness)
Punk (Clash, Ruts, Stranglers), New Wave (Police)
das klassische Modell: Plattenfirma investiert in Künstler (Vorschüsse, Marketing) und lebt vom Verkauf von Tonträgern. Die Künster verdienen dabei wenig.
das ist spätestens seit 2000 vorbei, weil kaum noch Tonträger verkauft werden. Bands leben von Konzerten.
Steve Albini: https://thebaffler.com/salvos/the-problem-with-music, 1993.
Courtney Love: About piracy and music , 2000. https://www.salon.com/2000/06/14/love_7/
Amy X. Wang
Hersteller und Händler (Instrumente, Verstärker)
Dienstleister (Musiklehrer, Club-Betreiber)
(alternative Finanzierungsquelle) staatliche Kulturförderung (Musikhochschulen, Konzerthäuser, Beauftragung von Werken/Installationen)
Musikzeitschriften, Bsp: nach 38 Jahren und 384 Ausgaben wird die Druck-Ausgabe von SPEX eingestellt.
gegründet in Köln, benannt nach der Band X-Ray Spex
F. Spilker: da wurde jede Kleinigkeit erst genommen.
…die Züge, auf die sie gesprungen sind, immer als Rebellion verkauft
Thomas Meinecke: Ich wollte da vorkommen!
einen Reggae programmieren (eine Blues-Kadenz, aber off-beat betonen)
einen Rocksong programmieren (gleiche Kadenz, aber den Sound von übersteuerten Gitarren)
zum zitierten Artikel Steve Albini (1993)
vergleiche mit https://www.theguardian.com/music/2014/nov/17/steve-albinis-keynote-address-at-face-the-music-in-full (2014)
Beachten Sie dort auch den letzten Absatz.
Synthese: Modell \(\Rightarrow\) Klang, Musikstück
Analyse: Modell \(\Leftarrow\) Klang, Musikstück
Aspekte:
Spektrum eines Klangs
Tempo, Akkordfolge, Struktur eines Musikstücks
Anwendungen:
Wiedererkennen eines Musikstücks
Zuordnung zu Epoche, Stil, Komponist
Vorschlagen (bekannter) ähnlicher Stücke
Synthese (neuer) ähnlicher Klänge, Stücke
Audio-Kompression
The Vamp audio analysis plugin system https://www.vamp-plugins.org/
sonic-annotator
-d vamp:vamp-example-plugins:fixedtempo:tempo
foo.wav -w csv --csv-stdout
(auch für sonic-visualiser, audacity)
Centre for Digital Music, Queen Mary Univ. London: QM Vamp Plugins https://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html
vamp:qm-vamp-plugins:qm-barbeattracker, ..:qm-segmenter:segmentation, ..:qm-tempotracker:tempo
Matthias Mauch: Chordino und NNLS Chroma http://www.isophonics.net/nnls-chroma
vamp:nnls-chroma:chordino:simplechord
grundsätzlich (Wdhlg): Darstellung einer periodischen Funktion \(f:[0,1]\to\mathbb{C}\) als \(\sum_{k\in\mathbb{N}} c_k (t\mapsto \exp(2 \pi i k t))\)
Anpassung für zeitdiskrete Signale (d.h., Vektoren) \(x : [0, 1\dots n-1] \to\mathbb{C}\)
Darstellung (Dekodierung) \(x_t=(1/\sqrt n) \sum_{k=0}^{n-1} c_k \exp(2\pi i k t/n)\)
\(x = M\cdot c\) mit Matrix \(M_{t,k}=(1/\sqrt n)\exp(2\pi i k t/n)\)
Koeffizientenvektor bestimmen aus \(M^{-1} x = c\)
Satz: \(M^{-1}_{t,k}=(1/\sqrt n)\exp(- 2\pi i k t/n)\)
Bew: \((M^{-1}\cdot M)_{p,r}=(1/n)\sum_q \exp(-2\pi i p q/n)\exp(2\pi i q r/n)\)
Kodierung: \(c_k = (1/\srqt n)\sum_{l=0}^{n-1} x_l \exp(-2\pi i k l/n)\)
Signal in Blöcke zerlegen
(z.B. Samplerate 44.1 kHz, jeder Block 512 Samples, Blocklänge ist dann 12 ms, Blockfrequenz 86 Hz)
DFT für jeden Block einzeln, ergibt Funktion
Block-Index \(\times\) Frequenz-Index \(\to\) Koeffizient (in \(\mathbb{C}\))
(Spektrogramme in sonic-visualiser)
Implementierung: \(M\cdot c\) (Matrix mal Vektor) schneller ausrechnen unter Ausnutzung der Struktur von \(M\)
(fast Fourier transf., Cooley und Tukey 1965, Gauß 1805)
https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/dft
Avery Wang: An Industrial Strength Audio Seach Algorithm, ISMIR 2003, http://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf
Musikstück \(\to\) Spektrogramm \(\to\) Fingerabdruck (FP)
Vergleich des FP eines unbekannten Musikstücks
mit (vielen) bekannten FP aus Datenbank
gewünschte FP-Eigenschaften: temporally localized, translation invariant, robust, sufficiently entropic
Implementierung: Spektrogramm-Spitzen, Ankerpunkte, FP ist Menge der Differenz-Vektoren zu nahen Punkten.
schnelle Erkennung von Diagonalen im Diagramm (Scatterplot) der Diff.-V. in Anfrage/in Datenbankeintrag
Original ist Funktion \(\mathbb{R}\to\mathbb{R}\), i.A. keine endliche Repräsentation möglich, wird nur erreicht durch:
Zeit-Raster durch Abtastung (Sampling) (z.B. 44.1 kHz)
Wert-Raster durch Zahlendarstellung (z.B. 16 Bit)
Platzgewinn durch geringere Samplefreq., ger. Bitbreite.
bei vorgegebenem Platz: höhere Qualität ist möglich durch Ausnutzung physiologischer Eigenschaften
MP3, AAC, Opus, …: Fourier-Transf. \(\to\) Darstellung der Koeffz. mit zeit- und frequenz-abhängiger Bitbreite
Europ. Broadcasting Union: AC-3,
Wdhlg: Markov-Prozeß \(A\) mit Zuständen \(Q=\{1,\dots,n\}\)
gegeben durch Initialvektor \(I_A : Q\to [0,1]\)
und stochastische Transitionsmatrix \(T_A : Q\times Q\to [0,1]\).
definiert Funktion \(f: Q^*\to [0,1]\)
suchen Verfahren zur Lösung der Aufgabe:
gegeben: Wertepaare \(g = \{(w_1,y_1),\dots\}\)
gesucht: \(A=(I_A, T_A)\) mit \(g(w)\approx f_A(w)\).
Variante: gegeben: Mengen \(P,N\in Q^*\),
gesucht: \(A\) mit \(\forall w\in P: f_A(w)\gg 0\), \(\forall w\in N: f_A(w)\approx 0\).
Bsp: \(P\): Takte aus Melodien von Bach, \(N\): …Beatles.
geg.: (differenzierbare) Zielfunktion \(f:\mathbb{R}^n\to \mathbb{R}_{\ge 0}\)
ges.: ein \(x \in\mathbb{R}^n\) mit \(f(x)\) minimal
Anwendung: \((I_A,T_A)\mapsto \sum_i (g(w_i)-f_A(w_i))^2\)
falls min. Wert 0, dann löst \(A\) die Aufgabe (vorige Folie)
Verfahren: bestimme Gradient \(\nabla f=(\partial f/\partial x_i)_i\)
(durch automatische Differentiation,
https://www.imn.htwk-leipzig.de/~waldmann/edu/ss18/ki/folien/#(202)
)
verändere Kandidaten \(x\) um \(-c\cdot \nabla f\).
das wird derzeit gern tiefes Lernen oder gar KI genannt.
für diese Anw.: \(I_A\) und Zeilen von \(T_A\) stochastisch:
Ansatz \(J\) beliebig, \(I_p = J_p^2 / (\sum_q J_q^2)\), …
stochastischer Automat \(A=(I,T)\) mit Zuständen \(Q\)
mit stoch. Ausgabe-Matrix \(O: Q\times \Sigma\to[0,1]\)
definiert Funktion (Wsk.) \(h: \Sigma^*\to[0,1]\)
\(h(w)=\sum_{q_1\dots q_k\in Q^{|w|}} f_A(q_1\ldots q_k)\cdot O(q_1,w_1)\dots O(q_k,w_k)\)
\(Q:\) Laute einer natürlichen Sprache
\(A:\) Häufigkeit von Laut-Folgen in Menge von Wörtern
\(\Sigma\): Merkmals-Vektoren von Spektrogramm-Abschnitten
\(h\): Realisierung von Lauten
Aufgaben (allgemein):
geg: \(A,O,w\in\Sigma^*\), ges.: der größte Summand in \(\sum_{q_1\dots q_k}\)
geg: Wertepaare aus \(h\), ges.:\(A, O\)
José Pedro Magalhães, W. Bas de Haas: Functional Modelling of Musical Harmony, ICFP 2011 https://github.com/haas/harmtrace
Given a sequence of chord labels, the harmonic function of a chord in its tonal context is automatically derived.
Spektral-Analyse \(\to\) chord labels, diese jedoch fehlerbehaftet. Wie reparieren?
benutze Baumstruktur, beschrieben durch Grammatik
und fehlerkorrigierenden Parser (Swierstra 2009) https://hackage.haskell.org/package/uu-parsinglib
harmtrace parse -g pop -c "C:maj C:maj F:maj G:maj C:maj"
Diskutieren Sie das Geschäftsmodell (wer bezahlt womit wofür?) von kommerziellen Musikerkennungsdiensten. Siehe Abschnitt 1 des zitierten Artikels von Wang (2003).
Was steht im 1. Absatz von Abschnitt 3.3?
Diskrete Fourier-Transformation:
https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/dft
Überprüfen Sie experimentell und beweisen Sie: \(M \cdot M^{-1}=\) Einheitsmatrix
Ändern Sie cm-ws18/dft/Main, so daß das Rastermaß für Koeffizienten geringer und hoher Frequenzen unterschiedlich eingestellt werden kann.
Extremfall: Koeffz. ab einer gewissen Grenzfrequenz (d.h., ab einem gewissen Index, z.B. halbe Fensterbreite) durch 0 ersetzen.
Ton- und Akkord-Analyse:
ausprobieren, Ausgabe von chordino als Eingabe für Sequencer verwenden
Beispielprogramm zur Bestimmung eines Markov-Modells https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/learn-markov
allgemein: Betriebssystem ist Schnittstelle zwischen Software (Anwendungsprogrammen) und Hardware
speziell hier: zwischen
Audio-Software (Synthese, Filter, Recorder)
Audio-Hardware (Soundkarte)
Beispiel: Linux JACK (Audio Connection Kit):
Prinzipien (routing, “real time” audio plugins)
systemnahe Anwendungen, Beispiele:
SooperLooper
Ardour DAW (digital audio workstation)
Autoren: Paul Davis et al.,
zur Verbindung von Echtzeit-Audio- und MIDI-Anwendungen untereinander und mit Hardware
Prinzip: jede Anwendung registriert einen Callback (eine Prozedur) beim Jack-Serverprozess,
diese Prozedur realisiert die Verarbeitung eines Sample-Fensters (z.B. 1024 Samples bei 48 KHz)
der Server ruft Callbacks rechtzeitig auf, mit passenden Sample-Arrays (für die deklarierten Ein- und Ausgabe-Ports)
https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/jack
main = do
withPort client "input" $ \input ->
withPort client "output" $ \output ->
withProcess client (process client input output) ...
process client input output nframes = do
inArr <- JA.getBufferArray input nframes
outArr <- JA.getBufferArray output nframes ; ...
Beispiel: der LV2-Standard http://lv2plug.in/
Plugin besteht aus
Code zur Audio-Verarbeitung (vgl. Jack-Client)
Metadaten für
Schnittstellenbeschreibung (Mono, Stereo,…)
Steuerungsmöglichkeiten (Parameter, Bereiche, Defaults) \(\to\) automatische Konstruktion einer GUI
einfaches Beispiel: http://lv2plug.in/git/cgit.cgi/lv2.git/tree/plugins/eg-amp.lv2
vgl. https://github.com/calf-studio-gear/calf/blob/master/src/modules_delay.cpp
Aufgaben:
Aufnahme (mehrere Spuren, sowohl gleichzeitig als auch nacheinander)
Bearbeitung je Spur (Effekte; aber auch Zerschneiden und Umordnen)
Mischung (von vielen auf 2 Spuren), Export
eine einfache DAW (nur Aufnahme und Abspielen, live) http://essej.net/sooperlooper/
Hörbeispiel (Video) von Konrad Küchenmeister (2007)
Ü: Vergleiche GUI-Konzepte der gezeigten Soft- und Hardware. — eine typische Loop-Station: https://za.boss.info/support/by_product/rc-505/
Recording (beliebig viele Kanäle),
Editing (non-destructive, non-linear editing with unlimited undo/redo, even across editing sessions)
Mixing (Routing, Monitoring), Plugins (LV2), Exporting
Autoren: Paul Davis (Interview:
), Robin Gareus (https://gareus.org/), et al.
Lehrmaterialien von Paul Davis 2008 (Folie daw9, S. 14ff) http://tu.linuxaudiosystems.com/dawd
https://www.ak.tu-berlin.de/menue/edgard_varese_guest_professorship/
vor dem Zeitalter der DAW: Magnettonbänder zerschneiden, verkleben, umkopieren!
Karlheinz Stockhausen: Hymnen 1966 https://web.archive.org/web/20080516211332/http://www.stockhausen.org/hymnen_intro.html
Holger Czukay (1938–2017) studierte bei Stockhausen, dann Bassist bei Can (1968–1979), dann Solo-Werke, u.a. Der Osten ist rot 1984.
Beatles: I am the Walrus (1967) (enthält Audio-Zitate einer Rundfunksendung) (Ü: Akkordfolge? mit Chordino analysieren)
Revolution #9 (1968), White Album, Tonbandcollage
Bedienung (GUI-Design) von Loop-Stations (vgl. SooperLooper, Boss RC 505, Boss RC 300)
jack-example-client: implementiere Echo, Hall, Phaser, Kompressor, …
Gastvortrag Olli Holland https://l-l-l-l.com/
physisch-digitale Rückkopplung:
eine Spur des Sequencers steuert einen mechanischen Aktor (Trommelstock)
von Mikrofon aufgenommene Signale steuern den Sequencer
Moritz Simon Geist: die mechanische TR-808 http://sonicrobots.com/Project/mr-808-interactive/
Festival of Algorithmic and Mechanic Movement (Sheffield) http://algomech.com/2019/
schriftliche Fixierung von Musik zum Zweck der Archivierung und späteren Aufführung
zweidimensionale Notation:
für jede einzelne Stimme (Notensystem)
Ordinate (nach oben) (Notenlinie): Tonhöhe
Abszisse (nach rechts): Zeit
Zeit auch durch Form der Noten (Köpfe, Hälse)
für mehrere Stimmen:
Notensysteme übereinander bedeutet Gleichzeitigkeit
Notensatz mit Computer:
grafisch (WYSIWIG) oder programmatisch (algebraisch)
kompiliert algebraische Musik-Beschreibung (Programmtext) zu grafischer Darstellung (PDF)
sowie zu MIDI-Datenstrom
Implementierung in C++
Anwender-definierte Erweiterungen in LISP (Scheme)
Backend benutzt Metafont https://web.archive.org/web/20110927042453/http://www.tex.ac.uk/ctan/systems/knuth/dist/mf/mf.web
\version "2.18.2" \header { } \score {
\relative c' { c4 d e f | g a b c }
\layout { } \midi { }
}
lokale Struktur (Folge von Noten einer Stimme)
Einzelnote (Bsp: c''4
): Name, Oktave, Zeit
fall Zeit nicht angegeben, dann vorigen Wert benutzen
bei Taktstrich: Zeit muß Vielfaches des Taktes sein
relative Notation: immer die nächstliegende Oktave
damit muß man für Melodien wesentlich weniger schreiben als bei Haskore (u.ä.)
globale Struktur …nächste Folie
Zusammensetzung von Teil-Partituren:
sequentiell: hintereinander
parallel: Operator << ... >>
\relative c' {c4 d e <<f a c>> | <<g b d>> a b c}
Notensysteme (für mehrstimmigen Satz)
<< \new Staff{\relative c' { c4 d e f | g a b c }}
\new Staff {\relative c''{ g a g f | e d d c }}
>>
Wiederholungen:
notiert (Wiederholungszeichen in Partitur): repeat volta 2 {c1}
expandiert: repeat unfold 2 {c1}
Namen zur Bezeichnung von Teilpartituren
foo = \relative c' { c4 d e f | g a b c }
\score { << \new Staff { \foo }
\new Staff { \transpose c e \foo }
>> }
vergleichbar zu Unterprogrammen, aber
Unterprogramme haben keine Argumente
Unterprogramme sind global (außerhalb \score{..}
)
es gibt keine Bedingungen und Verzweigungen
Das ist ein riesengroßer Rückschritt im Vergleich zu Haskore u.ä.
Work-around: man kann LISP-Code schreiben
\new Staff
, \new Voice
, …legt Kontexte an,
zu jedem Kontext gehören mehrere engraver,
diese verarbeiten musical expression zu grafischen Elementen: Clef_engraver
, Key_engraver
, Note_heads_engraver
, …
benannter Kontext kann von außen benutzt werden
<< \new Staff { \new Voice = "foo" {} }
\new Staff { \new Voice \relative c' {c4 d e f} }
\context Voice = "foo" \relative c'{ g a b c }
>>
Anwendung: Text (Silben) unter Melodie (Noten)
Text (Silben) unter Melodie (Noten)
<< \new Staff { \new Voice = "foo" {} }
\new Lyrics = "here"
\context Voice = "foo"
\relative c' { g a b c }
\context Lyrics = "here" {
\lyricsto "foo" { fas- ci- na- ting }
} >>
spezifiziert wird:
wo der Text erscheint: \new Lyrics
nach welcher Stimme er ausgerichtet wird: \lyricsto
Lilypond-Beispiele https://gitlab.imn.htwk-leipzig.de/waldmann/cm-ws18/tree/master/lilypond
einfache Beispiele ausprobieren
lilypond basic.ly
evince basic.pdf
timidity basic.midi
Chase the Devil analysieren, modifizieren, ergänzen,
Schlagzeug hinzufügen
\new DrumStaff { \drummode { bd4 bd } }
Klang der menschlichen Stimme bestimmt durch
Klangerzeugung (Stimmbänder) (Quelle)
Klangbeeinflussung (Mundraum) (Filter)
Sprach-Kompression durch subtraktive Synthese:
nur Filterinformation (Formanten) übertragen,
dann Filter auf Rausch-Quelle anwenden
oder auf andere Quellen, Bsp: Vokalfilter
d1 $ s "jvbass" |+| vowel "a [e i] o u"
Eingänge: Modulation \(f\) (Sprache), Träger \(t\) (Instrument)
\(f\) und \(t\) durch Bandpässe verschiedener Frequenzen
aufspalten in Signale \(f_1, f_2,\dots\) bzw. \(t_1,t_2,\dots\)
Ausgang \(= \sum_i |f_i| \cdot t_i\)
der akustische Vocoder: die talk box
Trägersignal durch Schlauch in den Mund, Mikrofon davor
Hörbeispiele: Daft Punk: Prime Time Of Your Life (2005), E.L.O.: Sweet Talking Woman (1978), Peter Frampton: Show Me the Way (1975), Kraftwerk: Autobahn (1974),
Pete Drake: Satisfied Mind, Invitation to the Blues (1962)