Skip to content

Commit

Permalink
Translate music (#15)
Browse files Browse the repository at this point in the history
* introduction for buttons

* Translated 4 paragraphs of tutorial buttons

* First translation for hello.rst

* Few fixes for hello.rst

* Final fixes

* half translated buttons page

* next part of page buttons.rst

* last part of translation buttons.rst

* Update hello.rst according to review comments

Fixed as suggested by deshipu in #3

* Change translation of word "flash"

* Grammar fix

* Corrections

* one word chenged

* changed; my propositions: else if -> jeśli jednak; else -> w pozostałych przypadkach

* Translate buttons (#2)

* introduction for buttons

* Translated 4 paragraphs of tutorial buttons

* half translated buttons page

* next part of page buttons.rst

* last part of translation buttons.rst

* Corrections

* one word chenged

* changed; my propositions: else if -> jeśli jednak; else -> w pozostałych przypadkach

* Poprawki od Radomira

* Kolejne poprawki od Radomira + korekta literówek

* Przywrócona właściwa wersja akapitu

* tlumaczenie tutoriala modulu Random

* Revert "tlumaczenie tutoriala modulu Random"

This reverts commit fce2ece.

* music _translate ver.01

* music _translate ver.01 poprawione literowki

* mała poprawka formatowania i spacje

* Poprawione według sugestii i 2 końcowe akapity zmieniłem.

* Poprawki do dwóch końcowych akapitów

* Jest "mówi po polsku" o to chodziło?
  • Loading branch information
mexak authored and deshipu committed Mar 20, 2018
1 parent 08bab74 commit 2665474
Showing 1 changed file with 38 additions and 67 deletions.
105 changes: 38 additions & 67 deletions docs/tutorials/music.rst
Original file line number Diff line number Diff line change
@@ -1,29 +1,26 @@
Music
-----
Muzyka
------

MicroPython on the BBC micro:bit comes with a powerful music and sound module.
It's very easy to generate bleeps and bloops from the device *if you attach a
speaker*. Use crocodile clips to attach pin 0 and GND to the positive and
negative inputs on the speaker - it doesn't matter which way round they are
connected to the speaker.
MicroPython na BBC micro:bit zawiera bogaty w możliwości moduł muzyki i dźwięku. Dzięki niemu można w prosty sposób zaprogramować BBC micro:bit do wygenerowania
piśnięć i innych odgłosów. Oczywiście, aby coś usłyszeć trzeba *podłączyć głośniki* -- za pomocą krokodylków podłącz pin 0 oraz GND do wejść głośnika. Nie ma znaczenia który zacisk do którego wejścia zostanie podłączony.

.. image:: pin0-gnd.png

.. note::

Do not attempt this with a Piezo buzzer - such buzzers are only able to
play a single tone.
Do tego celu nie używaj brzęczyka piezoelektrycznego, który może generować
tylko pojedynczy ton.

Let's play some music::
Zagrajmy coś!::

import music

music.play(music.NYAN)

Notice that we import the ``music`` module. It contains methods used to make
and control sound.
Zauważ, że importujemy moduł ``music``. Zawiera on polecenia wykorzystywane do
wytwarzania i kontrolowania dźwięków.

MicroPython has quite a lot of built-in melodies. Here's a complete list:
MicroPython ma dość dużo wbudowanych melodii. Oto ich kompletna lista:

* ``music.DADADADUM``
* ``music.ENTERTAINER``
Expand All @@ -47,34 +44,24 @@ MicroPython has quite a lot of built-in melodies. Here's a complete list:
* ``music.POWER_UP``
* ``music.POWER_DOWN``

Take the example code and change the melody. Which one is your favourite? How
would you use such tunes as signals or cues?
Pobierz któryś z przykładowych kodów i odtwórz melodię. Która podoba Ci się najbardziej? Masz pomysł na ich wykorzystanie jako sygnały?

Wolfgang Amadeus Microbit
+++++++++++++++++++++++++
Wolfgang Amadeusz Microbit
++++++++++++++++++++++++++

Creating your own tunes is easy!
Zaprogramowanie swojej własnej melodii jest bardzo łatwe!

Each note has a name (like ``C#`` or ``F``), an octave (telling MicroPython how
high or low the note should be played) and a duration (how
long it lasts through time). Octaves are indicated by a number ~ 0 is the
lowest octave, 4 contains middle C and 8 is about as high as you'll ever need
unless you're making music for dogs. Durations are also expressed as numbers.
The higher the value of the duration the longer it will last. Such
values are related to each other - for instance, a duration of ``4`` will last
twice as long as a duration ``2`` (and so on). If you use the note name ``R``
then MicroPython will play a rest (i.e. silence) for the specified duration.
Każda nuta ma nazwę (np. ``C#`` lub ``F``), oktawę (określającą jak wysoko lub nisko dźwięk ma być grany) oraz długość (przez jaki czas dźwięk ma być grany). Oktawy są oznaczone liczbami ~ 0 oznacza najniższą oktawę, oktawa 4 zawiera środkowe C, a 8 jest tak wysoko, że wyższej już nie będziesz potrzebować, chyba że zechcesz tworzyć muzykę dla psów. Długość dźwięku jest również wyrażana jako liczby. Im większa liczba tym dłużej nuta będzie odtwarzana. Te wielkości są od siebie zależne, np. po wprowadzeniu wartości ``4``, nuta będzie odtwarzana 2 razy dłużej niż po wprowadzeniu ``2`` itd. Jeśli zamiast nuty wpiszesz "R", to MicroPython w tym miejscu zrobi pauzę (ang. rest) o zadanej długości.

Each note is expressed as a string of characters like this::
Każda nuta opisywana jest jako ciąg znaków::

NOTE[octave][:duration]
NUTA[oktawa][:długość]

For example, ``"A1:4"`` refers to the note named ``A`` in octave number ``1``
to be played for a duration of ``4``.
Na przykład, ``"A1:4"`` opisuje nutę ``A`` w oktawie numer ``1`` o długości
``4``.

Make a list of notes to create a melody (it's equivalent to creating an
animation with a list of images). For example, here's how to make MicroPython
play opening of "Frere Jaques"::
Utwórz listę nut, które stworzą melodię. Poniżej znajduje się zapis, dzięki
któremu MicroPython zagra początek melodii "Panie Janie"::

import music

Expand All @@ -84,24 +71,22 @@ play opening of "Frere Jaques"::

.. note::

MicroPython helps you to simplify such melodies. It'll remember the octave
and duration values until you next change them. As a result, the example
above can be re-written as::
MicroPython umożliwia zapisywanie takich melodii w uproszczony sposób. Zapamięta oktawę oraz długość nuty i będzie je wykorzystywał aż do wprowadzenia nowych wartości. Dzięki temu powyższy przykład może zostać zapisany tak:

import music

tune = ["C4:4", "D", "E", "C", "C", "D", "E", "C", "E", "F", "G:8",
"E:4", "F", "G:8"]

"E:4", "F", "G:8"]
music.play(tune)

Notice how the octave and duration values only change when they have to.
It's a lot less typing and simpler to read.
Zauważ, że wartości określające oktawę i czas trwania są wpisywane tylko wtedy, kiedy są zmieniane. Dzięki temu kod jest łatwiejszy zarówno do napisania jak i do odczytania.

Sound Effects
+++++++++++++
Efekty dźwiękowe
++++++++++++++++

MicroPython lets you make tones that are not musical notes. For example, here's
how to create a Police siren effect::
MiroPython umożliwia tworzenie melodii i dźwięków zapisanych inaczej niż nutami.
Na przykład dzięki poniższemu kodowi możemy uzyskać efekt syreny policyjnej::

import music

Expand All @@ -112,26 +97,12 @@ how to create a Police siren effect::
music.pitch(freq, 6)


Notice how the ``music.pitch`` *method* is used in this instance. It expects a
frequency. For example, the frequency of ``440`` is the same as a concert ``A``
used to tune a symphony orchestra.

In the example above the ``range`` function is used to generate ranges of
numeric values. These numbers are used to define the pitch of the tone. The
three arguments for the ``range`` function are the start value, end value and
step size. Therefore, the first use of ``range`` is saying, in English, "create
a range of numbers between 880 and 1760 in steps of 16". The second use of
``range`` is saying, "create a range of values between 1760 and 880 in steps of
-16". This is how we get a range of frequencies that go up and down in pitch
like a siren.

Because the siren should last forever it's wrapped in an infinite ``while``
loop.

Importantly, we have introduced a new sort of a loop inside the ``while``
loop: the ``for`` loop. In English it's like saying, "for each item in some
collection, do some activity with it". Specifically in the example above, it's
saying, "for each frequency in the specified range of frequencies, play the
pitch of that frequency for 6 milliseconds". Notice how the thing to do for
each item in a for loop is indented (as discussed earlier) so Python knows
exactly which code to run to handle the individual items.
Zwróć uwagę, że w tym przypadku użyliśmy metody ``music.pitch``.
Wymaga ona podania częstotliwości. Na przykład częstotliwość 440 to koncertowe A używane do strojenia instrumentów w orkiestrze symfonicznej.

W powyższym przykładzie funkcja ``range`` (ang. zakres) jest wykorzystana do wygenerowania zakresów numerycznych wartości. Te liczby są użyte do zdefiniowania wysokości tonu. Te trzy argumenty dla funkcji ``range`` to odpowiednio wartość początkowa zakresu, wartość końcowa i krok. Zatem pierwsze użycie ``range``, mówi po polsku "utwórz przedział liczb pomiędzy 880 a 1760 o kroku 16". Drugie użycie ``range`` mówi "utwórz przedział wartości pomiędzy 1760 a 880 o kroku -16". W ten sposób uzyskamy zakres częstotliwości, które stopniowo zwiększając się i zmniejszając tworzą dźwięk przypominający syrenę.

Ponieważ dźwięk syreny powinien trwać nieskończenie długo, jest on wpisany
w niekończącą się pętlę ``while``.

Co ważne, wprowadziliśmy nowy rodzaj pętli wewnątrz pętli ``while`` (ang. dopóki): pętlę ``for`` (ang. dla). Po polsku to jest tak, jak powiedzieć "dla każdego elementu w pewnym zbiorze, wykonaj z nim pewną czynność". Konkretnie w powyższym przypadku to oznacza "dla każdej częstotliwości w określonym w zakresie, graj ton o tej częstotliwości przez 6 milisekund". Zwróć uwagę na wcięcia przy każdym wierszu wewnątrz pętli ``for`` (mówiliśmy o tym wcześniej), sprawiają one, że Python dokładnie wie, który kod uruchomić aby obsłużyć poszczególne elementy.

0 comments on commit 2665474

Please sign in to comment.