Musique 0.2 features discussion #28

Closed
opened 2022-05-30 12:38:56 +02:00 by robben · 0 comments
robben commented 2022-05-30 12:38:56 +02:00 (Migrated from engi.evolpe.it)

Nowe literały

Akordy relatywne

Pomiędzy określeniem prymy, a pozostałych wstawiamy r

Przykładowo C-dur:

  • Jako akord relatywny cr43
  • Jako akord bezwględny c47

Typ herzowy

  • Możliwy do zbudowania poprzez literał herzowy <liczba>hz, np 440hz
  • Oferujące przejście z wartości nutowej, wartości liczbowej przy pomocy funkcji tohz
  • Oferujące potencjalne granie mikrotonowe oraz łatwe przejście z wyniku niektórych matematycznych transformacji dźwiękowych do MIDI

Przykładowo 440hz jest równe (a 4). Podstawowe granie przez play (w tym jego niejawną wersję) wspiera tylko granie półtonalne. Potencjalne techniki grania mikrotonowego zostaną omówione poniżej.

Nowe operacje na dźwiękach

Zaokrąglanie

W ramach muzyki co najwyżej półtonowej:

  • floor <nuta / akord> <skala: array of notes> zaokrąglający w dół do najbliżej nuty ze skali
  • ceil <nuta / akord> <skala: array of notes> zaokrąglający w górę do najbliżej nuty ze skali
  • round <nuta / akord> <skala: array of notes> zaokrąglanie wg najmniejszej odległości do nuty ze skali

Możliwym jest dodanie skali do wartości domyślnych przechowywanych w kontekście. Wtedy floor, ceil i round mogą przyjąć argumenty według schematu powyżej lub pominąć argument ze skalą by użyć wartości domyślnej.

Wsparcie dla grania muzyki mikrotonowej

Pitch bend, który umożliwa przejście na mikrotony, określany jest wyłącznie per kanał, a nie per nuta. Oznacza to, że jeśli chcemy mieć wiele nut o różnych wartościach pitch benda to musimy grać wielokanałowo. Nie mam aktualnie pomysłu na to jak można to dobrze zamodelować by stworzyć intuicyjny i szybki sposób grania mikrotonowego. Pytanie czy wogóle musi istnieć mikrotonowy live coding bez wcześniejszego zdefiniowania potrzebnych mikrotonów.

Przykładowy sposób zamodelowania

var A = [ time | chan 0; play-bend (a 4 time) 100 ]; -- A w 4 oktawie przesunięte o 100 centów
var B = [ time | chan 1; play-bend (b 4 time) 50  ]; -- B w 4 oktawie przesunięte o 50 centów
var C = [ time | chan 1; play-bend (b 4 time) -50 ]; -- C w 4 oktawie przesunięte o -50 centów
-- i tak dalej aż zdefiniujemy wszystkie pojedyńcze dźwięki jakie chcemy grać

Issue zbiorowy @pi

# Nowe literały ## Akordy relatywne Pomiędzy określeniem prymy, a pozostałych wstawiamy `r` Przykładowo C-dur: - Jako akord relatywny `cr43` - Jako akord bezwględny `c47` ## Typ herzowy - Możliwy do zbudowania poprzez literał herzowy `<liczba>hz`, np `440hz` - Oferujące przejście z wartości nutowej, wartości liczbowej przy pomocy funkcji `tohz` - Oferujące potencjalne granie mikrotonowe oraz łatwe przejście z wyniku niektórych matematycznych transformacji dźwiękowych do MIDI Przykładowo `440hz` jest równe `(a 4)`. Podstawowe granie przez `play` (w tym jego niejawną wersję) wspiera tylko granie półtonalne. Potencjalne techniki grania mikrotonowego zostaną omówione poniżej. # Nowe operacje na dźwiękach ## Zaokrąglanie W ramach muzyki co najwyżej półtonowej: - `floor <nuta / akord> <skala: array of notes>` zaokrąglający w dół do najbliżej nuty ze skali - `ceil <nuta / akord> <skala: array of notes>` zaokrąglający w górę do najbliżej nuty ze skali - `round <nuta / akord> <skala: array of notes>` zaokrąglanie wg najmniejszej odległości do nuty ze skali Możliwym jest dodanie skali do wartości domyślnych przechowywanych w kontekście. Wtedy `floor`, `ceil` i `round` mogą przyjąć argumenty według schematu powyżej lub pominąć argument ze skalą by użyć wartości domyślnej. # Wsparcie dla grania muzyki mikrotonowej Pitch bend, który umożliwa przejście na mikrotony, określany jest wyłącznie per kanał, a nie per nuta. Oznacza to, że jeśli chcemy mieć wiele nut o różnych wartościach pitch benda to musimy grać wielokanałowo. Nie mam aktualnie pomysłu na to jak można to dobrze zamodelować by stworzyć intuicyjny i szybki sposób grania mikrotonowego. Pytanie czy wogóle musi istnieć mikrotonowy live coding bez wcześniejszego zdefiniowania potrzebnych mikrotonów. Przykładowy sposób zamodelowania ``` var A = [ time | chan 0; play-bend (a 4 time) 100 ]; -- A w 4 oktawie przesunięte o 100 centów var B = [ time | chan 1; play-bend (b 4 time) 50 ]; -- B w 4 oktawie przesunięte o 50 centów var C = [ time | chan 1; play-bend (b 4 time) -50 ]; -- C w 4 oktawie przesunięte o -50 centów -- i tak dalej aż zdefiniujemy wszystkie pojedyńcze dźwięki jakie chcemy grać ``` Issue zbiorowy @pi
Sign in to join this conversation.
No Label
bug
enhancement
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: s416496/musique#28
No description provided.