logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak stworzyć muzykę na procesor? Czy można ją łatwo zgrać?

bolek 09 Lip 2005 19:33 1791 11
REKLAMA
  • #1 1641646
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    czy ktoś sie tym zajmował?
    jak "napisać" muzeczke na procka, może da sie ją w jakiś prosty sposób zgrać...?
  • REKLAMA
  • Pomocny post
    #2 1641804
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Najprościej to byłoby rttl-e od Nokii odgrywać przez PWM-a, na którym byłby filtr RC ;)
  • Pomocny post
    #3 1642003
    Press
    Poziom 24  
    Posty: 566
    Pomógł: 69
    Ocena: 40
    W którymś EdW niedawno był projekcik o nazwie chyba Nokia Syntezer czy jakoś podobnie. Dzialal na takiej zasadzie jak Light'I
    napisał.
  • REKLAMA
  • Pomocny post
    #4 1642449
    Jacu$
    Poziom 27  
    Posty: 730
    Pomógł: 119
    Ocena: 26
    Jeśli wykluczymy polifonię i zgodzimy się na przebieg prostokątny to raczej żaden problem. Możemy zapisać poszczególne nutki za pomocą dwóch parametrów (częstotliwość i czas trwania) i wywoływać prosty podprogram z tymi dwoma parametrami. Wiele lat temu pisałem taki program w assemblerze na PC XT (sterowanie głośniczkiem) i pięknie odgrywał kolędy.
    Nie tak dawno pisałem program na AT90S2313 i tam do generowania dźwięków użyłem portu szeregowego. Też działał :-)
    Częstotliwości poszczególnych dźwięków skali muzycznej łatwo policzyć na kalkulatorze. Wzorcem jest ton a w oktawie małej, który ma dokładnie 440Hz. Następne częstotliwości obliczasz mnożąc częstotliwość danego tonu przez $$ \sqrt[12]{2}$$ czyli około 1.059463094. Przez następny ton rozumiemy dźwięk wyższy o półton lub (w nomenklaturze muzycznej) o sekundę małą. Niestety, do tego trzeba mieć przynajmniej pierwszy stopień wtajemniczenia muzycznego (czyli odróżniać kiedy grają, a kiedy nie) ;-)
  • Pomocny post
    #5 1642540
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    bolek napisał:
    czy ktoś się tym zajmował?
    jak "napisać" muzeczke na procka, może da się ją w jakiś prosty sposób zgrać...?

    Jakiś czas temu był opisany w EP projekt takiego generatora dźwięków.
    Wszystko opierało się na scalaku o jakiejś dziwnej nazwie ale był tonPIC12C50x. Z tego co pamiętam to generował on PWM na wyjściu, po przepuszczeniu tego sygnału przez prosty filtr dolnoprzepustowy na wyjściu była sinusoida.Całą melodię zapisywało się w zewnętrznym EEPROMie i był dostępny do tego program do komponowania melodii.
  • #6 1642651
    PIOTR111
    Poziom 16  
    Posty: 279
    Pomógł: 9
    Ocena: 47
    Witam
    W załączniku jest przykładowy program, sprawdzałem go i działa
    PIOTR
    Załączniki:
    • dzwiękia.txt (1.64 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #7 1642790
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 617
    A tutaj cos na AVR, znana melodia :)
    Załączniki:
    • Sound.zip (2.99 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 1643579
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    to ma być do maszyny "barowej" ma wytwarzać mniej więcej takie dzwięki. A może kostke ISD?. W tedy można by sobie nagrać dokładnie to co się chce (ja nawet dolemifasola nie umiem ;) i nie wiem jak by to wyszło na procku) warunek jest taki że trzeba by było tych melodi nagrać przynajmniej kilkanaście i w kazdej chwili odtważania jednej można by było puścić inny "kawałek"

    jeśli ktoś ma dostęp do tyh materiałów z dzwonkami nokii (to co wspominał Press) to prosił bym podrzucić
  • Pomocny post
    #9 1643974
    Marcin Sz.
    Poziom 25  
    Posty: 794
    Pomógł: 68
    Ocena: 66
    W załączniku są skany z EdW. Wsad do procka i program jest na www.edw.com.pl .

    Pozdrawiam Marcin
    Załączniki:
    • syntez.zip (1.1 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #10 1644372
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    OK, dzięki wielkie. Ale... PWM to zmiana wypełnienia przebiegu o stałej częstotliwosci- dobrze mówie?. Więc co to ma wspólnego ze zmianą częstotliwości dzwięku?.
    Ktos wie jaki jest czas "nuty podstawowej"?

    Pytanko od strony sprzętowej, co byście doradzili wstawić pomiedzy wyjście proca a wzmacniacz? (ja myśle o bramce i jakimś filtrze RC. Powinno to poskutkować bardziej symetryczną sinusoidą
  • #11 1644683
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    bolek napisał:
    Ale... PWM to zmiana wypełnienia przebiegu o stałej częstotliwosci- dobrze mówie?. Więc co to ma wspólnego ze zmianą częstotliwości dzwięku?.
    Ktos wie jaki jest czas "nuty podstawowej"?


    Przy stałej w czasie zmianie wypełnienia za filtrem bedziesz miał stałą cząstotliwość, ale jak odstępy między zmianami bedziesz też regulował to będziesz mógł zmieniać też częstotliwość. Np. masz tablicę z stałymi tworzącymi sinusoidę, gdy do generatora PWM podajesz w równych odstępach czasu stałe z tablicy, na wyjściu za filtrem masz stałą ustaloną częstotliwość, wystarczy że stałe te będziesz podawał trochę szybciej lub wolniej do generatora a wtedy będziesz miał już inną częstotliwość. Ważne jest aby generator PWM pracował z częstotliwością równą conajmiej częstotliwości dźwięku razy ilość stopni tworzących okres sinusoidy.

Podsumowanie tematu

✨ Dyskusja dotyczy tworzenia muzyki na mikrokontrolerze (procesorze) oraz sposobów jej odtwarzania i zapisu. Proponowane metody obejmują generowanie dźwięków za pomocą modulacji szerokości impulsu (PWM) z filtrem RC, co pozwala na uzyskanie przebiegu zbliżonego do sinusoidy. Można zapisywać nuty jako parametry częstotliwości i czasu trwania, a następnie odtwarzać je prostym programem sterującym. Wspomniano o projektach wykorzystujących scalaki tonPIC12C50x oraz o programach do komponowania melodii zapisywanych w zewnętrznym EEPROM. Dyskutowano również o wykorzystaniu dźwięków w formacie RTTL z telefonów Nokia oraz o możliwości nagrywania dźwięków na układach ISD. Poruszono kwestie techniczne dotyczące generowania częstotliwości dźwięku przez zmianę odstępów czasowych podawania wartości do generatora PWM oraz o konieczności stosowania filtrów dolnoprzepustowych i wzmacniaczy między wyjściem procesora a głośnikiem. Podano link do aplikacyjnej noty AVR131 na stronie Atmel, która może być pomocna w implementacji.
Wygenerowane przez model językowy.
REKLAMA