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



Teraz jest 21 gru 2024, o 08:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 6 wrz 2015, o 11:09 
Offline
Użytkownik

Dołączył(a): 14 gru 2014
Posty: 30
Zbananowany użytkownik

Pomógł: 0

Może ktoś się ubawi pisząc swoje utworki na brzęczyk :)
Wpisujemy utworek w stringa, ewentualnie dodajemy nowe nuty i gra.

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

Częstotliwości nut * 10
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Utwór - wyszły w pole kurki trzy
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Powiązanie nut i częstotliwości
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ustawienia Timera - należy dobrać do kwarcu - ma być 10kHz. (może będzie ładniej grało przy wyższych częstotliwościach)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




Ostatnio edytowano 7 wrz 2015, o 21:22 przez Rzeczek, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 wrz 2015, o 12:13 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

A dlaczego taki fajny projekcik nie jest w dziale DIY ? ;) .... spokojnie zasługuje na to aby tam go umieścić ;)

Podpowiem ci tylko, że jak się tworzy C-String (tablicę) to nie trzeba umieszczać dodatkowo znaku zera na końcu ;)

Cytuj:
char tablica[] = "aaggccdd\0"; // - źle


to jest kompletnie niepotrzebne, poczytaj jak działa cudzysłów w tym wypadku i że kompilator sam uzupełnia taki string zerem na końcu czyli wystarczy tak:

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


i dzięki temu nie marnujesz jednego bajtu (bo w twoim przypadku wyżej na końcu stringa będziesz miał dwa zera tak naprawdę.

------------------------ [ Dodano po: kilkunastu sekundach ]

Przy okazji udało mi się przenieść wątek do działu DIY ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 wrz 2015, o 09:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Lubię grające projekty, robiłem kiedyś w bascomie na tiny13 grajek melodyjek tylko nie było takiego dekodera jak u Ciebie - za mało miejsca miałem :-) Przydała by się jeszcze tylko mała kalibracja tabeli częstotliwości, bo troszkę fałszuje :-)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 wrz 2015, o 09:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

SylwekK napisał(a):
Przydała by się jeszcze tylko mała kalibracja tabeli częstotliwości, bo troszkę fałszuje

eeeeh jak ja wam zazdroszczę, że macie słuch muzyczny .... bo mi to słoń na ucho nadepnął niestety. Inaczej też bym śmigał sobie takie różne muzyczne projekciki że tak powiem ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 wrz 2015, o 10:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Nie no, tu tragedii nie ma i układ daje radę tym bardziej, że gra na niskich częstotliwościach i stosunkowo lekko się odchyłki toleruje (gorzej by było z wysokimi częstotliwościami), ale. np. w nocniku mojej dzidzi z chińską pozytywką musiałem wyjąć baterię, bo to dopiero piszczadło rujnowało moją psychikę, a i dziecko niepotrzebnie złych nawyków by nabrało :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 wrz 2015, o 11:04 
Offline
Użytkownik

Dołączył(a): 01 sty 2014
Posty: 116
Pomógł: 14

Też kiedyś bawiłem się grając melodyjki:) Wstawiam filmik. Gdyby ktoś bardzo chciał kodu spróbuje poszukać, ale uprzedzam, że nie jest taki piękny i poukładany jak autora tematu;)




Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 wrz 2015, o 18:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 gru 2011
Posty: 204
Lokalizacja: Boguchwała
Pomógł: 3

Fajna zabawa, która uczy i wciąga. Próbowałem "Kurki trzy" na AT32 / 11059200 Hz. Bardziej mi to hrypi, niż u autora. Czy to przyczyna buzera, czy kwarcu (autor ma kwarc 16 MHz).
Mam pytanie, jak wydłużyć czas jednej nutki (w trakcie melodii). Sumowanie nutek np: cccaa, ma piknięcia pomiędzy każdą nutką ? Jak zrobić pauzę ? . Myślę, że dobrze by było ogarnąć każdą nutę (programowo w zadanym czasie). Nie jestem muzykiem, nut też nie kumam.
A przy okazji tematu spytam, jak używać komend głosowych za pomocą zewnętrznych układów (nagrywać i odczytywać komunikaty głosowe z pamięci). Ale to pewnie inny temat.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 wrz 2015, o 21:17 
Offline
Użytkownik

Dołączył(a): 14 gru 2014
Posty: 30
Zbananowany użytkownik

Pomógł: 0

By każda nuta trwała sekundę należy usunąć tą linijkę.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak ktoś ma ochotę może poszerzyć interpretację nut na dwa znaki np: 1c, 2c, 4c, 8c - tu cała nuta, półnuta, ćwierćnuta, ósemka.
Komuś może być mało częstotliwości i wtedy musiałby poszerzyć na trzy znaki np: 1c1.

W funkcji inicjalizacji timera należy dobrać odpowiedni preskaler i wpisać częstotliwość do zmiennej timer_hz, dodałem kod i informację w pierwszym poście.

Tabela częstotliwości zaczerpnięta jest z wikipedii. Ewentualne odchyłki wynikają z zaokrąglenia do liczby całkowitej przy przeliczeniu na licznik w funkcji
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Zaokrąglenie dla timera 10kHz.
Przed i po dodaniu 0,5
38,22629969 38,72629969
34,04834866 34,54834866
30,33980583 30,83980583
28,63688431 29,13688431
25,51671345 26,01671345
22,72727273 23,22727273
20,24701357 20,74701357
19,11314985 19,61314985
Wartość przycinana do liczby całkowitej

Zaokrąglenie dla timera 100kHz
382,2629969 382,7629969
340,4834866 340,9834866
303,3980583 303,8980583
286,3688431 286,8688431
255,1671345 255,6671345
227,2727273 227,7727273
202,4701357 202,9701357
191,1314985 191,6314985
Widać więc, że wyższa częstotliwość timera oddaje częstotliwość nuty o rząd wielkości lepiej.

Ograniczenie wpisanej wartości wynika tylko z typu uint16_t dla tablicy i rzutowania w funkcji zmieniającej Hz na licznik.

Dziękuje za słowa uznania od Mistrza i reszty :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 wrz 2015, o 22:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

A to pewnie przez to zaokrąglenie są te odchyłki. Nie zmienia to faktu, że i tak projekcik fajny :)
Tak między nami uwierzcie, słyszenie w melodii (wszystko jedno "co" lub "kto" odtwarza) każdej odchyłki czasami może doprowadzić do obłędu. Chciałbym czasem móc wyłączyć sobie tą tolerancję w dowolnym momencie, a tu nawet po kilku piwach nie jest to do końca możliwe :P
Wszystko przez to, że dawno, dawno temu podczas układania melodyjek jeszcze na Amidze trzeba było wykorzystać to co się ma czyli sample z innych modów gdzie każdy dźwięk praktycznie na innym stroju i musiałem wytężać słuch aby to jakoś później brzmiało w kupie :lol:
Poniżej przykład takiego tworu :P

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2015, o 18:14 
Offline
Użytkownik

Dołączył(a): 14 gru 2014
Posty: 30
Zbananowany użytkownik

Pomógł: 0

Dodałem półnuty, ćwierćnuty, ósemki, pauzy oraz kropki przedłużające czas trwania nut.
Brakuje znaku, który usuwałby akcent pomiędzy nutami (przydało by się na początku utworu po pauzach dla ósemek). Timer 100kHz.
Utwór Jingle Bells.

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

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

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

Dodanie nut do tablicy - zależnie od utworu, tutaj używamy obniżonego h1 w miejsce h1
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

Rozpoznawanie czasu trwania nut, nut oraz znaków specjalnych
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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




Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2015, o 18:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Nooo, jeszcze chwila, a wibrato dorobisz :-) Jest coraz lepiej.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2015, o 18:31 
Offline
Użytkownik

Dołączył(a): 14 gru 2014
Posty: 30
Zbananowany użytkownik

Pomógł: 0

Ale dźwięk mógłby być przyjemniejszy. Gdy podłączę słuchawki przez opornik dźwięk jest podobny. Daniel880 ma dużo ładniejsze brzmienie, nie wiem z czego to wynika.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2015, o 18:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

jak na buzzer jest ok

spróbuj może tak
topic2415.html
topic2415.html#p29010
topic1587.html#p15836

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



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: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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