Zvuk v Bascomu

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
denny_ul
Příspěvky: 30
Registrován: 14 zář 2015, 00:00
Bydliště: Ústí n.L.

Zvuk v Bascomu

#1 Příspěvek od denny_ul »

Poradí někdo jak funguje

Kód: Vybrat vše

SOUND pin, duration, pulses

dá se třeba sehnat tabulka kde by byly hodnoty duration a pulse odpovídající notám?

Něco jako nota C1(1/16) = duration 111 a pulses 600

Nebo dá se to nějak vypočítat, když budu vědět, že nota C1(1/16) má kmitočet 261Hz a délka je 125ms?
Uživatelský avatar
Neniu
Příspěvky: 1174
Registrován: 01 kvě 2015, 00:00
Bydliště: Doupě kdesi v severních horách :-)

#2 Příspěvek od Neniu »

Délku noty přeci určuje tempo skladby, nedá se říci, že by celá nota vždy zněla jednu sekundu a podobně.

Jinak tabulka frekvencí je na webu velmi snadno najitelná. Třebas tady je jedna hezká http://www.kytara.net/struny/tabulka-no ... vych-delek

nebo i tady http://www.vstfreezone.wz.cz/tabulka-noty.html a krásně třebas tu https://cs.wikipedia.org/wiki/Tón :)

Jinak velmi zajímavá je třeba tato práce http://www.utdallas.edu/~hynek/citing_p ... STREAM.pdf
Jsem na cestě k šípku.
Uživatelský avatar
Neniu
Příspěvky: 1174
Registrován: 01 kvě 2015, 00:00
Bydliště: Doupě kdesi v severních horách :-)

#3 Příspěvek od Neniu »

Jinak v nápovědě se píše cosi o tom, že SOUND není určený pro přesné zvuk, že je lépe použít TIMER.

Nápovědu ale asi znáš http://avrhelp.mcselec.com/ nebo ne?
Jsem na cestě k šípku.
Uživatelský avatar
denny_ul
Příspěvky: 30
Registrován: 14 zář 2015, 00:00
Bydliště: Ústí n.L.

#4 Příspěvek od denny_ul »

Jo nápovědu i tu tabulku kmitočtů znám, ale z nějakého programu jsem vytáhl toto

Kód: Vybrat vše

Sound Speaker , 124 , 675                                   'H2(1/16)
Sound Speaker , 110 , 758                                   'A2(1/16)
Sound Speaker , 248 , 675                                   'H2(1/8)
Waitms 125

to znamená, že třeba nota H2 tady má hodnotu pulses 675
ale podle těch tabulek to tak není
Uživatelský avatar
Neniu
Příspěvky: 1174
Registrován: 01 kvě 2015, 00:00
Bydliště: Doupě kdesi v severních horách :-)

#5 Příspěvek od Neniu »

Asi nezbude nic jiného, než to zkusit naprogramovat a pak změřit čítačem. On ten generovaný kmitočet je stejně závislý i na frekvenci procesoru. Osobně si myslím, že by bylo lepší si udělat vlastní podprogram pro generování přesné frekvence, máš pak plnou vládu nad tím, co to bude generovat.

Něco ve smyslu ideového návrhu:

Kód: Vybrat vše

do
     Pind.2 = 0
     waitus 500
     Pind.2 = 1
     waitus 500
loop
Jsem na cestě k šípku.
Uživatelský avatar
denny_ul
Příspěvky: 30
Registrován: 14 zář 2015, 00:00
Bydliště: Ústí n.L.

#6 Příspěvek od denny_ul »

Myslíš to generovat přes timer, jak jsi psal?
S funkcí timer a counter zatím nejsem kamarád (zatím pořád je to pro mě španělská vesnice), snad se to časem zlepší, hold každý nějak začínal :cry:
Uživatelský avatar
Neniu
Příspěvky: 1174
Registrován: 01 kvě 2015, 00:00
Bydliště: Doupě kdesi v severních horách :-)

#7 Příspěvek od Neniu »

denny_ul píše:Myslíš to generovat přes timer,


Třeba, ono těch možností je více. Toto zrovna časovač ani přerušení nepoužívá. Bylo by potřeba doplnit řízení délky tónu. Ten příklad jen generuje na výstupu 1 kHz.

denny_ul píše:snad se to časem zlepší, hold každý nějak začínal


Nebeč, to se poddá a pak už bude jen dobře :) Bascom je celkem názorný jazyk a většina věcí je pochopitelná. Já také pořád začínám, takže vím, o čem mluvím a jak je důležité si věci zkoušet skutečně naprogramovat do procesoru a nehrát si jen se simulátorem.
Jsem na cestě k šípku.
Uživatelský avatar
denny_ul
Příspěvky: 30
Registrován: 14 zář 2015, 00:00
Bydliště: Ústí n.L.

#8 Příspěvek od denny_ul »

Pokud by někdo řešil něco podobného, tak jsem našel pěknou tabulku:

Kód: Vybrat vše

===============================================================================
Table of values Pulses,Periods for 3 octaves at frequency of quartz 8000000 Hz
===============================================================================
Note|Freqvency|Periods|Pulses 1/1|Pulses 1/2|Pulses 1/4|Pulses 1/8|Pulses 1/16|
===============================================================================
 C1 |  261,63 |  2548 |    523   |    262   |    131   |    65    |     33    |
Cis1|  277,18 |  2405 |    554   |    277   |    139   |    69    |     35    |
 D1 |  293,66 |  2270 |    587   |    294   |    147   |    73    |     37    |
Dis1|  311,13 |  2143 |    622   |    311   |    156   |    78    |     39    |
 E1 |  329,63 |  2022 |    659   |    330   |    165   |    82    |     41    |
 F1 |  349,23 |  1909 |    698   |    349   |    175   |    87    |     44    |
Fis1|  369,99 |  1802 |    740   |    370   |    185   |    92    |     46    |
 G1 |  392,00 |  1701 |    784   |    392   |    196   |    98    |     49    |
Gis1|  415,30 |  1605 |    831   |    415   |    208   |   104    |     52    |
 A1 |  440,00 |  1515 |    880   |    440   |    220   |   110    |     55    |
Ais1|  466,16 |  1430 |    932   |    466   |    233   |   117    |     58    |
 B1 |  493,88 |  1350 |    988   |    494   |    247   |   124    |     62    |
===============================================================================
 C2 |  523,25 |  1274 |   1047   |    523   |    262   |   131    |     65    |
Cis2|  554,36 |  1203 |   1109   |    554   |    277   |   139    |     69    |
 D2 |  587,32 |  1135 |   1175   |    587   |    294   |   147    |     73    |
Dis2|  622,26 |  1071 |   1245   |    622   |    311   |   156    |     78    |
 E2 |  659,26 |  1011 |   1319   |    659   |    330   |   165    |     82    |
 F2 |  698,46 |   954 |   1397   |    698   |    349   |   175    |     87    |
Fis2|  739,98 |   901 |   1480   |    740   |    370   |   185    |     92    |
 G2 |  784,00 |   850 |   1568   |    784   |    392   |   196    |     98    |
Gis2|  830,60 |   803 |   1661   |    831   |    415   |   208    |    104    |
 A2 |  880,00 |   758 |   1720   |    880   |    440   |   220    |    110    |
Ais2|  932,32 |   715 |   1865   |    932   |    466   |   233    |    117    |
 B2 |  987,75 |   675 |   1976   |    988   |    494   |   247    |    124    |
===============================================================================
 C3 | 1046,50 |   637 |   2093   |   1047   |    523   |   262    |    131    |
Cis3| 1108,70 |   601 |   2218   |   1109   |    554   |   277    |    139    |
 D3 | 1174,60 |   566 |   2350   |   1175   |    587   |   294    |    147    |
Dis3| 1244,50 |   536 |   2490   |   1245   |    622   |   311    |    156    |
 E3 | 1318,50 |   483 |   2638   |   1319   |    659   |   330    |    165    |
 F3 | 1396,90 |   477 |   2794   |   1397   |    698   |   349    |    175    |
Fis3| 1480,00 |   450 |   2960   |   1480   |    740   |   370    |    185    |
 G3 | 1568,00 |   425 |   3136   |   1568   |    784   |   392    |    196    |
Gis3| 1661,20 |   401 |   3322   |   1661   |    831   |   415    |    208    |
 A3 | 1720,00 |   388 |   3440   |   1720   |    880   |   440    |    220    |
Ais3| 1864,60 |   358 |   3730   |   1865   |    932   |   466    |    233    |
 B3 | 1975,50 |   337 |   3952   |   1976   |    988   |   494    |    247    |
===============================================================================

Kód: Vybrat vše

=========================================================================
                *****      DURATION OF PAUSES      *****
=========================================================================
  P(1/1)  |  P(1/2)  |   P(1/4)   |   P(1/8)   |   P(1/16)  |  P(1/32)  |
=========================================================================
  Wait 2  |  Wait 1  | Waitms 500 | Waitms 250 | Waitms 125 | Waitms 63 |
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“