← Alfabet Toruński

System – szczegóły

Dla tych, którzy chcą wejść głębiej: od akustyki do filmu, z nazwami funkcji z biblioteki OpenMusic om-cywin (Common Lisp), które liczą każdy krok. Kod biblioteki jest otwarty: GitHub, licencja GPL v3.

Zapis wysokości dźwięków na tej stronie: C3 = środkowe C = MIDI 60 = 6000 midicentów (oktawa razkreślna to C3–B3; fortepian: A-1–C7, MIDI 21–108). Tak samo numerują OpenMusic, Cubase i Nuendo, Pro Tools, Ableton Live, Logic, Studio One i instrumenty Yamahy. W innych konwencjach to samo C nazywa się inaczej: C4 w Reaperze i w literaturze naukowej, C5 w FL Studio. Tutaj zawsze obowiązuje C3.

Nazwy dźwięków anglosaskie: B to polskie h, Bb to polskie b; krzyżyk to #, bemol to b (C# = cis, Eb = es, Ab = as).

Łańcuch idei

Od góry do dołu: każda warstwa bierze wynik poprzedniej. Pod opisami nazwy funkcji, które to liczą.

Akustykapodstawa

Kwinta o 2 centy

Kwinta równomierna jest o 1,955 centa węższa od czystej: to komat pitagorejski (12 czystych kwint = 8423,46 ct wobec 7 oktaw = 8400 ct, różnica 23,46 ct) rozłożony na 12 kwint. Czysto współbrzmią więc tylko oktawy (0 ct), a duodecymy mają odchylenie ok. 2 ct. Próg toler 2 przepuszcza właśnie te dwa interwały; tercja (13,7 ct) i septyma naturalna (31 ct) odpadają. Oktawy nie wnoszą tension; każda duodecyma dokłada ok. 2 ct odstrojenia, a im więcej duodecym łączy dźwięki, tym wyższe tension. Tension dwudźwięku zależy od liczby kwint między jego dźwiękami (od C3): oktawa 48, kwinta 60, kwarta 67, sekunda w. 84, septyma m. 86, seksta w. 96, tercja m. 105, tercja w. 120, seksta m. 124, septyma w. 132, sekunda m. 143, tryton 156. To pitagorejska skala konsonansu (tercja mała, 3 kwinty, czystsza od wielkiej, 4 kwinty).

toler 2n-harm 3
Pitagorejski w równomiernym

Zostają liczby pierwsze 2 i 3, czyli odległości 12a + 19b półtonów. Strój równomierny to zamknięty łańcuch kwint (pitagorejski z komatem rozłożonym na 12 kwint), więc przylega do pitagorejskiego: kwinty i duodecymy odbiegają o niespełna 2 ct. Didymejski (5-limit) dodaje czyste tercje, od których równomierny odbiega o 13,7 ct (wielka) i 15,6 ct (mała); komat syntoniczny 81:80 (21,5 ct) nie jest w nim rozłożony. Tercje naturalne zostają jako osobny system (większe n-harm i toler).

Model tensionharmonia

Wirtualny fundament F

Najwyższy dźwięk ≤ najniższemu składnikowi, od którego wszystkie składniki leżą w odległościach 12a + 19b. Kwinta C3–G3 → F = C2. Szczegóły w sekcji „Jak liczone jest tension” niżej, kalkulator na stronie głównej.

set-matrix-lmidiclmidic-to-tension
tension = 108 − F

Kwinta C3–G3 ma tension 60, pojedyncza nuta 108 − MIDI. Matryca fortepianowa 2100–10800 zawsze jest układem odniesienia, maksimum 285 (smyczki 267).

spiral-matrixtension-to-lmidiclmidic-to-all-tensions
Kamienie milowe oktawy

W C3–B3 co 19 tension wchodzi nowy dźwięk, w kolejności kwint w dół: B 37, E 56 … G 113 (pierwsza pentatonika) … Gb 246 (klaster 12 dźwięków).

tension-octave-landmarkstension-key-sets

Koło alfabetugeometria

Zakres 113–244

Od pentatoniki do tuż przed klastrem: 132 punkty. 246 zostaje poza kołem, bo jest punktem matrycy, nie koła liter.

tension-hue*spiral-shift* = 0
22 litery co 6 tension

A = 113, B = 119 … Z = 239. Bez Q, V, X, Y; litery z ogonkami biorą wartości litery podstawowej.

letter-tension-polesspiral-letters-table*spiral-letters*
Igła kompasu

Biegun 2 leży 66 tension dalej, czyli dokładnie na grocie litery naprzeciw (k + 11). Każdy punkt koła jest grotem jednej litery i biegunem 2 drugiej.

tension->letterspiral-nearest-pole

Kolorobraz

Paleta liter

Barwa = 361 − k·360/22 − 360/44; A = 352,8°, dalej barwa maleje. Na kole tension rośnie zgodnie z ruchem wskazówek, barwa maleje.

spiral-letter-huetension-huepalette.ts (Remotion)
Dwa bieguny barwy

Kolor litery i kolor przeciwny (+180°), pomysł z analiz kolorów Blade Runnera. +180° barwy = litera k + 11, czyli ta sama para co bieguny tension.

LUT-y HLG

22 tablice .cube 65³, Rec.2020 HLG: nasycenie bieguna 1 ×1,40, bieguna 2 ×1,25, reszty ×0,9. Z proporcji tych podbić wynika waga bieguna 2 = 0,7.

make-alfabet-lutsalfabet-grademake-color-lut

Muzykakompozycja

Akordy wokół biegunów

Tension każdego akordu losowane wokół bieguna (równomiernie albo krzywą Gaussa, offset-sigma), dźwięki wybierane z matrycy w paśmie, bez przenoszenia o oktawy.

pick-pole-tensiongauss-pick-pitchespole-chordpole-chord-seq
Instrumentacja i DAW

Grupy instrumentów dostają obcięte podzbiory matrycy, tension nominalne zostaje. Dalej MIDI → Cubase.

string-orchset_mtrx_instrtie-chseq-notes
Odsłuch w OM

Synteza sinusów z alikwotami, z zapisem WAV do renderu z dźwiękiem.

chseq-to-sound

Analizadźwięk → litera

Dźwięk miejsca → tension

Goertzel po okienkach, akordy, tension z matrycy. Grzmot daje ok. 282, prawie klaster, i to jest poprawny wynik.

goertzel-sonogramsound->chord-seqsound->tensions
Tension → litera

Przeniesienie do 113–244 mod 132, najbliższy grot, przesunięcie od −3 do +2. Np. 282 → G +1.

tension->letterchseq->tension-texttension-text->list

Filmpublikacja

Litera z nazwy miejsca

Litera wynika z nazwy własnej, nie z rodzaju obiektu: Ratusz Staromiejski → S, Ratusz Nowomiejski → N, Łazienna → Ł (kolory L).

Koło tension, Widmo

Artefakty z renderem 4K, ffmpeg ProRes SDR albo HLG przez LUT sdr709-to-hlg2020, montaż w Final Cut.

chseq->tension-textlut-wheellut-radartension-spiral->svg
Intro, outro, Shorty

Remotion w palecie litery; 22 filmy ×10 Shortów do 31.12.2026; zapis o stypendium i herb.

Jak liczone jest tension

Matryca (set-matrix-lmidic)

  • harmonic-ser 0 n-harm daje harmoniczne 1…n w midicentach: 0, 1200, 1901,955.
  • Zostają te, które od półtonu odbiegają najwyżej o toler (2 ct): oktawa (0 ct) i duodecyma (1,955 ct). Po zaokrągleniu i usunięciu powtórzeń oktawowych wzorzec kroków to (12 7).
  • make-chords-list od każdego dźwięku szkieletu dokłada +12 i +19, do 500 półtonów: szkielet = wszystkie odległości 12a + 19b. Od 198 półtonów jest pełny (197 to liczba Frobeniusa dla 12 i 19).
  • Pętla od range-max (108) w dół: szkielet zaczepiony w i, obcięty do 21–108. Kończy się, gdy 13 najniższych dźwięków to 21–33, czyli przy i = −177. Po odwróceniu indeks matrycy = tension = 108 − i, od 0 do 285.

Tension akordu (lmidic-to-tension)

  • Pierwszy (najniższy) indeks matrycy, której akord jest podzbiorem (subsetp). llmidic-to-tensions robi to samo dla listy akordów.
  • Równoważnie: F = najwyższy dźwięk ≤ najniższemu składnikowi, od którego każdy składnik leży w odległości 12a + 19b; tension = range-max − F.
  • Wynik NIL: dźwięk poza range, mikrotony albo liczby zmiennoprzecinkowe (subsetp bez :test #'= porównuje przez eql, więc 6000.0 ≠ 6000).
  • Przykłady: D3 46 · C3–C4 48 · C3–G3 60 · C3 Eb3 G3 117 · C3 E3 G3 120 · C3–C#3 143 · skala C-dur 151 · G7 163.

Kalkulator tension i demonstracja matrycy są na stronie głównej →

Od tension do współbrzmienia

Droga odwrotna: znane jest tension, szukane są dźwięki. Punktem wyjścia jest matryca tego tension, a z niej wybiera się podzbiór: deterministycznie albo losowo.

Matryca tension

  • tension-to-lmidic: (copy-list (nth tension (spiral-matrix toler n-harm range))), czyli wszystkie dźwięki zakresu w odległościach 12a + 19b od F = 108 − tension. tensions-to-llmidic robi to samo dla listy tension.
  • lmidic-to-more-lmidic: akord → pełna matryca jego (najniższego) tension, czyli dopełnienie akordu do matrycy.
  • Matryca działa jak pole harmoniczne (jak tonacja albo funkcja w muzyce tonalnej). Wybrane dźwięki niosą jej tension, także gdy wycinek policzony osobno dałby niższą liczbę: pole dopełniają inne instrumenty i czas (pasaże, szybkie przebiegi), tak jak zharmonizowana melodia nie musi zawierać wszystkich składników akordu. Liczba tension przypisana do akordu to tension pola, z którego pochodzi.

Wybór deterministyczny

  • Cała matryca, obcięta do zakresu grupy instrumentów (tension nominalne zostaje).
  • tension-key-sets: dla każdej niższej matrycy i < t maska dźwięków akordu, których w niej nie ma; zestaw musi trafić każdą maskę (inaczej zmieściłby się w i). Maski nadmiarowe są usuwane, a potem szukane są najmniejsze zestawy trafiające wszystkie. Wynik: wszystkie najmniejsze zestawy o dokładnie tym tension, NIL gdy grupa go nie osiąga.
  • tension-key-sets+: dodatkowo required, forbidden, extra (zestawy większe o 1, 2 …), limit 5000 wyników.
  • filter-key-sets (zakres, rozpiętość, największy skok głosu od prev, głosy bez krzyżowania) i rank-key-sets (voice-leading, span, center): pierwszy z listy = wybór deterministyczny.
  • Przykłady w zakresie 5500–9300: 60 → 6 zestawów po 2 (C3 G3, C3 D5, G3 C4, G3 C5, C4 D5, C5 D5); 113 → 8 zestawów po 2 (m.in. G2 B3, G3 B3, B3 G4); 215 → jeden zestaw 4 dźwięków: G2 Bb2 C#3 E3.

Losowo w rejestrze

  • gauss-pick-pitches: n różnych dźwięków bez powtórzeń. Wagi :normal (krzywa Gaussa wokół center o odchyleniu sigma), :pascal (wiersz trójkąta Pascala) albo własna lista.
  • band: zostają tylko dźwięki w pasie center ± band·sigma, bez przenoszenia o oktawy (to zmieniłoby tension); pusty pas → jeden dźwięk najbliższy center. Akord może więc mieć mniej niż n dźwięków.
  • Wagi Gaussa liczone względem najbliższego pozostałego dźwięku (ma wagę 1), więc przy małej sigma wybór jest praktycznie deterministyczny: dźwięki najbliższe center.
  • Ogólne ruletki: choice-weights (wybór z wagami) i choice-gaussian-weights (wagi z trójkąta Pascala).

Losowo w samym tension

  • pick-pole-tension: biegun z wagami 1 i 0,7, potem tension w oknie biegun ± width (domyślnie 3). offset: nil/:uniform równomiernie; :gauss krzywa Gaussa wokół bieguna (sigma = offset-sigma · width, przycięta do okna); liczba −1…1 = położenie w oknie wprost (deterministycznie; offset-sigma 0 też daje sam biegun).
  • pole-chord: jeden akord litery = letter-tension-poles → pick-pole-tension → matryca → gauss-pick-pitches.
  • pole-chord-seq: ciąg akordów; n, center, sigma, waga bieguna, width, offset, offset-sigma i vel jako liczba, lista albo BPF próbkowany w czasie.
  • Łatki more_lmidic i more-midic: akordy z analizy (SPEAR, SDIF) → tension → matryce. W more-midic każdy akord ma wszystkie swoje tensions (lmidic-to-all-tensions), a find-closest2 wybiera to najbliższe przebiegowi z BPF.

22 litery

Grot i biegun 2 to wartości tension. Dźwięki C3–B3: klasy wysokości w matrycy tension grotu, w oktawie razkreślnej.

LiteraBarwaNaprzeciwGrot (tension)Biegun 2 (tension)Dźwięki C3–B3Miejsca
A352.8°L1131795 · pentatonika
D E G A B
Arsenał, Dwór Artusa
B336.5°M1191855 · pentatonika
C# Eb F Ab Bb
Ulica Bydgoska
C320.1°N1251915 · pentatonika
D E G A B
Łuk Cezara
D303.7°O1311975 · pentatonika
C# Eb F Ab Bb
Ruiny Zamku Dybów
E287.4°P1372036
D E F# G A B
Dom Eskenów
F271.0°R1432096
C C# Eb F Ab Bb
Pomnik Flisaka
G254.6°S1492156
D E F# G A B
Kamienica pod Gwiazdą
H238.3°T1552217 · diatonika
C C# Eb F G Ab Bb
w przygotowaniu
I221.9°U1612277 · diatonika
C# D E F# G A B
w przygotowaniu
J205.5°W1672337 · diatonika
C C# Eb F G Ab Bb
Katedra św. św. Janów
K189.2°Z1732398
C# D E F# G Ab A B
Pomnik Mikołaja Kopernika
L / Ł172.8°A1791138
C C# D Eb F G Ab Bb
Ulica Łazienna, Pomnik Samuela Bogumiła Lindego
M156.5°B1851198
C# D E F# G Ab A B
Książnica Miejska
N140.1°C1911259
C C# D Eb F G Ab A Bb
Ratusz Nowomiejski
O123.7°D1971319
C# D Eb E F# G Ab A B
Muzeum Okręgowe
P107.4°E2031379
C C# D Eb F G Ab A Bb
Most Pauliński
R91.0°F20914310
C# D Eb E F# G Ab A Bb B
w przygotowaniu
S74.6°G21514910
C C# D Eb E F G Ab A Bb
Ratusz Staromiejski, Ulica Szeroka, Rynek Staromiejski, Fosa Staromiejska
T58.3°H22115510
C# D Eb E F# G Ab A Bb B
Muzeum Twierdzy Toruń
U41.9°I22716111
C C# D Eb E F G Ab A Bb B
Muzeum Uniwersyteckie
W25.5°J23316711
C# D Eb E F F# G Ab A Bb B
Centrum Sztuki Współczesnej
Z / Ż9.2°K23917311
C C# D Eb E F G Ab A Bb B
Brama Żeglarska