Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 23 gru 2024, o 19:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 19 lis 2014, o 20:14 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 mar 2013
Posty: 15
Lokalizacja: warmińsko-mazurskie
Pomógł: 0

Witam.

Zaczynam bawić się w Arduino i chce sobie grać różne melodyjki na piezo. :)

Znalazłem taki przykładowy kod z melodią Mario ale chciałbym wgrywać własne melodyki.
I tu zaczyna się problem, bo nie bardzo rozumiem w jaki sposób to się odbywa.

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wiem, że odczytuje się to z nut... no właśnie a na muzyce kompletnie się nie znam. :?

Wybrałem sobie taką melodyjkę w formacie MIDI i wkleiłem do programu, który rozrysował mi z tego nuty. Pomożecie rozpisać to na te NOTE_, może załapie o co chodzi? :D
Poniżej początek utworu:

Obrazek

Czemu służą wpisane zera w int melody pomiędzy poszczególnymi dźwiękami. Skąd biorą się te wartości tempa?

Marzeniem byłby programik, który taki pliczek MIDI przerobi na postać gotową do wklejenia w kod. :)

Wrzucam jeszcze tą melodyjkę, da się to w ogóle zagrać na piezo?
Dzięki za pomoc. :)


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2014, o 21:11 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Ten programik odtwarza jednogłosowo (jedna nutka na raz) a pokazana melodyjka jest grana akordami więc nie bardzo...poczebujesz innych nutek ;-)

hunger napisał(a):
Czemu służą wpisane zera w int melody pomiędzy poszczególnymi dźwiękami.

To są pauzy...nuty których nie słychać ;-)

hunger napisał(a):
Skąd biorą się te wartości tempa?

Z wartości rytmicznej nut. Tu widzimy szesnastki i 32-ki. W komentarzu jest nasmarowane:
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
czyli wg tego pierwsza i druga nutka w tablicy by figurowały jako 16, trzecia i czwarta razem (są grane jako jedna) jako 1/16 + 1/32 = 3/32 czyli 11(a może 12 ? :-O), potem pauza o dlugości 32 itd.

hunger napisał(a):
Marzeniem byłby programik, który taki pliczek MIDI przerobi na postać gotową do wklejenia w kod. :)


Bez tego chyba raczej nie dasz sobie rady ;-)


Autor postu otrzymał pochwałę

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2014, o 21:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
hunger napisał(a):
Wybrałem sobie taką melodyjkę w formacie MIDI i wkleiłem do programu

Jeśli masz taki program, to klikając odpowiednią nutę w zapisie powinna Ci się wyświetlić nazwa tej nuty np.:A i jej odpowiednik "częstotliwościowy" 440hz. W programie masz zdefiniowane częstotliwość/dźwięk więc możesz sam do tego dojść. Ten Twój zapis nutowy jest dźwiękiem polifonicznym (kilka dźwięków w tym samym czasie ) a to nie jest takie proste. Program natomiast gra w systemie monofonicznym. Przerwy pomiędzy dźwiękami służą do wyraźniejszego zagrania następujących po sobie nutek. Wyobraź sobie kukułkę kukającą bez pauzy pomiędzy jednym KU a drugim :) .

Pozdr.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2014, o 20:51 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 mar 2013
Posty: 15
Lokalizacja: warmińsko-mazurskie
Pomógł: 0

Po zagłębieniu się w temat bardziej, trochę już załapałem o co chodzi z tymi nutkami.

W poszukiwaniach znalazłem poniższy filmik i zainteresował mnie.
Rozumiem, że odtwarza on dźwięk prosto z tego programu więc zapewne dało by się przechwycić te dane i dalej działać, bez konieczności używania komputera. Ale to już w przyszłości. :)
Jest ktoś w stanie przybliżyć jak działa komunikacja pomiędzy programem w filmie a arduino?
Nie znalazłem opisu tego projektu. :?

http://www.youtube.com/watch?v=uWL7rrJNuw4



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2014, o 23:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Jeśli ktoś napisał program, który z formatu *MIDI potrafi wyłuskać potrzebne informacje dla uC ( w najbardziej okrojonej formie to wysokość dźwięku i czas jego brzmienia ) to jest możliwe odtwarzanie ( cokolwiek to znaczy ze względu na jakość ) melodyjek podawanych z PC'ta. Nawiasem mówiąc są też same klawiatury - na "Twoim" filmie wirtualna - do wysyłania takich komend. Zarys wiedzy możesz znaleźć tu:

https://pl.wikipedia.org/wiki/Formaty_plik%C3%B3w_d%C5%BAwi%C4%99kowych

Pozdr.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO