Open source DSP

Open source DSP

PostPostao/la Mate » 14 sij 2014, 14:51

Radeći novi par zvučnika (od restova) malo sam zapeo na skretnici. Napravio sam ja pasivnu skretnicu i to frcera ne loše, ali ja hoću to istjerati na proračunske vrijednosti.
Zapravo sam zastao shvativši da ne mogu kvalitetno izmjeriti zavojnice koje sam motam. Neka mjerenja koja sam svojevremeno bio napravio U-I metodom i True-RTA signalima te odgovarajućim izračunima pokazuje se da taj postupak i nije bio baš točan.
Znači pametno bi bilo nabaviti LC instrumentarij.... ili......

naletim ja na ovo: http://rtaylor.sites.tru.ca/2013/06/25/digital-crossovereq-with-open-source-software-howto/

Što više i sam Linkwitz hvali taj projekt : http://www.linkwitzlab.com/LX521/DSP_challenge.htm (skrolati do ~sredine stranice)

Uglavno , proučio sam taj "How to" i već sam dobrim dijelom na pola puta do prototipa. Iako je autor radio DSP crossover najprije za Pluto, a sada i za Linkwitzo najnoviju evoluciju pod nazivom LX521 Monitor http://www.linkwitzlab.com/LX521/Description.htm , ako se slijede upute kasnije se može prilagođavati svojim potrebama praktično beskrajno. DSP je mnogo više od skretnice, ekvalizacije amplitude i faza. Međutim to je ono što nas najviše zanima pa je stoga i jednostavnije.
Nevjerojatno je kako se pod Linuxom može manipulirati zvukom i zvučnim karticama. Kada se sistem postavi to je moguće relativno lako i brzo.

Od strojne opreme, potreban je nekakav PC i višekanalna zvučna kartica. Za probnu ali i trajnu implentaciju može neki stariji PC. Za elegantnije rješenje tu su mnoge mini i mikro PC varijante sve do Raspberry-PI minijature, Zodac, Shuttle te Atom. Krajnji cilj je da na polici s opremom imaš malu kutijicu koja ne zauzima puno mjesta i koja se brzo pali.

Sve drugo je software i to open source. Latencija i nije neki problem. Ako se radi o posvećenoj instalaciji koja obavlja ograničeni broj procesa, real time RT kernel nije neophodan. Dapače RT kernel može ponekad izazvati više štete nego koristi. Latencija radi jačine procesora može doći u pitanje ako se forsira sa up/down resampliranjem te visokom frekvom uzorkovanja (192khz i više) gdje treba i ne treba.
Iako ovakva implementacija izgleda prilično nespretno sa stanovišta svakodnevnog korištenja, ima svojih prednosti. Prije svega može se koristiti u svrhe testiranja ali i u svakodnevnom slušanju. Druga prednost je svakako u cijeni. U principu ne košta ništa jer stari PC sa integriranom karticom već možda imamo. Najveći problem je zapravo znanje i vještina manipuliranja Linuxom. Uputa koja je na navedenom linku gore nije posve detaljna i treba pratiti i kopati po uputama drugih softwarea koji su sastavnica cijele priče.
Ja ću pokušati ovo istjerati do kraja, tj barem zadovoljiti vlastitu namjenu koja mi je posve jasna. Time ću do neke mjere moći pomoći još nekome ovdje. Iako ne mislim ulaziti i učiti preduboko u cijelu filozofiju digitalnog zvuka. U svakom slučaju je jako zanimljivo.
Avatar
Mate
 
Postovi: 1138
Pridružen/a: 12 svi 2011, 06:55
Lokacija: Prigradica

Re: Open source DSP

PostPostao/la Mate » 14 sij 2014, 14:51

Topologija ovog rješenja izgleda ovako.

MPD Client - MPD server - Ecasound - SOX - ALSA - Zvučna kartica

    -MPD server je Music Player Deamon. To je visoko konfigurabilan server koji može svirati mnoštvo glazbenih datoteka, sa diska, CD-a , mreže ili sa inputa same zvučne kartice. On je bitan za elegatni odabir izvora i slanje slijedećem članu u nizu. Međutim isti je nevidljiv za korisnika. Korisnik njime upravlja putem jednog od premnogo klijenata koji mogu biti lokalni ili remote na računalu, laptopu, telefonu..tabletu....
    -Ecasound je software sposoban za kojekve manipulacije višekalnim zvukom, efekte, filtere, snimanje ... U ovoj aplikaciji, preuzima stream iz MDP-a, filtrira zvuk po zadanim opsezima, vrši korekcije gaina i izlaze iz filtera šalje na definirane outpute zvučne kartice. Filteri su razvijeni kao Plug-inovi, pa postoji sve što nam treba za ekvalizaciju zvuka. Dakle LW-R, Buth, ... različitig redova. Postoje Lowpass, bandpass, highpass, notch itd... Ecasound može regulirati i delay svakog od kanala, jačinu, kompresiju...
    -SOX nije nužno obavezna komponenta. Osnovna mu je namjena da regulira dihtering te 32 bitni format konvertira u 16/44100 CD zvučni form koji ide prema kartici.
    -Cijela priča leži na ALSA skupu upravljačkih sučelja za direktnu komunikaciju sa sklopovljem zvučne kartice.

Autor navedenog članka je sam razvio pluginove za filtere za Ecasound jer očito nije našao zadovoljavajuća rješenja već gotova. Filteri su bazirani na IIR digitalnim filterima http://en.wikipedia.org/wiki/Digital_filter i biquad http://en.wikipedia.org/wiki/Digital_biquad_filter.
Avatar
Mate
 
Postovi: 1138
Pridružen/a: 12 svi 2011, 06:55
Lokacija: Prigradica

Re: Open source DSP

PostPostao/la Mate » 15 sij 2014, 10:58

Uspio sam do sada dobiti filtrirane kanale na izlazima zvučne kartice. Tj testirao sam dvostaznu skretnicu. Sve je još radim preko console odnosno daljinski preko ssh dakle u command mode. Testirao sam play lokalne mp3 datoteke kao i izvor sa linijskog ulaza kartice. Tako sam sa svog radnog računala pokrenuo play neke PCM datoteke, u biti bilo koji zvuk na lokalnom računalu je žicom sa analognog audio izlaza mog računala proslijeđen na analogni ulaz kartice na testnom računalu koji predstavlja DSP skretnicu.
Ovaj pokus je dakako blesav, jer izvorni PCM je pretvoren u analogni pa na drugoj kartici u PCM da bi se ponovo pretvorio u analogni i poslao na izlaze druge kartice. dakle D/A pa A/D i ponovo D/A pretvorba. Rezultirajući zvuk je dakako prilično "ispran" .
No ovaj pokus zapravo ukazuje da je preko ovog sustava moguće spojiti još neki analogni izvor ako takav još postoji (gramofon npr.)
Na isti način se može spojiti vanjski izvor preko SPDIF ili TOS ulaza. Moja kartica nažalost nema SPDIF/TOS ulaze nego samo izlaze.
Na SPDIF ulaz se može dakle direktno spojiti npr CD player.

Zaključak je dakle slijedeći, rezultirajuća kvaliteta zvuka preko ovako procesiranog audio digitalnog signala najviše će ovisiti o kvaliteti korištene zvučne kartice a funkcionalnost o vrsti i broju priključaka koje kartica ima.
Treba spomenuti da ako postoji HDMI port da će Ecasound i ALSA jednako uspješno isporučiti signale i preko tog protokola, pa se skretnica može direktno spojiti na HDMI ulaz nekog surround receivera.

Poanta je da danas kad ionako imamo glazbene kolekcije mahom u PCM-u na raznim medijima za pohranu, DSP obrada u smislu skretnice i adjustiranja zvučnika, room correction i slično itekako ima smisla.
Avatar
Mate
 
Postovi: 1138
Pridružen/a: 12 svi 2011, 06:55
Lokacija: Prigradica

Re: Open source DSP

PostPostao/la Mate » 21 kol 2014, 13:46

Konačno mogu izvjestiti da imam prvu radnu verziju sustava u pogonu.
Tijekom dana i sutra ću napraviti par slika jer znam da je to puno zanimljivije od suhoparnog teksta.
Međutim srce cijele priče upravo jest u tekstu i to najviše računalnom kodu.

Pomoći će block shema.
MPD-DSP block-shema.png
MPD-DSP block-shema.png (50.21 KiB) Pogledano 12183 put/a.

Pri prvom paljenju MPD stvara vlastitu bazu podataka MPD-DB pretražujući mjesto gdje smo mu "rekli" da se nalazi naša glazbena kolekcija. Bazu možete osvježiti bilo kad.
Baza se stvori iznimno brzo, nakon čega je moguće pretraživanje baze po bilo čemu: po file sistemu, po izvođaču, albumu, vrsti glazbe, nazivu, autoru, godini itd....ili jednostano pojmu kojeg upišete.
Po želji možemo graditi playliste jedan po jedan, cijeli album, ili albume, itd. Moram reći da sam uvijek bio protiv svih viđenih playera koji barataju playlistama jer mi jednostavno nisu legle.
Ovdje sam bio oduševljen već prvim susretom. Jednostavnost i lakoća kao i brzina. Nevažno s kojeg uređaja pristupate PC, telefon ili tablet. Ovo može biti i subjektivno pa se ograđujem. Meni je leglo skroz.

Pritiskom na Play oznaku MPD započinje svoj glavni posao. Naravno imate punu kontrolu, doslovno u ruci. Start stop, pauza, volumen, preskok, i druge komande.

MPD sam već dijelom dekodira file koji izvodi. Meni do sada svira sve formate koje imam bez greške. Ovdje inače ima još dosta mogućnosti glede ispravnog i željenog samlinga, resamplinga ali o tome ću kad sam bolje upoznam mehanizme. To je za sada za napredne korisnike. :lol: Za sada je postavljeno da se sve svodi na 16/44.

Ecasound je komad softwera koji može manipulirati digitalnim zvukom. Ecasound procedure se izvode iz samog MPD-a i srce su cijele DSP priče. Ecasound koristi definirane filtere i parametre te izvrši potrebne funkcije na zvuku, te tako obrađeni zvuk pošalje ALSA-i ali i sa adresom na koji analogni izlazni port zvučne kartice. Na taj način zvuk koji smo filtrirali za baseve ćemo poslati na npr. "center ili sub output", srednje ćemo poslati na "front", a visoke na "rear", sve zavisi kakvu zvučnu karticu imamo i koliko portova ima. Može se slati i na SPDI ili hdmi.

Ono što meni trenutno svira je dvostazni sistem. Dakle filter 24db/okt s rezom na 180Hz i imam tek ateunaciju na visok spektru radi usklađenja nivoa basa i mid/high sekcije.
Tek slijede mjerenja i fina podešavanja ali i to opet radi vježbe, jer me čeka i rekonstrukcija zvučnika a i "macola" pojačala su još u djelovima.

MPD na svoj ulaz može primiti zvuk iz drugih izvora, ne samo sa play liste. To može iz drugog programa na računalu ili sa bilo kojeg inputa zvučne kartice, line-in, mic, ili SPDIF . Sve se te konfiguracije mogu unaprijed definirati, a kroz klijenta odabrati koju konfiguraciju će MPD izvoditi. To znači da se i u ovako potpuno digitaliziranom sustavu mogu slušati CD-i radio ili ploče.
Avatar
Mate
 
Postovi: 1138
Pridružen/a: 12 svi 2011, 06:55
Lokacija: Prigradica

Re: Open source DSP

PostPostao/la Mate » 21 kol 2014, 14:31

O hardware-u
Cijelu instalaciju sam napravio na jednoj starijoj matičnoj ploči koja ima izvrsnu integriranu zvučnu karticu i ne stvara nikakve šumove. (Zato moja najnovija ploča na radnom desktopu, bruji ko blesava.)
Međutim iznenadio sam se saznanjem da ta stara ploča tj zvučna na njoj podržava DAC sampling rates sve do 192 i da su takve većina Realtek integriranig rješenja, uostalom pogledajte ovu usporednu tabelu:
http://www.realtek.com.tw/images/products/High_Definition_Audio_Codec_Selection_Guide_07182008.jpg

Dakle , općeniti zaključak je da se i među starijim pločama mogu pronaći one koje imaju izvrstan zvuk i ako je to još dobro konstruirano da ne bruji ne treba nam ništa više.

Kao što rekoh, instalaciju sam napravio na spomenutoj staroj ploči ali kako je ploča bez integrirane grafičke kartice, neće da starta bez iste. Umetanjem kartice u slot, povećava mi se profil po visini, a to sam htio ugraditi u neku kutiju da liči na HiFi audio komponentu ne na tower ili desktop PC, pa mi se to nikako nije dopalo. Uostalom morao bih još naručiti neku makar i polovnu low profil grafičku samo da mogu upaliti tu ploču. Inače nakon same instalacije linuxa, ništa od grafike mi više ne treba. Sve ide sa ssh daljinski.
U glavnom nakon uspješne instalacije, disk sam jednostavno priključio na stari laptop koji je već bio konfiguriran kao medija centar. Rashodovani laptop iz firme, nema svog diska, krepao mu zaslon.
Dakle, već instalirani 3,5" SATA disk sam preko adaptera spojio na USB laptopa i slijedi stvar koja mi je najdraža kod Linux sustava: Okreneš ključ a ono upali ka mina. :lol:
Samo sam trebao rekonfigurirati MPD za novu eksternu karticu i prekopirati ostatak glazbene kolekcije.
Više sam gnjavaže imao podesiti WiFi na laptopu da se automatski pali, i spoji s točno određenim AP-om nego štelati DSP jer je to već bilo podešeno. To sa prijenosnicima i Linuxom zna biti tricky. Ali rješeno je uspješno. Inače gnjavaža sa WiFijem je bila potrebna samo zato što nisam doveo ethernet kabel u kut di je audio skalamerija. Zato ethernet imam u dva suprotna kuta :x

Dakle, sada imam strašni HP Compaq serije 9xxxx nešto, dual core duo CPU, sa nekad 17" ekranom, i sada sa vanjskim diskom od 3,5" i vanjskom zvučnom SounBlaster karticom. Nakon testiranja, vidjeti ću da li da mu nabavim interni 2,5 disk kojih 500Gb. SSD bi ovdje fino sjeo ali ko će dati te pare. :evil:
Cijeli laptop s poklopcem (samo plastični cover, LCD sam ionako digaoo i bacio.) lijepo se uklopio na policu, ne strši.

Staru ploču ću također iskoristiti u istu svrhu. Bit će DSP za testove, mjerenja i za radionicu. Šteta bi bilo predobre zvučne, a ima i SPIF TOS i ulaze i izlaze + 8 analognih izlaznih kanala.
Avatar
Mate
 
Postovi: 1138
Pridružen/a: 12 svi 2011, 06:55
Lokacija: Prigradica

Re: Open source DSP

PostPostao/la beboni » 07 ruj 2014, 20:26

evo i ja nešto slično planiram......audigy 2 zs kartica koja ima EMU10K2 dsp chip koji daje 3 neovisna spdif coax izlaza i za koji je pisan kx project softwer(teški multipraktik od softwera) koji neki koriste kao amatersku glazbenu konzolu.

http://upload.wikimedia.org/wikipedia/c ... SB0090.jpg

http://webpages.charter.net/drw46/kx2sc/d-kx2sc.jpg

http://my.kxproject.com/presets/130.jpg

zanimljivo je da taj dsp emu10k2 čip radi sve sam,znači,uopće ne upliće procesorske resurse,pa s tim ovu zvučnu možemo instalirati i na nekakv thin client sa pci slotom i koji može povući win xp

http://www.njuskalo.hr/pc-racunala/neow ... as-8872308

investicija 300-injak kuna ,mogućnosti neograničene. :D

3 spdifa daju 3 stereo kanala koji se šalje na ulaze tri dac-a poput ak4396 koji se na ebayu može nabaviti za 180 kuna,znači full triamping .

još jedino da skužim da li će mi ulaz daca prepoznati signale spdifa sa zvučne jer taj chip radi na16/48 khz sample rate-u dok ulazi daca na 16/44.1 i 24/96 :chin:
Avatar
beboni
 
Postovi: 157
Pridružen/a: 21 lip 2011, 20:23
Lokacija: slavonski brod

Re: Open source DSP

PostPostao/la Mate » 29 pro 2014, 14:19

Zikin odgovor prenesen iz teme o Hi Rez formatima
zika je napisao/la:
Mate je napisao/la:Meni je ovo linux makina i vjerojatno je problem negdje u postavkama ALSA-e prema kartici.
Moram to istražiti. Vidiš da je na konzoli i poruka (tried to open with -f:s16_le,2,44100).
Znači to su neke default postavke. Moram iskopati di je to.
Inače na mojoj pravoj DSP konstrukciji makine, ecasound je iskompajliran sa svim potrebnim opcijama tako da tamo nemam taj problem.
U principu, mogu natjerati ecasound da bilo što resamplira na koji god format (uz određene ograde, poneki zapisi i ne bi dobro prošli resampling). To treba još sve provjeriti.
No moja namjera je da se ne resamplira ništa nego da sve prođe kako je originalni zapis.
Za početak...
Zatim:
-f:sample_format,channel,sample-rate,interleaving
Sets the audio stream parameters for subsequent audio objects. To set different parameters for different audio objects, multiple '-f' options have to be specified (note the ordering, the '-f' options should precede the audio objects for them to have any effect). See documentation for '-i' and '-o' options.
When an audio object is opened (e.g. a file or sound device is opened, or connection is made to a sound server), the audio stream parameters are passed to the object. It should be noted that not all audio objects allow to set any or all of the parameters. For instance when opening existing audio files, many file formats have a header describing the file audio parameters. In these cases the audio file header overrides the parameters passed with '-f' option. Similarly when creating JACK inputs and outputs, the JACK server mandates the sampling rate and sample format.

If no '-f' option is specified, or some of the argument fields are left empty (e.g. '-f:,2,44100'), ecasound will use default values. These default values are defined in ecasoundrc configuration file. See ecasoundrc(5) manual page.

Note that ecasound opens out files by default in update mode. Unless option '-x' (overwrite outputs) option is given, audio parameters of an existing audio file take preference over the params set with '-f'.

Sample format is given as a formatted string. The first letter is either "u", "s" and "f" (unsigned, signed, floating point). The following number specifies sample size in bits. If sample is little endian, "_le" is added to the end. Similarly if big endian, "_be" is added. If endianness is not specified, host byte-order is used. Currently supported formats are "u8" (same as "8"), "s16_le" (same as "16"), "s16_be", "s24_le", "s24_be", "s32_le", "s32_be", "f32_le" and "f32_be". An empty string "" picks the system default sample format.

The 4th parameter defines the channel layout. The available options are 'i' (interleaved' and 'n' (noninterleaved). With the noninterleaved setting, ecasound will process samples one channel at a time, and the blocksize is set with '-b'. The default setting is 'i'.
Pokušajte sa
Kod: Označi sve
ecasound -i Mellow.wav -eadb:-10 -o -f:s24_le,2,192000 alsa
ovako „kroz ključaonicu“ jer ne poznajem šta je sve već podešeno i kakav je HW...
A zašto, jednostavno, ne upotrebite aplay, ALSA Vam je prisutna? Ako imate PulseAudio postavljen onda paplay, ali to je već drugi par opanaka. Kao i ESD.
Avatar
Mate
 
Postovi: 1138
Pridružen/a: 12 svi 2011, 06:55
Lokacija: Prigradica

Re: Open source DSP

PostPostao/la Mate » 29 pro 2014, 14:19

Bravo zika!
Pogodio u sridu.
izgleda aplay nema 24. Evo što dobijem.
aplay Mellow.wav
Playing WAVE 'Mellow.wav' : Signed 24 bit Little Endian in 3bytes, Rate 192000 Hz, Stereo
aplay: set_params:1233: Sample format non available
Available formats:
- U8
- S16_LE
- S16_BE
- S32_LE
- S32_BE
- FLOAT_LE
- FLOAT_BE
- MU_LAW
- A_LAW

ecasound je ovdje ključna stvar da bi se moglo koristiti LADSP filtere i routirati filtrirane signale na različite outpute kartice u cilju dobijanja DSP crossovera .

Pozadina priče je u ovoj mojoj temi zato sam i prebacio odgovor ovdje. Ovo što sad probam ovako ad-hoc je izvedba na mojem radnom računalu na kojem nije sve postavljeno kako treba jer me ova dva hirez ovisnika (Elvis i Zbotic) malo navlače na hirez.
Inače meni je već u funkciji drugo računalo koje radi priču iz ove teme i prema onoj blok shemi iznad.

Ali dobro si reagirao i hvala ti na sugestijama. Nisam se previše udubljivao nego prepisujem drugog autora i prilagođavam sebi. Ali eto ipak, trebat će se zadubiti i "knjigu".
Avatar
Mate
 
Postovi: 1138
Pridružen/a: 12 svi 2011, 06:55
Lokacija: Prigradica


Natrag na Digitalni izvori zvuka

Na mreži

Trenutno korisnika/ca: / i 5 gostiju.

cron