abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:00 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    dnes 00:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 10
    včera 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 2
    včera 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    4.6. 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:22 | Nová verze

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    4.6. 12:55 | Zajímavý software

    Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.

    Ladislav Hagara | Komentářů: 11
    Rozcestník

    Ladička

    3.5.2008 13:12 | Přečteno: 3923× | Linux | poslední úprava: 4.5.2008 20:44

    Ahojte. Zkusil jsem v Pythonu napsat jednoduchou kytarovou ladičku, která se pokouší dolní polovinu frekvenčního spektra přičíst k horní polovině tak, aby se všechny harmonické spojily do jedné frekvence (čert vem nelinearity). Možná by to mohlo lépe reagovat než „běžné“ ladičky, ale rád bych někoho poprosil o otestování:

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    from __future__ import division
    from scipy import *
    import alsaaudio
    
    def record_and_analyze(N, recfreq):
        inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE)
        inp.setchannels(1)
        inp.setrate(recfreq)
        inp.setformat(alsaaudio.PCM_FORMAT_S16_LE)
        pos = 0
        bytes = []
        while True:
            l, chunk = inp.read()
            pos += l
            if pos == N:
                bytes.append(chunk)
                break
            if pos > N:
                bytes.append(chunk[:(N - pos)*2])
                break
            bytes.append(chunk)
        data = fromstring(''.join(bytes), int16)
        spectrum = abs(fft(data)[:(N//2 + 1)])
        spectrum[0] = 0 #remove DC component
    
        for i in range(1, (len(spectrum)+1)//2): #join harmonics
            spectrum[i*2] += spectrum[i]
            spectrum[i] = 0
    
        return argmax(spectrum)*recfreq/N
    
    tones = ['A', 'B', 'H', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#']
    while True:
        f_fund = record_and_analyze(N = 2**16, recfreq = 48000)
        x_tone = 12*log(f_fund/440)/log(2)
        i_tone = int(x_tone + 0.5)
        print '%+.2f' %(x_tone - i_tone), tones[i_tone % 12]
    
    
    Zkuste podle toho někdo naladit kytaru nebo prostě jakýmkoli způsobem ověřit správnost. Mně to sice funguje líp než elektronická ladička (KORG), ale to nemusí nic znamenat. Nevím přesně, které balíčky jsou potřeba, ale rozhodně se nic nezkazí nainstalováním těchto:
    python-alsaaudio scipy python-matplotlib numpy
    

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    3.5.2008 14:55 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Samozřejmě, že do mikrofonu můžete třeba i zazpívat stupnici. Ukazuje to odchylku v centech (sto centů je jeden půltón). Zkusil jsem to a připomínalo to Hvězdnou pěchotu nebo meluzínu, snad mě nikdo neslyšel.
    -0.06 C
    +0.13 C
    +0.05 D
    -0.00 E
    -0.08 E
    -0.18 F
    +0.03 G
    -0.10 G
    -0.08 A
    -0.11 H
    -0.11 C
    
    Jsem opravdu silně rozladěn ;-)
    3.5.2008 15:13 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    No jestli to číslo x.yz jsou centy zobrazené s přesností na setiny, tak to není taková katastrofa ;-)

    Btw. nějak mi uniká, jak funguje ten algoritmus. Teda ne že bych si nedokázal vyvodit, co se tam děje, ale není mi tak úplně jasné, jaktože to dělá to, co tvrdíš, že to dělá.
    Quando omni flunkus moritati
    4.5.2008 01:45 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    No jestli to číslo x.yz jsou centy zobrazené s přesností na setiny, tak to není taková katastrofa ;-)
    Bohužel to tak není, deset centů skutečně pro mně není žádná míra ;-)
    Btw. nějak mi uniká, jak funguje ten algoritmus. Teda ne že bych si nedokázal vyvodit, co se tam děje, ale není mi tak úplně jasné, jaktože to dělá to, co tvrdíš, že to dělá.
    Vycházím z toho, že kteroukoli frekvenci ve spektru můžu vynásobit dvěma a pořád se jedná o stejný tón. Takže vezmu nějakou frekvenci (třeba číslo 1) a přičtu k frekvenci číslo 2. Pak frekvenci číslo 2 přičtu ke čtvrté. Pak třetí k šesté. Pak čtvrtou k osmé. A tak dále až přestěhuju celé spektrum pouze do jedné oktávy, do horní poloviny spektra. No a tam se ty tóny lépe hledají – aspoň mi to tak přijde.

    Původně jsem chtěl nějak vyhledávat všechny vyšší harmonické, ale je to zrádné, protože už trojnásobek dává úplně jiný tón (v temperovaném ladění trochu falešný).
    4.5.2008 20:06 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    Rozumím tomu kódu dobře, že se FFT počítá pokaždé jenom ze 34 vzorků? To mi na nějakou přesnou analýzu přijde docela málo...

    Navíc si nejsem jistý ani tím algoritmem (ale přiznávám, že jsem ho nijak podrobněji nerozebíral), teď jsem ho zkusil (snad správně) použít na 440Hz čistý tón vzorkovaný 8kHz, 200 vzorků - vyšlo 2, což je H, pokud se indexuje od nuly... S 34 vzorky vyšlo 8, což je asi F...
    Quando omni flunkus moritati
    4.5.2008 20:40 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Hehe, 2**17 není totéž co 2*17. Nahrává to 2**17 bajtů, tedy 2**16 vzorků, což 65536. Při vzorkovací frekvenci 48 kHz to představuje dobu záznamu asi 1.37 sekund a z toho plyne i rozlišovací schopnost (převrácená hodnota) 0.73 Hz. Když pustím do repráků 440Hz.wav, tak dostanu
    -0.02 A
    +0.01 A
    +0.01 A
    
    což je doufám rozumné.

    Jenže, mám tam chybu! Bajty a vzorky nejsou totéž. Jak na potvoru se to ale nikde neprojevilo. Ale spravím to, i když to na funkci nebude mít vliv. Krát dva to mělo bejt!
    4.5.2008 21:49 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    Jo, to už je o něco lepší, když si za ** dosadím << (;-)), tak mi to vychází na A + 0.03

    Mám tady starší záznamy strun na kytaře, zkusil jsem to s G strunou a vyšlo G-0.2.

    Pro porovnání jsem zkusil ještě hledání prvního maxima autokorelace, to vyšlo G-0.31 (tomu bych moc nevěřil), a pak nějaký algoritmus detekce sinusovky, co jsem vyhrabal na disku, to vyšlo G-0.21...

    Takže se zdá, že ten algoritmus funguje (omlouvám se, že jsem pochyboval ;-)) a vzhledem k tomu, že to počítá počítač, tak ani moc nevadí to FFT na 65k vzorcích...

    (Btw. ty odchylky jsou tam proto, že ta kytara nebyla naladěná, když jsem to nahrával)
    Quando omni flunkus moritati
    Josef Kufner avatar 4.5.2008 22:57 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Ladička
    ** je mocnina ;-)
    Hello world ! Segmentation fault (core dumped)
    4.5.2008 23:55 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    Bude to u 2** fungovat, nebo ne? ;-)
    Quando omni flunkus moritati
    Josef Kufner avatar 5.5.2008 01:07 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Ladička
    Bude, ale bude se to počítat daleko a zbytežně složitěji.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 5.5.2008 01:10 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Ladička
    Hmm, měl bych jít spát. Nějak se mi motají písmenka a fungovat to bude jen pokud "2 ** n" nahradíš za "1 << n" nebo "2 << (n - 1)".
    Hello world ! Segmentation fault (core dumped)
    5.5.2008 03:50 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    Já to nechám bez dalšího komentáře...
    Quando omni flunkus moritati
    4.5.2008 20:46 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    2 ** 17 = 131 072
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    3.5.2008 16:56 Jirka P
    Rozbalit Rozbalit vše Re: Ladička
    Nahravka by nebyla?

    Jinak presnost tho programu je +- Hertzy, coz znamena (kolem C1) +- desitky centu.
    3.5.2008 20:04 muf
    Rozbalit Rozbalit vše Re: Ladička
    To bude tím, že centy jsou odvozeny od rovnoměrně temperovaného ladění, zatímco zpěváci inklinují k přirozenému ladění, pokud nemají k referenci doprovodný nástroj :-). Ale pro přirozené ladění by ty hodnoty byly podstatně větší ;-).
    Josef Kufner avatar 3.5.2008 21:08 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Ladička
    Když sestra přitáhla domu kytaru, nainstaloval jsem lingot, abych trpěl co nejméně. Je to grafické, plné chyb, ale ukazuje to ručičku a písmenko. Největší problém při ladění jsem měl se zjištěním, který tón vlastně má na které struně být :-D
    Hello world ! Segmentation fault (core dumped)
    4.5.2008 00:25 phr | skóre: 13 | blog: no_comment | Klatovy
    Rozbalit Rozbalit vše Re: Ladička
    Tohle jsem kdysi napsal v turbopascalu. Opravdu jsou nové programovací jazyky lepší ? A v čem ?
    program Ladicka;
    
    Uses Crt;
    
    var Ton : char;
    
    begin
      repeat
        Write('Zadej ton (E,H,G,D,A,6,K) : ');
        ReadLn(Ton);
        Ton := UpCase(Ton);
        Case Ton of
         'E' : Sound(330);
         'H' : Sound(247);
         'G' : Sound(196);
         'D' : Sound(147);
         'A' : Sound(110);
         '6' : Sound( 82);
        Else
             NoSound;
        End;    {of Case}
      until (Ton = 'K');
      NoSound;
    end.
    
    "Umělá inteligence se nemůže rovnat přirozený blbosti"
    4.5.2008 01:00 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    No pro začátek tenhle tvůj program závisí na hudebním sluchu uživatele. Ten v blogu ne.
    Quando omni flunkus moritati
    4.5.2008 21:40 phr | skóre: 13 | blog: no_comment | Klatovy
    Rozbalit Rozbalit vše Re: Ladička
    No, jenže pak na tu kytaru hrát aspoň trochu hudebního sluchu vyžaduje a to už se okecat nedá :-)
    "Umělá inteligence se nemůže rovnat přirozený blbosti"
    4.5.2008 21:42 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Ladička
    Jsem živým důkazem toho, že nevyžaduje :-) Ono to pak, pravda, podle toho vypadá, to nemůžu popřít :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    4.5.2008 21:52 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    To sice jo, ale hrát na kytaru vyžaduje míň hudebního sluchu, než naladit ji podle čistého tónu. Respektive ještě jinak - pokud ji někdo, kdo má špatný hudební sluch, zkusí naladit podle toho sluchu, tak to potom dopadne hůř, než když ji ten samý člověk naladí podle ladičky.
    Quando omni flunkus moritati
    xvasek avatar 5.5.2008 10:43 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Ladička
    Ne.

    "Hudební sluch" je schopnost sluchem identifikovat přehrávané noty, což se dokazuje tak, že osoba s hudebním sluchem je schopna noty buď zapsat, nebo zahrát, přičemž není nutně potřeba trefit správně první notu a výsledek je možné přehrát / zapsat transponovaně - tedy výš nebo níž, než je originál, ale se zachováním správných "vzdáleností" jednotlivých dalších not.

    Pak máme "absolutní sluch", který umožňuje přesně identifikovat notu, tzn. absolutní sluchaři umí například přehrát / zapsat poslouchanou skladbu bez transpozice (oproti hudebním sluchařům trefí i první notu) nebo umí naladit hudební nástroj bez potřeby referenčního zvuku nebo bez kontroly.

    K ladění je potřeba poznat, jestli zvuk laděného nástroje odpovídá referenčnímu zvuku, resp. jestli je dost referenční. K ladění první struny lze použít buď absolutní sluch, nebo ladičku, hudební sluch je možno využít pro ladění dalších strun - takoví lidi nepotřebují mačkat na jiné struně stejný tón aby věděli, jestli je dobře neladěná, ale jenom brnkají na struny a kroutí knoflíky. Lamky bez hudebního sluchu (jako třeba já :) dokážou poznat, jestli se tón jedné struny blíží stejnému tónu zahranému na jiné struně - což je dost úzká podmnožina "hudebního skuchu". :-)

    Každopádně pro hraní není potřeba ani hudební, ani absolutní sluch - stačí interpretovat noty nebo jiné značky, nebo opakovat jistý - předem daný - postup.
    frEon avatar 5.5.2008 12:28 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Ladička
    otazka je, jak moc s hudebnim sluchem souvisi schopnost udrzet rytmus. pokud clovek rytmus neudrzi, tak moc hudby nevyprodukuje.
    Talking about music is like dancing to architecture.
    5.5.2008 12:29 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Ladička
    I vyprodukuje. Ale lidi s rytmickým cítěním pak mají blbý kecy :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xvasek avatar 5.5.2008 13:34 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Ladička
    LOL, přesně tak. :-)
    5.5.2008 22:11 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    "Hudební sluch" je schopnost sluchem identifikovat přehrávané noty, což se dokazuje tak, že osoba s hudebním sluchem je schopna noty buď zapsat,...
    Řekl bych, že jsi opomněl rozpoznání toho, jestli něco ladí nebo ne v celé hudbě, například rozpoznat, že nějaký nástroj není správně naladěný (jsou lidi, kteří poznají, že basa v rockové muzice je o deset centů pod tónem, jsou lidi - např. já - kteří většinou nejsou schopni určit, co ta basa hraje ;-))
    Quando omni flunkus moritati
    xvasek avatar 9.5.2008 11:35 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Ladička
    Asi jo, přesnější by bylo napsat něco, jako že hudební sluch umožňuje "rozpoznat rozdíl (vzdálenost) mezi tóny", což pak obsahuje i rozpoznání rozladěnosti.
    4.5.2008 22:25 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Snad tenhle mírnej flame zarazím, hned v začátku tím, že se zeptám, co je to hudební sluch. Doufám, že ale neleju volej od ohně. Taková otázka je totiž taky zřejmě docela flambovací.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    4.5.2008 23:56 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    Podle mě (když to vezmu hodně jednoduše) schopnost rozlišit, že něco v té hudbě není v souladu se zbytkem.
    Quando omni flunkus moritati
    5.5.2008 00:27 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Což je ovšem značně vágní definice.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    5.5.2008 03:51 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    Zase jsem zapomněl, kam píšu komentář...
    Quando omni flunkus moritati
    4.5.2008 12:38 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Bha! Někde je chyba.
    gentlespring% python ladicka.py
    Traceback (most recent call last):
      File "ladicka.py", line 40, in ?
        i_tone = int(x_tone + 0.5)
    OverflowError: cannot convert float infinity to long
    
    record_and_analyze vrací 0. V chuncích jsou samé nuly. Capture mám zapnuté na všech zařízeních, kde to šlo.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    4.5.2008 12:45 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Hmhm, nulovou frekvenci jakožto maximum to může najít opravdu pouze tehdy, když je nahrané naprosté ticho. Ale dík za bugreport, může se to hodit jako diagnostická pomůcka.

    Mohl bys prosímtě zkusit tohle?
    arecord -c 1 -r 48000 -f S16_LE -t wav > nahravka.wav || aplay nahravka.wav 
    
    Spusť to, něco namluv a dej ctrl+c. Mělo to zopakovat, co jsi řekl.
    Josef Kufner avatar 4.5.2008 16:37 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Ladička
    Naprosté ticho se nahrává celkem lehce. Stačí nahrávat z neexistujícího/ztlumeného vstupu ;-)
    Hello world ! Segmentation fault (core dumped)
    4.5.2008 17:58 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Jéja. Buď můj komentář zmizel, nebo jsem ho neodeslal. Tak znova:

    To, proč to nejdřív dávalo samé nuly bylo myslím opravdu tím, že jsem měl ztlumen Capture, nebo Digital kanál. Mám notebook, ovladač hda_intel, čip bude asi nějakej Realtec. Co ty kanály znamenají nevim. Ani jeden z nich nesmí asi být moc zesílený, jinak se zřejmě něco přebudí a nahrávka hrozně prcká.

    Šoupátka jsem pošoupal tak, aby arecord nahrál co nejkvalitnější nahrávku. A zkusi to s naladěnou kytarou. Hrál jsem někde blízko otvoru. Možná bych ladičce usnadnil práci, kdybych hrál v půlce strun.

    "Ticho" - nahrává mi to větráček, takže moc ticho není.
    -0.12 B
    -0.12 B
    
    Nejtlustčí struna, E:
    -0.12 B
    +0.33 F
    +0.33 F
    +0.48 F
    +0.48 F
    +0.48 F
    +0.33 F
    +0.33 F
    +0.33 F
    
    Další, A
    +0.23 F#
    +0.09 A
    +0.21 A
    +0.09 A
    +0.09 A
    +0.09 A
    +0.09 A
    +0.23 F#
    +0.09 A
    
    Další, d
    +0.23 F#
    -0.31 A
    -0.31 A
    -0.31 A
    -0.31 A
    -0.25 A
    -0.31 A
    
    Dlaší, g
    -0.12 B
    +0.03 G
    +0.09 G
    +0.09 G
    +0.09 G
    +0.09 G
    +0.09 G
    +0.09 G
    
    Další, b
    -0.12 B
    +0.04 H
    +0.25 H
    +0.09 H
    +0.25 H
    +0.09 H
    +0.09 H
    
    Další, e
    +0.09 H
    -0.38 F#
    -0.45 F#
    -0.38 F#
    -0.45 F#
    -0.38 F#
    -0.45 F#
    -0.45 F#
    
    Znova, E
    -0.12 B
    +0.33 F
    +0.33 F
    +0.48 F
    -0.38 F#
    +0.30 H
    
    Takže test nedopadl moc dobře. Nemám teď moc čas se ladičkou zabývat, ale je to velmi zajímavé téma a někdy se na ni podívám a pohraju si s ní.

    Možná by jsi mohl ladičku testovat nahrávkama strun, kterých je an internetu habaděj. Já podle nich ladím kytaru.

    Hledej vp795 na http://freesound.iua.upf.edu/

    BTW, zohledňuješ tam nějak temperované ladění? Myslím, že ne, co?
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    5.5.2008 01:59 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Tisíceré díky za experimentální data! Takže se strunami A,G,B je to v pohodě. A teď ty další: nejtlustší struna E (poprvé) – z toho vůbec nejsem moudrý. Pak jsi ale brnkl znovu a tak to ukazuje blbosti až na tu docela poslední hodnotu (+0.30 H). To je evidentně třetí harmonická od E. Pak struna D – tam to zase chytá třetí harmonickou, což je to "A". A poslední, nejtenčí struna e měla jako první hodnotu zase třetí harmonickou (to je těch +0.09 H) a dál jsou nesmysly.

    Závěr: Chytá to třetí harmonickou, což je přesně to, čeho jsem si myslel, že se zbavím :-( Krom toho to ukazuje nějaké blbosti, které netuším co znamenají (přebuzení? šum?):-( Každopádně dík za test.

    Jasně, celé to pracuje s temperovaným laděním, kde se frekvence vypočítají takto:
    #!/usr/bin/python
    tones = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'B', 'H']
    for i in xrange(-20, 37):
        print '%2s %10.2f Hz' %(tones[i%12], 440*2**((i-9)/12.0))
    
    4.5.2008 20:53 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Proč na ty bytes používáš list? Není lepší požít array? Buďto přímo pythoní, ale koukám, že scipy/numpy má taky nějaké.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    5.5.2008 02:15 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Taky se mi to moc nelíbí. Ale u jiných polí jsem nenašel způsob, jak připojovat jedno pole za druhé. Anebo bych musel předem nějaké pole „naalokovat“ s požadovanou velikostí a pak tam nějak sypat data.

    Než jsem použil tento způsob, tak jsem chvilku zkoušel. Už jsem byl rozhodnutý to napsat v céčku a zavolat přes ctypes, ale nakonec to dopadlo takhle. Ač je to nic moc, je to překvapivě rychlé, takže na zátěži procesoru to ani nepoznám.

    Kdybys našel elegantnější cestu, sem s tím! :-)
    5.5.2008 06:50 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Trochu jsem si hrál s pythoním array.fromstring(), ale nedopadlo to zatím moc dobře.

    Namísto toho počítání s pos, bych do bytes dával vždycky celý chunk a pokud je dat moc, tak to uřízl. Asi nějak takhle:
        while len(bytes) < N:
            l, chunk = inp.read()
            bytes.append(chunk)
        bytes = bytes[:N]
        data = fromstring(''.join(bytes), int16)
    
    Je to víc strightforvard a o mnoho víc paměti si to neukousne. Jestli je to rychlejší samozřejmě nevim. Proč vůbec nepoužít všechny data, co jsme dostali a proč je ořezávat?
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    5.5.2008 10:03 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Jo, to je určitě daleko čitelnější a jak říkáš, paměti je dost. Svou verzi jsem psal s představou, že téměř nikdy nebude potřeba nic ořezávat, protože chunky přicházejí skoro vždycky v mocninách dvou a celková délka má být taky mocnina dvou.

    Je to především kvůli rychlosti FFT. Ta se sice vypočítá pro jakýkoli počet dat (N), ale je-li N složeno z mnoha malých prvočísel, výpočet je daleko rychlejší. Ideální je tedy mocnina dvou. Schválně, když vypočítám fft pro 2**17, je to zlomek sekundy. Ale hned o jedničku níž je prvočíslo (Mersennovo) a tam výpočet trvá přes minutu – ani jsem to neměřil.
    >>> from scipy import *
    >>> a = arange(2**17)
    >>> fft(a) # tohle je hned hotové
    array([  8.58986906e+09 +0.00000000e+00j,
            -6.55360000e+04 +2.73426110e+09j,
            -6.55360000e+04 +1.36713055e+09j, ...,
            -6.55360000e+04 -9.11420366e+08j,
            -6.55360000e+04 -1.36713055e+09j,  -6.55360000e+04 -2.73426110e+09j])
    >>> a = arange(2**17-1)
    >>> fft(a) # ... a tady výpočet trvá celou věčnost
    
    Odřezávání dat anebo naopak doplňování nulami je celkem běžný trik, pokud jde o rychlost fft.
    5.5.2008 11:03 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Zajímavé. Chytré.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    5.5.2008 10:11 Smazáno | skóre: 21 | blog: tezkorict
    Rozbalit Rozbalit vše Re: Ladička
    Zdarec.

    Já bych to docela rád otestoval, ale nemám jak... Nechceš mi spíchnout redukci tlustej_jack(female) -> tenkej_jack(male)?
    5.5.2008 11:01 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Obchod. Dej jim za to pár krejcarů, který po tobě budou chtět.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    5.5.2008 12:46 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Ladička
    stereo->stereo potom nie je uzemnene ;)
    5.5.2008 22:22 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    Cože?
    Quando omni flunkus moritati
    5.5.2008 23:45 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Ladička
    HOVORIM, ZE ZALEZI NA TOM AKO PREPAJAS MONO VYSTUP NA STEREO VYSTUP. POCUJES?

    + a napriklad moj sb pci128 ani nereaguje na mono vstup
    5.5.2008 23:46 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Ladička
    samozrejme na vstup
    7.5.2008 00:04 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    1) nemusíš hulákat

    2) nevidím souvislost mezi redukcí velký/malý jack a stereo a mono výstupem

    3) spojení mono výstupu (když už jsi to načal) a stereo vstupu je jednoduché. Prostě ten výstup přijíš na špičku i prstýnek. Země jsou samozřejmě spojené. Jak jednoduché, že?
    Quando omni flunkus moritati
    5.5.2008 14:10 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Jé, zdar, máš na mysli tohleto? http://gme.cz/cz/index.php?page=product&detail=070-969 Tož to nemám, mám všude jen tenké džeky :-( Ale třeba to půjde nějak bez drátů, milý Marconi ;-)
    5.5.2008 14:44 Smazáno | skóre: 21 | blog: tezkorict
    Rozbalit Rozbalit vše Re: Ladička
    Ty mi uděláš bezdrátovou kytaru? To by bylo super! :)

    Když už to stojí 50Kč, tak bych si to fakt mohl koupit. Jen mi ten tlustej kus příjde dost krátkej. Mrknu na to až půjdu kolem GM. No, tak to do Brna zase nepojedu ;)
    5.5.2008 16:17 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Ladička
    ved to je nejaka redkucia DIN -> hruby jack
    5.5.2008 22:25 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Ladička
    Ty mi uděláš bezdrátovou kytaru? To by bylo super! :)
    Vysílačky se taky nechají koupit... např.: http://www.muzikus.cz/pro-muzikanty-testy/Samson-Airline-aneb-volny-pohyb-zarucen~07~brezen~2003/
    Quando omni flunkus moritati
    14.5.2008 18:14 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Koukám se teď na tu ladičku. Konkrétně se koukám na spektrální analýzu, kterou dělá baudline (http://www.baudline.com/) a snažím se najít nějakej pšknej způsob, jak rozpoznat tón. BTW, baudline obsahuje také nějaký detektor tónu. Možná je i v těch veřejných zdrojácích. Nevim, používám uzavřenou verzi.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    14.5.2008 22:14 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Rozpoznat tón zase taková alchymie není, pokud se doslova neztrácí v šumu. Takřka úplně spolehlivé je najít pár maxim a zjistit, které z nich je základní mód (stačí najít celočíselné poměry). S vyhledáváním maxim je potřeba si trochu pohrát, protože křivka bývá „chlupatá“, takže se hodí ji předtím trochu vyhladit.

    No, zkrátka jde to, ale už to není prográmek na čtyřicet řádků. A když ani pak si počítač není jistý tónem, tak ani člověk.
    14.5.2008 21:20 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Máš konkrétní důvod to capturovat jako S16_LE? Dal bych tam U16_LE, nebo dokonce U24_LE v domění, že pak nebudu muset dělat abs(fft()) a také v domění, že to bude trocha přesnější, což nevím, jestli má význam.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    14.5.2008 21:59 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Ladička
    Ta absolutní hodnota se počítat musí. Nejde totiž o absolutní hodnotu ve smyslu vymazání znaménka, ale o absolutní hodnotu komplexních čísel, které vrací FFT. Je tam reálná a imaginární část, což souvisí s tím, jak šikovně se v tom signálu „schovává“ sinus a jak kosinus. Kdyby se posunula fáze signálu, změní se reálná i imaginární část FFT, ale absolutní hodnota zůstane. Je to na delší vyprávění, klidně mi napiš na jabber.

    Buď jak buď, samplovat 24 bity mě nenapadlo. Mám tam tolik šumu, že by to ani nemělo smysl, ale přesto – dík za nápad.
    15.5.2008 12:27 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Kdybych napsal na jabber, tak z toho budu mít zisk jenom já a možná i ty. Takhle se z naší plodné diskuze může poučit víc lidí a bude víc kvalitních ladiček a to znamená blaho pro všechny.

    FFT bych si měl asi nastudovat sám. Nějaké pěkné odkazy by byly? Na Wikipediu se podívám jako první.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    15.11.2008 18:21 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Ladička
    Podle toho, co jsem se zatím dozvěděl studiem Zpracování číslicových signálů na VŠB by měla proti šumu pomoct autokorelace. Zkusím se na to někdy podívat...
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.