Arduino - zložitejšia melódia

From DT^2
Revision as of 16:42, 4 August 2018 by 95.105.230.221 (talk)
Jump to: navigation, search

V tomto projekte naprogramujeme jednoduché zadávanie zložitejšej (akejkoľvek) melódie, ktorú potom Arduino dokáže zahrať.

Najskôr si navrhneme spôsob kódovania melódie:

oktáva \ nota c c# d d# e f f# g g# a a# h
veľká 0 1 2 3 4 5 6
malá 7 8 9 10 11 12 13 14 15 16 17 18
1. 19 20 21 22 23 24 25 26 27 28 29 30
2. 31 32 33 34 35 36 37 38 39 40 41 42
3. 43 44 45 46 47 48
pomlčka 49


šestnástinové ( +0)
osminové ( +50)
štvrťové (+100)
pólové (+150)
celé (+200)


iná nota: 251 f1 f2 d1 d2 frekvencia = f1 * 256 + f2, dĺžka noty: d1/d2
nastavenie rytmu: 252 d dĺžka trvania celej noty = d * 20 [ms]
prepnutie oktávy: 253 o bez oktávy o=0, subkontra: o=1, kontra: o=2, veľká: o=3, malá: o=4, prvá: o=4, atď. Po prepnutí oktávy platia čísla nôt 0-49.

Napríklad:

 1 uint16_t dlzka_kohutik = 24;
 2 uint8_t kohutik_jarabi[] = { 119, 121, 173, 174, 124, 124, 124, 123, 171, 173, 123, 123, 123, 121, 169, 171, 121, 121, 121, 123, 171, 169, 119, 119 };
 3 
 4 uint16_t dlzka_cancan = 279;
 5 uint8_t cancan[] = {
 6 251,1,184,1,32,126,149,251,1,184,1,32,125,149,251,1,184,1,32,126,251,1,184,1,32,126,251,1,184,1,32,126,251,1,184,1,32,126,
 7 64,71,71,73,71,69,69,73,74,78,81,78,78,76,251,1,184,1,32,126,78,68,68,78,76,69,69,73,73,71,73,71,85,83,85,83,
 8 64,71,71,73,71,69,69,73,74,78,81,78,78,76,251,1,184,1,32,126,78,68,68,78,76,69,69,73,73,71,73,71,71,69,119,
 9 135,131,128,126,75,76,78,80,81,76,80,76,81,76,80,76,81,76,80,76,81,76,80,76,
10 251,2,11,3,16,19,251,1,4,3,16,19,
11 251,1,4,3,16,19,251,1,4,3,16,19,
12 251,1,4,3,16,19,251,1,4,3,16,19,
13 251,1,4,3,16,19,251,1,4,3,16,19,
14 174,88,91,90,88,193,193,93,95,90,91,138,138,88,91,90,88,86,86,85,83,81,79,78,76,
15 174,88,91,90,88,193,193,93,95,90,91,138,138,88,91,90,88,86,93,89,90,136,
16 64,71,71,73,71,69,69,73,74,78,81,78,78,76,251,1,184,1,32,126,
17 78,76,126,78,76,126,78,76,126,78,76,126,78,76,126,78,76,126,
18 78,76,78,76,78,76,78,76,
19 131,119,119,119,169 };