Weby NPINPIMojeEduEduRevueRevize RVPProhlédnout RVPZapojme všechnyVedeme školu
npi
npi
  • Celá nabídka
  • Přihlásit se
  • Domovská stránka
  • Prohlédnout celou nabídku

  • Přihlásit se

MojeEdu

  • Domovská stránka
  • Celá nabídka
  • Pomoc k RVP PV
  • Pomoc k RVP ZV
  • Pomoc k RVP ZŠS
  • Nabídka IPS Kurikulum
  • Metodické kabinety
  • Jak na plynulý přechod z MŠ do ZŠ?
  • Spomocník
  • Záznamy webinářů
  • Proč MojeEdu?
  • Co je MojeEdu?
  • Jak používat MojeEdu?
  • Export produktů (JSON)
  • Export produktů (CSV)

Weby NPI

  • NPI
  • Revize RVP
  • Prohlédnout RVP
  • Digitalizace ve vzdělávání
  • Zapojme všechny
  • Vedeme školu

Kontakt

Konzultační centrummojeedu@npi.czSenovážné náměstí 25,
110 00 Praha 1

Sociální sítě


EU logo

  • Prohlášení o přístupnosti
  • Newsletter

NPI ČR © 2026

Odborný článek

Python v hudbě: ladička

  • gymnázium
  • Informatika (rvp gv 2021)
  • Informatika
  • Algoritmizace a programování
  • vytvoří přehledný program pro vyřešení konkrétního problému s ohledem na jeho možné důsledky a svou odpovědnost za ně; používá opakování, větvení programu se složenými podmínkami, proměnné, seznamy, podprogramy s parametry a návratovými hodnotami; ve snaze o vyšší efektivitu navrhuje, řídí a hodnotí

Rubrika
Odborný článek
Typ článku
Praktický
Stupeň vzdělávání
Gymnaziální vzdělávání
Týká se jazyka
Čeština

18. 3. 2026

Autor
PK

Pavel Konrád

Další tvorba autora
Kód

portal-24370

Seriál

Python v hudbě

  1. 1.Kódování v Pythonu skrze hudbu
  2. 2.Python v hudbě: Úvod do programování
  3. 3.Python v hudbě: skript na akordy
  4. 4.Python v hudbě: intervaly jako seznam a metody
  5. 5.Python v hudbě: určení intervalů pomocí podmínek a logických operátorů
  6. 6.Python v hudbě: podmínky podruhé
  7. 7.Python v hudbě: cykly v jazyce Python, cyklus For
  8. 8.Python v hudbě: Metronom
  9. 9.Python v hudbě: funkce
  10. 10.Python v hudbě: ladička
  11. 11.Python v hudbě: generátor chromatiky

18. 3. 2026

Autor
PK

Pavel Konrád

Další tvorba autora
Kód

portal-24370

Pomocí programovacího jazyka Python prozkoumáme možnosti, jak přenášet a kódovat informace, které budeme demonstrovat na hudebních analogiích. V deváté aktivitě vytvoříme jednoduchou ladičku, která bude přehrávat tón, který uživatel zadá. Každému tónu přiřadíme frekvenci a pomocí oscilátoru ji bude počítač přehrávat. Celý program bude mít jeden uživatelský vstup, kam uživatel zadá tón a program následně tento tón přehraje.

  • Typ materiálu: cvičení 
  • Škola: gymnázium
  • Ročník: kvarta
  • Metody: cvičení
  • Vzdělávací obor: informatika
  • Tematický okruh: algoritmizace a programování
  • Očekávané výstupy: Vytvoří přehledný program pro vyřešení konkrétního problému s ohledem na jeho možné důsledky a svou odpovědnost za ně; používá opakování, větvení programu se složenými podmínkami, proměnné, seznamy, podprogramy s parametry a návratovými hodnotami; ve snaze o vyšší efektivitu navrhuje, řídí a hodnotí souběh procesů.
  • Časová dotace:
    • Výuka: 45 minut
    • Příprava: 30 minut
  • Pomůcky, hardware a software
    • Učitel: nainstalovaný Python
    • Žák: PC WIN s nainstalovaným Pythonem a IDE

Zdroje:

  • https://www.w3schools.com/python

Potřebné vstupní znalosti a dovednosti

Oborové

  • Základní orientace v programovacím jazyku Python
  • Znalost proměnných a datových typů
  • Znalost cyklů while a for
  • Znalost tvorby funkcí

Digitální dovednosti

  • Pokročilé ovládání počítače
  • Schopnost postupovat podle návodu
  • Orientace v základní terminologii algoritmizace a programování

Vzdělávací cíle:

  • Vytvořit generátor tónů, který bude schopen přehrávat frekvence.
  • Žák procvičí základní konstrukci jazyka Python.

Přínos využití digitálních technologií

Díky algoritmu můžeme generovat frekvence jednotlivých tónů, které nám mohou posloužit jako metodická pomůcka v hudebních výchovách při porovnání různých historických ladění.

Metodická poznámka

Tento materiál je samostatnou prací pro žáky. Jelikož je to pokročilá úloha, můžeme nechat studenty řešení dodělat jako domácí úkol a známkovat aktivitu studentů a jejich přístup k řešení úlohy. Počítejme s tím, že ne všichni studenti pochopí zadání. S nimi můžeme psát kód na interaktivní tabuli a postupně odkrývat kousky kódu a jejich řešení. Neodkrýváme kód ihned celý, ale vždy pouze určitou část, přičemž necháme studentům prostor pro vlastní invenci. Samozřejmě studentům povolíme pracovat s internetem a pobídneme je k vyhledávání možných řešení.

Metodický postup

Nejprve si načrtneme zadání, jak by měl program vypadat:

Vytvořte algoritmus, který bude na základě uživatelského vstupu generovat tón na předem definované frekvenci. Na základě uživatelského vstupu, kdy uživatel zvolí tón, který chce přehrát, program vygeneruje přiřazenou frekvenci k danému tónu.

  • Použijte pro přehrávání tónů modul winsound a time.
  • Ošetřete vstup uživatele tak, aby mohl zadávat pouze nadefinované tóny.

Jak postupovat:

  1. Importujte moduly pro práci s časem a Windows zvuky.
  2. Vytvořte proměnnou scale, do které uložíte nejprve názvy tónů.
  3. Poté utvořte proměnnou freq, do které uložíte jednotlivé frekvence tónů.

4. Vytvořte funkci, která bude hledat index tónu a podle toho ji přiřadí frekvenci z proměnné scale.

5. Když máme nadefinovanou funkci, která zjistí pozici indexu, můžeme tuto pozici použít pro proměnnou scale, ale i pro proměnnou freq, jelikož jsou frekvence seřazené do stejného pořadí jako tóny. Návratovou hodnotu si uložíme do proměnné a vykonáme zkoušku, zda funkce funguje správně:

6. Vytvoříme funkci, která bude přehrávat tóny na základě jejich frekvencí, a vyzkoušíme, zda nám generátor funguje.

7. Nyní je potřeba, abyste změnili proměnnou „x“ tak, aby načetla vstup uživatele, a zároveň tento vstup ošetřili podmínkou, aby v případě chybného vstupu program vypsal hlášení, že takový tón není k dispozici. Zároveň je potřeba, aby nám program znovu nabídl možnost zadat další tón na přehrání.

  • Pomocí cyklu while uzavřete algoritmus do smyčky.
  • Určíme podmínku, zda se nachází vstup uživatele v proměnné scale pomocí not in.
  • Jestliže je podmínka vyhodnocena pravdivě (to znamená, že není), vypíše se uživateli hlášení, že takové tóny nejsou k dispozici, a nabídnou se mu tóny, které může zadat. Opět se nabídne uživateli nový vstup.
  • Jinak se zavolá funkce NajdiPoziciTonu a hned poté necháme zavolat funkci ZahrajTon a novým vstupem pro uživatele.

8. Můžeme také rozšířit náš program tak, aby když uživatel zadá vstup „q“, tak program ukončí.

Řešení:

Hodnocení:

Hodnotíme studentův přístup k práci a to, v jakém rozsahu splnil všechny body zadání. Hodnotíme, zda dokázal efektivně hledat chyby, zda věděl, proč se tyto chyby zobrazovaly, a zda dokázal jednotlivé bloky kódu poskládat tak, aby algoritmus fungoval, popř. zda vymyslel své kreativní řešení problému. Můžeme hodnotit i úhlednost kódu a přidání komentářů pro lepší čitelnost celého kódu. V případě, že student nedokázal algoritmus sestavit, hodnotíme, zdali porozuměl jednotlivým částem a v jakém rozsahu se mu podařilo tyto části poskládat do jednoho celku.

Zkušenosti s použitím materiálu

Tento materiál je samostatnou prací pro žáky. Jelikož je to pokročilá úloha, můžeme nechat studenty řešení dodělat jako domácí úkol a známkovat aktivitu studentů a jejich přístup k řešení úlohy. Počítejme s tím, že ne všichni studenti pochopí zadání. S nimi můžeme psát kód na interaktivní tabuli a postupně odkrývat kousky kódu a jejich řešení. Neodkrýváme kód ihned celý, ale vždy pouze určitou část, přičemž necháme studentům prostor pro vlastní invenci. Samozřejmě studentům povolíme pracovat s internetem a pobídneme je k vyhledávání možných řešení.

Klíčová slova

  • hudba
  • kódování
  • ladička
  • programovací jazyk
  • programování
  • python
cc

Licence

Tento materiál je publikován pod licencí Creative Commons – Uveďte původ – Neužívejte komerčně – Nezpracovávejte 4.0.