Translation to polish

This commit is contained in:
Mateusz Piątkowski 2022-11-14 19:55:09 +01:00
parent de210b571d
commit 21431af191
2 changed files with 47 additions and 42 deletions

View File

@ -92,6 +92,8 @@
* `shuffle args` tasuje elementy `args`: * `shuffle args` tasuje elementy `args`:
- `args` powinna być to tablica; - `args` powinna być to tablica;
* `sim` #TODO
* `sort args` sortuje elementy `args`: * `sort args` sortuje elementy `args`:
- `args` powinna być to tablica; - `args` powinna być to tablica;

View File

@ -6,10 +6,9 @@ author: Robert Bendun <robben@st.amu.edu.pl>
# Wprowadzenie do języka Musique # Wprowadzenie do języka Musique
W poniższej dokumentacji obowiązują następujące konwencje: W dalszej części tekstu przyjmujemy następujące konwencje:
`>` jest to [znak zachęty](https://pl.wikipedia.org/wiki/Znak_zach%C4%99ty) i wskazuje gotowość programu Musique do wprowadzania tekstu. `>` jest to [znak zachęty](https://pl.wikipedia.org/wiki/Znak_zach%C4%99ty) i wskazuje gotowość programu Musique do wprowadzania tekstu. Jeżeli widzisz taki znak, oznacza to, że jesteś w programie Musique.
Indykuje on obecność w sesji programu Musique.
Przykładowo: Przykładowo:
@ -19,12 +18,12 @@ Przykładowo:
> >
``` ```
prezentuje efekt wpisania tekstu `3 + 4` oraz potwierdzenia przyciskiem `ENTER`, na co Musique zareagowało wynikiem tej operacji. W tym przykładzie wykonujemy `3 + 4` , zatwierdzając ENTERM, w zwrocie otrzymując w tym konkretnym przypadku wynik operacji.
Jeśli przykład terminala nie przedstawia interaktywnej sesji, a zawartość pliku to znak zachęty nie występuje na początku linii. Nawiasem mówiąc przykłady w tym wprowadzeniu mogą rozpoczynać się od `>` oznacza to, że polecenia wprowadzono w sesji interaktywnej, lub bez tego znaku wtedy traktujemy przykład jako zapisany plik z poleceniami.
Nie ma różnic pomiędzy wykonywaniem komend języka Musique z pliku lub z sesji interaktywnej, różnią się tylko wygodą użytkownika. Nie ma różnic pomiędzy wykonywaniem poleceń języka Musique zawartych w pliku, a poleceniami wprowadzanymi w sesji interaktywnej wybór pozostawiamy użytkownikowi.
Można wykonać polecenia rozpisane na kilka linijek w sesji interaktywnej - należy wtedy wpisać je w formie jednej linii. Można wykonać złożone polecenia (które w pliku rozstałby rozbite na kilka linii) w sesji interaktywnej - należy wtedy wpisać je w formie jednej linii.
## Nuty, pauzy, akordy ## Nuty, pauzy, akordy
@ -44,7 +43,7 @@ Możesz zagrać inną nutę jak E:
> play e > play e
``` ```
lub wiele nut rozdzielając je przecinkiem: lub wiele nut po kolei należy umieścić je w nawiasach okrągłych, rozdzielone przecinkami:
``` ```
> play (c, e, g) > play (c, e, g)
@ -61,15 +60,15 @@ pozwala to przykładowo tworzyć:
- `c##` - dźwięk d - `c##` - dźwięk d
- `eb` - dźwięk dis - `eb` - dźwięk dis
Aby dźwięk został odtworzony w odpowiedniej oktawie można podać ją zaraz przy dźwięku - `c4` to dźwięk c w 4 oktawie, `c#8` to dźwięk cis w 8 oktawie. Aby dźwięk został odtworzony w wybranej oktawie można dołączyć do znaku dźwięku liczbową wartość oktawy - `c4` to dźwięk c w 4 oktawie, `c#8` to dźwięk cis w 8 oktawie, itp.
``` ```
> play (c4, c5, c6) > play (c4, c5, c6)
``` ```
Aby dźwięk trwał określoną długość należy podać jako parametr pożądaną długość: Aby dźwięk trwał określoną długość należy podać jako dodatkowy parametr pożądaną wartość, przykładowo:
Sekwencja złożona z: ćwierćnuty c w 4 oktawie, półnuty d w 5 oktawie oraz całej nuty e w 4 oktawie wygląda następująco: Sekwencja złożona z dźwięku C w 4 oktawie trwającym ćwierćnutę, dźwięku D w 5 oktawie trwającym półnutę oraz dźwięku E w 4 oktawie trwającym całą nutę wygląda następująco:
``` ```
> play (c4 (1/4), d5 (1/2), e4 1) > play (c4 (1/4), d5 (1/2), e4 1)
@ -91,7 +90,7 @@ Można zapis uprościć korzystając z predefiniowanych czasów dźwięków:
| `dsn` | szesnastka z kropką | `3/32` | | `dsn` | szesnastka z kropką | `3/32` |
| `tn` | trzydziestkadwójka | `1/32` | | `tn` | trzydziestkadwójka | `1/32` |
Korzystając z tych długości możemy uprościć powyższy przykład: Korzystając z tych długości możemy powyższy przykład zapisać równoważnie w ten sposób:
``` ```
> play (c4 qn, d5 hn, e4 1) > play (c4 qn, d5 hn, e4 1)
@ -99,7 +98,7 @@ Korzystając z tych długości możemy uprościć powyższy przykład:
### Pauzy ### Pauzy
Pauzy stosuje się poprzez zastąpienie nazwy dźwięku literą `p`. Pauzy stosuje się poprzez użycie litery `p`:
``` ```
> play (c4 hn, p qn, c4 hn, p qn, c4 hn) > play (c4 hn, p qn, c4 hn, p qn, c4 hn)
@ -107,13 +106,13 @@ Pauzy stosuje się poprzez zastąpienie nazwy dźwięku literą `p`.
### Akordy ### Akordy
Aby odegrać akord należy umieścić sekwencję dźwięków na niego się składających w wywołaniu funkcji `chord`: Aby odegrać akord należy umieścić symbole dźwięków, z których miałby się składać, w wywołaniu funkcji `chord`:
``` ```
> play (chord (c, e, g)) > play (chord (c, e, g))
``` ```
W utworze możemy chcieć częściej używać tych samych akordów bądź sekwencji dźwięków. Możemy zachować je pod nową nazwą: W utworze możemy chcieć częściej używać tych samych akordów czy sekwencji. Przypisanie ich do wybranej nazwy wyglądałoby tak:
``` ```
> sekwencja := (c, e, g) > sekwencja := (c, e, g)
@ -121,9 +120,9 @@ W utworze możemy chcieć częściej używać tych samych akordów bądź sekwen
(c, e, g) (c, e, g)
``` ```
(wpisanie samego wyrażenia takiego jak nazwa pozwala zobaczyć jej zawartość). Wpisanie samej nazwy pozwala zobaczyć co się pod nią znajduje.
Z utworzonej sekwencji możemy stworzyć akord: Zapisaną sekwencję możemy przerobić na akord, ponownie wykorzystując funkcję `chord`:
``` ```
> C := chord sekwencja > C := chord sekwencja
@ -137,7 +136,7 @@ i następnie go odtworzyć:
> play C > play C
``` ```
należy zwrócić uwagę, że Musique rozróżnia wielkość liter. Ponadto nazw będących oznaczeniami dźwięków jak `c` bądź `cffff` nie można używać jako nazw dla zmiennych. Należy zwrócić uwagę, że Musique rozróżnia wielkość liter. Ponadto nazw będących oznaczeniami dźwięków jak `c` bądź `cffff` nie można używać jako nazw dla zmiennych.
## Metody tworzenia sekwencji ## Metody tworzenia sekwencji
@ -169,13 +168,15 @@ Funkcja `pick` pozwala na wybór losowego elementu z sekwencji. Można użyć je
> play (c4 (pick qn hn)) > play (c4 (pick qn hn))
``` ```
W powyższym przykładzie dźwięk C w oktawie 4 zostanie zagrany losowo z długością ćwierćnuty lub półnuty.
### Losowe ustawienie elementów sekwencji ### Losowe ustawienie elementów sekwencji
Funkcja `shuffle` pozwala na tworzenie sekwencji z losową kolejnością elementów, np: Funkcja `shuffle` pozwala na tworzenie sekwencji z losową kolejnością elementów, np:
``` ```
> shuffle (c, e, f, g) > shuffle (c, e, f, g)
(c, g, e, f) (f, g, e, c)
``` ```
### Generowanie sekwencji w oparciu o liczbę półtonów ### Generowanie sekwencji w oparciu o liczbę półtonów
@ -187,7 +188,7 @@ Funkcja `shuffle` pozwala na tworzenie sekwencji z losową kolejnością element
(c4, c#4, d4, d#4) (c4, c#4, d4, d#4)
``` ```
lub krócej wykorzystując funkcję `up`. Podobny efekt można uzyskać funkcję `up` jako generator wartości liczbowych:
``` ```
> up 5 > up 5
@ -197,7 +198,7 @@ lub krócej wykorzystując funkcję `up`.
> play (c4 + up 4) > play (c4 + up 4)
``` ```
lub jeśli chcemy zagrać w odwrotnej kolejności funkcję `down`: Analogicznie działa funkcja `down`, generująca wartości liczbowe w kierunku zera:
``` ```
> down 5 > down 5
@ -207,7 +208,7 @@ lub jeśli chcemy zagrać w odwrotnej kolejności funkcję `down`:
> play (c4 + down 5) > play (c4 + down 5)
``` ```
możemy złączyć sekwencje przy pomocy operatora `&`: Możemy złączyć sekwencje przy pomocy operatora `&`:
``` ```
> up 5 & down 5 > up 5 & down 5
@ -215,7 +216,7 @@ możemy złączyć sekwencje przy pomocy operatora `&`:
> play (c4 + up 5 & down 5) > play (c4 + up 5 & down 5)
``` ```
jeśli przeszkadza nam podwójnie zagrana nuta `e4` możemy ją wyeliminować funkcją `uniq` która usuwa sąsiadujące ze sobą duplikaty: Jeśli przeszkadza nam podwójnie zagrana nuta `e4` możemy ją wyeliminować funkcją `uniq`, która usuwa sąsiadujące ze sobą powtórzenia:
``` ```
> uniq (up 5 & down 5) > uniq (up 5 & down 5)
@ -223,26 +224,29 @@ jeśli przeszkadza nam podwójnie zagrana nuta `e4` możemy ją wyeliminować fu
> play (c4 + uniq (up 5 & down 5)) > play (c4 + uniq (up 5 & down 5))
``` ```
## Metody odtwarzania sekwencji ## Metody odtwarzania sekwencji
Musique posiada trzy główne metody otwarzania sekwencji: Musique posiada trzy główne metody odtwarzania sekwencji:
- `play` które odtwarza kolejne dźwięki po kolei - `play` które odtwarza dźwięki w kolejności
- `par` które odtwarza pierwszy dźwięk równocześnie z pozostałymi - `par` które odtwarza pierwszy dźwięk równocześnie z pozostałymi
- `sim` który odtwarza każdą podaną mu sekwencję równocześnie - `sim` który odtwarza każdą podaną mu sekwencję równocześnie
Każda z nich w momencie napotkania dźwięku z nieokreśloną oktawą lub długością Każda z nich w momencie napotkania dźwięku z nieokreśloną oktawą lub długością wypełni ją według wartości *domyślnej* (wartości domyślne to: 4 oktawa, 120 bpm, ćwierćnuta).
wypełni tą wartość według wartości *domyślnej* (wartości domyślne to: 4 oktawa, 120 bpm, ćwierćnuta).
Wartości domyślne można ustawiać przy pomocy funkcji `oct`, `len` oraz `bpm`. Wartości domyślne można ustawiać przy pomocy funkcji `oct`, `len` oraz `bpm`. Poniższy przykład ustawia domyślną oktawę na 5, domyślną długość na półnutę oraz domyślne tempo na 100 uderzeń na minutę:
```
> oct 5
> len hn
> bpm 100
```
### `play` ### `play`
`play` przechodzi kolejno przez kolejne elementy sekwencji. `play` kończy wykonanie po odtworzeniu `play` przechodzi kolejno przez elementy sekwencji i kończy się po odtworzeniu wszystkich dźwięków.
wszystkich dźwięków na niego się składających.
Jeśli chcemy wykonać kilka `play` po sobie, możemy to osiągnąć rozdzielając je przecinkami - identycznie jak wcześniej tworzone sekwencje: Jeśli chcemy wykonać kilka `play` po sobie, możemy to osiągnąć rozdzielając je przecinkami analogicznie do wspomnianych wcześniej sekwencji:
``` ```
play (c qn, e qn, g hn), play (c qn, e qn, g hn),
@ -250,7 +254,9 @@ play (16 * (f sn)),
play (c qn, e qn, g hn), play (c qn, e qn, g hn),
``` ```
można zapisać prościej poprzez: Uwaga powyższy przykład reprezentuje polecenia zapisane w pliku (stosujemy konwencję rozszerzenia `.mq`) wskazuje na to brak znaku zachęty `>`.
Można ten zapis uprościć:
``` ```
play ( play (
@ -260,16 +266,13 @@ play (
), ),
``` ```
gdzie wcięcia i entery zostały dodane dla poprawy czytelności. gdzie wcięcia i nowe linie zostały dodane dla poprawy czytelności.
### `par` ### `par`
`par` umożliwa wykonanie pierwszego argumentu przez całą długość trwania pozostałych - `par` umożliwa wykonanie pierwszego argumentu przez całą długość trwania pozostałych - niezależnie od tego jaka długość dźwięku została określona dla pierwszego z nich, zostanie dopasowany do sumy długości pozostałych dźwięków.
niezależnie od tego jak dźwięk został określony zostanie dopasowany do drugiej części.
Przykład inspirowany Odą do Radości, w którym akord trwa przez całą długość odtwarzania Przykład inspirowany Odą do Radości, w którym akord trwa przez całą długość odtwarzania sekwencyjnie pozostałych dźwięków. Wcześniej ustawiamy domyślną oktawę jako 5, by nie musieć powtarzać jej przy każdym dźwięku:
sekwencyjnie pozostałych dźwięków. Wcześniej ustawiamy domyślną oktawę jako piątą,
by nie musieć powtarzać jej przy każdym dźwięku:
``` ```
oct 5, oct 5,
@ -278,15 +281,15 @@ par (chord c3 g3 c4) (e, e, f, g)
### `sim` ### `sim`
`sim` umożliwia wykonywanie równocześnie kilku sekwencji: `sim` umożliwia wykonywanie równocześnie kilku sekwencji.
Brutalna metoda stworzenia akordu poprzez równocześne odtworzenie dźwięków c, e, g: Poniżej "niepoprawna" metoda stworzenia akordu poprzez równocześne odtworzenie dźwięków c, e, g:
``` ```
> sim c e g > sim c e g
``` ```
Trzy ćwierćnuty c4 oraz równocześnie po ćwierćnutowej pauzie 4 szesnastki d5: Trzy dźwięki C w domyślnej oktawie o długości ćwierćnuty odtwarzane równocześnie wraz z pauzą ćwierćnutową i czterema dźwiękami D w piątek oktawie o długości szesnastki:
``` ```
> sim (3 * c qn) (p qn, 4 * (d5 sn)) > sim (3 * c qn) (p qn, 4 * (d5 sn))