eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingGeneracja N-kanałowego dzwięku na 1-bicie.
Ilość wypowiedzi w tym wątku: 18

  • 11. Data: 2010-12-06 20:44:06
    Temat: Re: Generacja N-kana?owego dzwi?ku na 1-bicie.
    Od: Jacek Czerwinski <...@...z.pl>

    W dniu 2010-12-06 19:55, Sebastian Biały pisze:
    > On 2010-12-06 17:53, Jacek Czerwinski wrote:
    >> Jednobitowa była/jest modulacja delta, z tym ze trzeba "zapieprzac" N
    >> razy szybciej od gornej granicy pasma.
    >
    > Z zapieprzaniem z taką prędkością żeby N było >20 nie ma problemu.
    > Problem w tym, że dla takich prędkości blaszka zamiast uśredniać chyba
    > będzie dalej generować w zakresie ultradzwięków ;)
    >
    >> Mocne sa schody, potem obwod dolnoprzepustowy. BYC MOZE sam glosnik
    >> (srodkowoprzepustowy) jest wystarczajacym filtrem.
    >
    > To piezo nie głosnik. Jak bym miał głośnik to bym zrobil PWM powyżej
    > slyszalności ;)

    To RC. Przy tak dużym odstepie nie musi byc bardzo stromy.
    >


  • 12. Data: 2010-12-06 21:31:17
    Temat: Re: Generacja N-kana?owego dzwi?ku na 1-bicie.
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2010-12-06 21:44, Jacek Czerwinski wrote:
    > To RC. Przy tak dużym odstepie nie musi byc bardzo stromy.

    Nie rozumiemy się ;)

    Jak bym mógł zrobić RC to bym zrobił. Rzecz w tym, że *ktoś* to zrobił
    bez RC. Brzmi fatalnie, ale znacznie lepiej niż moje nieudolne próby na
    identycznym hardware. Zastanawiam się jak.


  • 13. Data: 2010-12-06 21:40:07
    Temat: Re: Generacja N-kana?owego dzwi?ku na 1-bicie.
    Od: Bronek Kozicki <b...@s...net>

    On 05/12/2010 22:12, Sebastian Biały wrote:
    > On 2010-12-05 21:49, A.L. wrote:
    >> Nie wiem co to jest "dzwiek dwukanalowy"
    >
    > Np. "niezależne" generowanie f1=500Hz i f2=650Hz w posób, który pozwala
    > je rozróżnić słuchem.

    W dzieciństwie bawiłem się w programowanie dzwięku w ZX Spectrum w
    asemblerze. To było jakieś 25 lat temu :)

    Teraz zacząłbym tak:
    1. przygotować tablicę częstotliwości (np stąd
    http://www.phy.mtu.edu/~suits/notefreqs.html, albo wyliczyć
    http://www.phy.mtu.edu/~suits/scales.html )
    2. przygotować pętle "nieskończoną" dla częstotliwości bazowej (w
    czasach Z80 robiłem to liczeniem cykli procesora), 100kHz albo więcej,
    obsługującą wiele liczników. Im pętla bazowa szybsza i więcej liczników,
    tym większe możliwości i dokładność dźwięku.
    3. wyliczyć stosunek pożądanych częstotliwości do bazowej i w pętli
    resetować jeden licznik dla tej częstotliwości, na każdy reset wysyłając
    sygnał.
    3. większa głośność - wysyłać sygnał wielokrotnie, ale bez zmiany
    częstości (czyli nie tylko na reset, ale również na 2, 4, itd.) - nie
    przesadzić bo powstanie brzęczenie.
    4. łączenie częstotliwości - wykorzystać więcej liczników. Każdy
    resetowany do wartości odpowiedniej do częstotliwości. Np jeżeli
    częstotliwość bazowa to 100kHz, to dla A4 resetujesz l1 co
    100000/440=227 , dla F4 grany w tym samym czasie resetuje licznik l2 co
    286 itd.
    5. spróbować dodać częstotliwości harmoniczne (overtones) dla
    poprawienia jakości.

    Czy to zadziała - nie wiem :)


    B.


  • 14. Data: 2010-12-07 00:36:26
    Temat: Re: Generacja N-kanałowego dzwięku na 1-bicie.
    Od: "Grzegorz Plywacz" <b...@o...pl>


    Użytkownik "Sebastian Biały" <h...@p...onet.pl> napisał w wiadomości
    news:idgrev$ce0$1@news.onet.pl...
    > Tak, to nie pomyłka, powrót do ZXSpectrum i PCSpeakera.
    >
    > Mam do dyzpozycji jeden bit którym mogę sterować blaszką piezo.
    >
    > Dzieki które dobywam mogą być raczej tylko jednobitowe - włącz/wyłącz.
    >
    > Czy ktoś może *pamięta* czy istniały jakieś algorytmy mieszania dwóch fali
    > prostokątnych o róznych częstotoliwościach aby uzyskac złudzenie dzwieku
    > dwukanałowego na tym jednym bicie? Wydaje mi się że produkcje na
    > ZXSpectrum potrafiły osiągać coś podobnego. Doskonale sobie zdaje sprawę z
    > nikłej jakości dzwieku, nie chodzi o jego podnoszenie (w szczególnosci nie
    > chodzi mi np. o filtr + pwm w celu osiągnięcia lepszych rozdzielczości).
    > Interesuje mnie jak na 1 bicie zmieszać dwie fale prostokątne w sposób
    > przyjemny dla ucha w stopniu w jakim przyjemne sa 2 fale prostokątne.
    > Zakładam ze 2 kanaly dadzą radę się przeskalowac na N.

    Zaciekawiło mnie ...

    To z czym masz do czynienia, to mniej więcej mieszanie dwóch (lub więcej
    sygnalow)
    na nieliniowym elemencie. W tym przypadku nieliniowośc polega na tym, że
    występuje
    obcięcie (0 albo 1). O ile generując jedną częstotliwość w wyniku dostaniemy
    mniej
    więcej to co nadalismy, to już w przypadku dwóch fal o częstotliwościach
    odpowiednio
    f1 i f2, dostaniemy f1 + f2, f1 - f2 plus cały szereg harmonicznych 2f1 +
    f2, etc...
    Harmonicznymi bym sie nie przejmowal :) Cała zabawa polega na tym, aby mając
    żadane dwie czestotliwości, które mają sie pojawić w widmie, dobrać te,
    który
    wygenerujemy. Np. chcąc zagrać 440 Hz i 1000 Hz nadamy np 720 i 280 Hz.
    Acha i jeszcze jedno, zrobiłem kilka eksperymentów i wychodzi mi, że
    najlepiej
    wygenerować poszczególne sygnały a potem przed wysłanie do piezo zrobić ich
    sumę modulo 2.
    Oczywiście w przypadku większej ilości fal sytuacja ma tendencje do
    komplikowania
    się w tempie geometrycznym :)

    A jakby kogoś interesowało, krótki kod w Matlabie dla zobrazowania:

    clear all;

    fs = 40000; % próbkowanie

    len = 5; % 5 sekund

    freqs = [720, 280];

    T = freqs .^ -1;

    s = zeros(len * fs, 1);


    for n = 1 : length(s)

    t = n/fs;

    s(n) = 0;

    for i = 1 : length(freqs)

    if mod(t, T(i)) < (T(i)/2)

    s(n) = not(s(n));

    end

    end

    end

    s = s - mean(s);

    plot(linspace(0, fs, length(s)), (abs(fft(s))));

    --

    G.Pływacz





  • 15. Data: 2010-12-08 08:43:39
    Temat: Re: Generacja N-kana?owego dzwi?ku na 1-bicie.
    Od: "slamazar" <p...@p...onet.pl>

    > W dniu 2010-12-06 01:57, Michoo pisze:
    > > NIE robi&sup3;em jeszcze nic takiego, wi&ecirc;c to tylko moje przemy&para;lenia.
    > >
    > >> W dniu 05.12.2010 23:12, Sebastian Bia&sup3;y pisze:
    >
    > > c) w teorii sygna&sup3;ów poszuka&aelig; co si&ecirc; dostaje z sumy
    sygna&sup3;ów w
    > > dziedzinie cz&ecirc;stotliwo&para;ci - powinna by&aelig; operacja, która przy
    za&sup3;o&iquest;eniu
    > > jednakowych warunków pocz&plusmn;tkowych da Ci chwilow&plusmn;
    cz&ecirc;stotliwo&para;&aelig; - potem
    > > t&plusmn; cz&ecirc;stotliwo&para;&aelig; ju&iquest; normalnie wygrywasz.
    >
    > Dzieki za odwolanie do teorii sygnalow. jednak nie wszyscy koduja
    > szybciej niz czytaja.

    na przyklad ja chyba raczej nie koduje szybko (trudno powiedziec)
    - potrafie przykodowac tydzien czy dwa (az dostaje takiej jakby lekkiej
    'goraczki' po czym przez kilka tygodni pozniej jestem zmeczony i nic
    nie robie (tj robie cos innego - glownie ucze sie francuskiego);

    przy tym ten okres przykodowania to tez nie jest duzo w sensie
    kodu (kilka tysiakow linijek), chodzi raczej ze potrafie przykodowac
    'cos nowego' dla siebie (np nigdy nie kodowalem raytracera zobacze
    czy uda mi sie przykodowac troche raytracera itp) - wtedy rozbabruję
    kod bo pilno mi zobaczyc jakies wynki i polega to wtedy nie tylko na
    pisaniu ale tez na eksperymentowaniu;

    z kolei gdy juz sobie dlugo wypocznę z miesiac i znowu nabieram checi by
    pokodowac to elegancko poprawiam kodzik (np ostatnio nim go rozbabralem
    udalo mi sie go tak wypucowac ze byl dosyc ladny jak odmalowane mieszkanie)
    i z wlna zbieram pomysly co by tu jeszcze dopisac, za co sie wziac

    (tak sprawy wygladaja teraz - gdy juz osiagnalem jakas wprawe w pisaniu,
    i stoje na 'wlasnych fundamentach', a stalo sie to wzglednie niedawno z rok
    temu (kluczowe poniekad bylo opracowanie mojej wlasnej koncepcji
    podzialu kodu na tzw 'przestrzenie' ktore super sie sprawdzaja i mam
    niezwykla jasnosc w kodzie) - kiedys bylo znacznie gorzej i kodowanie bylo
    znacznie bardziej trudne i mgliste)




    ŚLAMAZAR





    >
    > Jednobitowa by&sup3;a/jest modulacja delta, z tym ze trzeba "zapieprzac" N
    > razy szybciej od gornej granicy pasma.  Zerkam na wikipedia, akurat tam
    > to jest podane w wyzszej matematyce, a zasada jest prosta: jestesmy
    > ponizej zalozonego ksztaltu (np.sinusa), dajemy +1, jak powyzej to -1.
    > Mocne sa schody, potem obwod dolnoprzepustowy. BYC MOZE sam glosnik
    > (srodkowoprzepustowy) jest wystarczajacym filtrem.
    >
    > Nie wiem jakie masz uwarunkowania czasowe, moze byc ciezko czysto
    > softwarowo zachowac regularna podstawe czasu.  Jakis timer, przerwania
    > itd by sie przydalo.
    >
    >


    --
    Wysłano z serwisu OnetNiusy: http://niusy.onet.pl


  • 16. Data: 2010-12-08 15:18:14
    Temat: Re: Generacja N-kanałowego dzwięku na 1-bicie.
    Od: Kicer <...@...c>

    Sebastian Biały wrote:

    > Tak, to nie pomyłka, powrót do ZXSpectrum i PCSpeakera.
    >
    > Mam do dyzpozycji jeden bit którym mogę sterować blaszką piezo.
    >
    > Dzieki które dobywam mogą być raczej tylko jednobitowe - włącz/wyłącz.
    >
    > Czy ktoś może *pamięta* czy istniały jakieś algorytmy mieszania dwóch
    > fali prostokątnych o róznych częstotoliwościach aby uzyskac złudzenie
    > dzwieku dwukanałowego na tym jednym bicie? Wydaje mi się że produkcje na
    > ZXSpectrum potrafiły osiągać coś podobnego. Doskonale sobie zdaje sprawę
    > z nikłej jakości dzwieku, nie chodzi o jego podnoszenie (w szczególnosci
    > nie chodzi mi np. o filtr + pwm w celu osiągnięcia lepszych
    > rozdzielczości). Interesuje mnie jak na 1 bicie zmieszać dwie fale
    > prostokątne w sposób przyjemny dla ucha w stopniu w jakim przyjemne sa 2
    > fale prostokątne. Zakładam ze 2 kanaly dadzą radę się przeskalowac na N.

    a jakby zrobić po prostu sumę logiczną (albo ex-or) tych dwóch sygnałów ?
    Zaraz zobaczę co octave wyduma ;)

    --
    Michał Walenciak
    gmail.com kicer86
    http://kicer.sileman.net.pl
    gg: 3729519


  • 17. Data: 2010-12-08 15:26:29
    Temat: Re: Generacja N-kanałowego dzwięku na 1-bicie.
    Od: "Grzegorz Plywacz" <o...@u...o2.pl>


    Użytkownik "Kicer" <...@...c> napisał w wiadomości
    news:ido7jj$f0c$1@kushnir.sileman...
    > Sebastian Biały wrote:
    >
    >> Tak, to nie pomyłka, powrót do ZXSpectrum i PCSpeakera.
    >>
    >> Mam do dyzpozycji jeden bit którym mogę sterować blaszką piezo.
    >>
    >> Dzieki które dobywam mogą być raczej tylko jednobitowe - włącz/wyłącz.
    >>
    >> Czy ktoś może *pamięta* czy istniały jakieś algorytmy mieszania dwóch
    >> fali prostokątnych o róznych częstotoliwościach aby uzyskac złudzenie
    >> dzwieku dwukanałowego na tym jednym bicie? Wydaje mi się że produkcje na
    >> ZXSpectrum potrafiły osiągać coś podobnego. Doskonale sobie zdaje sprawę
    >> z nikłej jakości dzwieku, nie chodzi o jego podnoszenie (w szczególnosci
    >> nie chodzi mi np. o filtr + pwm w celu osiągnięcia lepszych
    >> rozdzielczości). Interesuje mnie jak na 1 bicie zmieszać dwie fale
    >> prostokątne w sposób przyjemny dla ucha w stopniu w jakim przyjemne sa 2
    >> fale prostokątne. Zakładam ze 2 kanaly dadzą radę się przeskalowac na N.
    >
    > a jakby zrobić po prostu sumę logiczną (albo ex-or) tych dwóch sygnałów ?
    > Zaraz zobaczę co octave wyduma ;)

    Nie wyjdzie. Jak pisałem w poprzednim poscie, dostaniesz w efekcie prazki
    o czestotliwosciach bedacych suma lub roznica czestotliwosci wejsciowych.

    --
    Grzegorz Pływacz


  • 18. Data: 2010-12-08 15:43:47
    Temat: Re: Generacja N-kanałowego dzwięku na 1-bicie.
    Od: "Grzegorz Plywacz" <o...@u...o2.pl>


    Użytkownik "Grzegorz Plywacz" <b...@o...pl> napisał w wiadomości
    news:4cfd8185$0$27035$65785112@news.neostrada.pl...
    >
    > Użytkownik "Sebastian Biały" <h...@p...onet.pl> napisał w wiadomości
    > news:idgrev$ce0$1@news.onet.pl...
    >> Tak, to nie pomyłka, powrót do ZXSpectrum i PCSpeakera.
    >>
    >> Mam do dyzpozycji jeden bit którym mogę sterować blaszką piezo.
    >>
    >> Dzieki które dobywam mogą być raczej tylko jednobitowe - włącz/wyłącz.
    >>
    >> Czy ktoś może *pamięta* czy istniały jakieś algorytmy mieszania dwóch fali
    >> prostokątnych o róznych częstotoliwościach aby uzyskac złudzenie dzwieku
    >> dwukanałowego na tym jednym bicie? Wydaje mi się że produkcje na
    >> ZXSpectrum potrafiły osiągać coś podobnego. Doskonale sobie zdaje sprawę z
    >> nikłej jakości dzwieku, nie chodzi o jego podnoszenie (w szczególnosci nie
    >> chodzi mi np. o filtr + pwm w celu osiągnięcia lepszych rozdzielczości).
    >> Interesuje mnie jak na 1 bicie zmieszać dwie fale prostokątne w sposób
    >> przyjemny dla ucha w stopniu w jakim przyjemne sa 2 fale prostokątne.
    >> Zakładam ze 2 kanaly dadzą radę się przeskalowac na N.
    >
    > Zaciekawiło mnie ...
    >
    > To z czym masz do czynienia, to mniej więcej mieszanie dwóch (lub więcej
    > sygnalow)
    > na nieliniowym elemencie. W tym przypadku nieliniowośc polega na tym, że
    > występuje
    > obcięcie (0 albo 1). O ile generując jedną częstotliwość w wyniku dostaniemy
    > mniej
    > więcej to co nadalismy, to już w przypadku dwóch fal o częstotliwościach
    > odpowiednio
    > f1 i f2, dostaniemy f1 + f2, f1 - f2 plus cały szereg harmonicznych 2f1 +
    > f2, etc...
    > Harmonicznymi bym sie nie przejmowal :) Cała zabawa polega na tym, aby mając
    > żadane dwie czestotliwości, które mają sie pojawić w widmie, dobrać te,
    > który
    > wygenerujemy. Np. chcąc zagrać 440 Hz i 1000 Hz nadamy np 720 i 280 Hz.
    > Acha i jeszcze jedno, zrobiłem kilka eksperymentów i wychodzi mi, że
    > najlepiej
    > wygenerować poszczególne sygnały a potem przed wysłanie do piezo zrobić ich
    > sumę modulo 2.
    > Oczywiście w przypadku większej ilości fal sytuacja ma tendencje do
    > komplikowania
    > się w tempie geometrycznym :)
    >

    Przyszło mi do głowy inne rozwiązanie. Tak to jest jak się po północy coś
    rozwiązuje. Nie widzi się najprostszych rozwiązaniań ;)

    Otóż: generujesz fale sinusoidalne o zadanych częstotliwościach, dodajesz
    je do siebie, a na końcu obcinasz ('0' gdy suma < 0, a '1' w przeciwnym wypadku).
    Rozwiązanie skaluje się na dowolną ilość sygnałów i jest banalnie proste do
    implementacji, a co najważniejsze daje całkiem przyzwoite widmo ;)

    Pozdrawiam

    --
    Grzegorz Pływacz

strony : 1 . [ 2 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: