TROLLDIST nu ver. 7.6

Hemmapulare debatterar lämpligen i detta forum.

Moderator: Redaktörer

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

TROLLDIST nu ver. 7.6

Inläggav lilltroll » 2006-05-12 22:35

Det här är nu TROLLDIST helt egna tråd. Här pratas det enbart om Trolldist :!:

Trolldist är ett MATLAB baserat program som i nuläget mäter
Linjär Tonkurva, impulsvar, harmonisk dist, harmonisk dist vid konstant nivå samt exporterar digitala EQ's. Detta baserat på logaritmiskt svept sinus som faltas med en robust invers. Dessutom kan man provspela de digitala delningsfiltrena på det vanliga ljudkortet.

Du behöver MATLAB (minst ver 6.5) med signal toolboxen, gärna med DAQ toolboxen också. Ver 7.6 är körbar utan DAQ toolboxen, men inte realtids-delningsfilter. Trolldist använder JAVA i bakgrunden, vilket kommer med MATLAB.
För att köra koden under Linux så måste några mindre ändringar göras.
Det är oklart om det går att få igång ljudkortet i Linux baserat på DAQ toolboxen.

Här kommer ver. 7.6 BETA

Nu med realtids digitala delningsfilter
CDS prototyp
Kan mäta inuti lådan samt utanför i frifält.

http://user.faktiskt.io/lilltroll/DIY/Trolldist/Trolldistcrossover.m

http://user.faktiskt.io/lilltroll/DIY/Trolldist/qmoredataIIR.m

http://user.faktiskt.io/lilltroll/DIY/Trolldist/qmoredataFFT.m

Ladda ner filerna och lägg dem i samma katalog - kom ihåg det är bara en prototyp, handpåläggning kan behövas här och där.
Den vänstra line-in ska kopplas till någon av line-out kanalerna. Detta används för att synka fördröjning i ljudkortet.
Mikrofonsignalen bör komma in på den högra line-in. Använd en extern mikrofonförstärkare! Det kan dock fungera att bara köra mikrofon in. Då måste PREDELAY>0 i huvudprogrammet, tex 512.

Var försiktiga med era diskanter! Prova först med något tåligare att allt blev rätt. Jag tar inget som helst ansvar för uppeldade element!
Senast redigerad av lilltroll 2006-05-14 21:49, redigerad totalt 13 gånger.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

GUI

Inläggav lilltroll » 2006-05-12 22:36

Om någon vill hjälpa till att utveckla ett GUI så blir jag glad !
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
Rookie
 
Inlägg: 1062
Blev medlem: 2006-02-09
Ort: Umeå

Inläggav Rookie » 2006-05-13 00:03

Impinerande, om inte annat.....Det närmaste jag kommit är med Amigan:n....... 8O

Användarvisningsbild
Morgan
 
Inlägg: 2614
Blev medlem: 2004-11-17
Ort: Bollebygd

Inläggav Morgan » 2006-05-14 19:02

Faktiskt.se - nu med öppen källkod!

Användarvisningsbild
bchi
 
Inlägg: 124
Blev medlem: 2003-10-06

Inläggav bchi » 2006-05-14 21:19

Det här verkar helt galet coolt!
Kommer att kolla på det direkt efter att tentaperioden är över :D

/Martin

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-14 21:38

Jag måste ju se till att de som gör dyra program för sånt här inte somnar till på soffan i lugn och ro. :lol: 8)
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-15 02:42

Jag lovar - snart ska jag städa Trolldist så det blir användarvänligt istället för att lägga på ännu fler häftiga funktioner!



:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

Den dagen den sorgen 8O :roll: :oops:
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Kaffekoppen
Inaktiverad
 
Inlägg: 20003
Blev medlem: 2006-01-19

Inläggav Kaffekoppen » 2006-05-15 08:06

:-)

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-15 18:51

Det ser lovande ut att kunna komma åt alla kanaler på ljudkortet från MATLAB. Man behöver dock ASIO drivrutiner till kortet. DAQ toolboxen kommer att ersättas av en mycket potentare paket med kompilerad dll.

Har man inte ASIO drivare med från tillverkaren så kan man i vissa fall hitta något fulfack på nätet, eller så kan man pröva (om man gillar att pula):

http://www.asio4all.com/

Jag själv kommer nog att prova på ett firewire proffskort med ASIO drivare från fabrik istället för att bråka med något SoundBlaster kort.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
JohanS
 
Inlägg: 810
Blev medlem: 2003-10-03
Ort: Uppsala

Inläggav JohanS » 2006-05-16 14:36

Matlab och Linux var inte på humör för att samarbeta på min dator, så jag flyttade ljudkortet till windowsdatorn och lödde ihop en loopback-kabel. Men något verkar inte stämma, kan det vara nivån som är fel? När jag kör trolldist ser impulssvaret ut såhär innan fönstring:

Bild

Såhär ser en PSD på inspelningen ut (loopback respektive från mikrofon) om det kan ge några ledtrådar:

Bild

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-16 15:14

Om man kopplar kanalerna fel kan det se ut så där. Du ser impulsvaret för ett högpassfilter med låg gränsfrekvens dvs AC kopplingen !?
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
JohanS
 
Inlägg: 810
Blev medlem: 2003-10-03
Ort: Uppsala

Inläggav JohanS » 2006-05-16 15:41

Så var det! Orkar inte löda om kablarna, så fick byta plats på kanalerna i mjukvaran. Nu ska det mätas så länge grannarna orkar :wink:

Användarvisningsbild
JohanS
 
Inlägg: 810
Blev medlem: 2003-10-03
Ort: Uppsala

Inläggav JohanS » 2006-05-16 17:11

En första mätning:

Bild

Distmätningen känns som man att man borde ta med ett lastbilsflak salt med tanke på brusande mikförstärkare med mera, men samtidigt verkar det ju rimligt med toppen som sammanfaller med elementets uppbrytning. Det kanske kan ge en fingervisning iallafall?

Delar man brant känns det som att elementet kan vara användbart, och det kan man ju faktiskt kosta på sig när det är digitalt.

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-17 02:46

JohanS skrev:Så var det! Orkar inte löda om kablarna, så fick byta plats på kanalerna i mjukvaran. Nu ska det mätas så länge grannarna orkar :wink:


Jag har hemmalödda kablar, som kan vara fel. Har jag skrivit fel i instruktionen ovan ???
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-17 02:48

JohanS skrev:En första mätning:

Bild

Distmätningen känns som man att man borde ta med ett lastbilsflak salt med tanke på brusande mikförstärkare med mera, men samtidigt verkar det ju rimligt med toppen som sammanfaller med elementets uppbrytning. Det kanske kan ge en fingervisning iallafall?

Delar man brant känns det som att elementet kan vara användbart, och det kan man ju faktiskt kosta på sig när det är digitalt.


De trunkerade kurvorna undertrycket bruset mycket bra vanligtvis, beroende på sveptid/fönstring.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
phon
Mr. Magneto
 
Inlägg: 13030
Blev medlem: 2004-11-12
Ort: þiudangardi

Inläggav phon » 2006-05-17 09:02

Här är 7.6 CSD på ett 2" dome mellanregister, har inte hunnit spänna upp nån tältduk ännu. Skall försöka få ihop S/PDIF-anslutningen så jag kan leka lite filter.

Bild


Man ser att elementet ligger vid strandkanten och solar sig, vågorna från havet syns tydligt .... :wink: Fin inbyggd BBC-dip också ...
ⓘ De gustibus non est disputandum.

Användarvisningsbild
JohanS
 
Inlägg: 810
Blev medlem: 2003-10-03
Ort: Uppsala

Inläggav JohanS » 2006-05-17 13:22

Nu har jag fått leka av mig lite. Tangbandelementet fick ganska fint frekvenssvar redan med ett enkelt LP-filter. Men hur sparas koefficenterna för EQ:n?

LP-filtret skapar jag i SPTOOL i Matlab, exporterar som TF och plockar ut koefficenterna med [LPa,LPb]=tfdata(filter1,'v'). Sedan lägger jag bara på filtret på signalen, y=filter(LPa,LPb,y) innan jag sveper. Går det att göra på motsvarande sätt med EQ:n, eller ännu hellre automatiskt (har inte lyckats tyda allt i programmet än)?

Diskanten är för närvarande placerad på absolut sämst möjliga ställe på baffeln och behöver mycket EQ för att funka :wink:

Användarvisningsbild
phon
Mr. Magneto
 
Inlägg: 13030
Blev medlem: 2004-11-12
Ort: þiudangardi

Inläggav phon » 2006-05-17 15:30

JohanS, va bra med lite brux på digitala filter, matlab är inte min närmaste vän precis.
ⓘ De gustibus non est disputandum.

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-17 18:53

JohanS skrev:Nu har jag fått leka av mig lite. Tangbandelementet fick ganska fint frekvenssvar redan med ett enkelt LP-filter. Men hur sparas koefficenterna för EQ:n?

LP-filtret skapar jag i SPTOOL i Matlab, exporterar som TF och plockar ut koefficenterna med [LPa,LPb]=tfdata(filter1,'v'). Sedan lägger jag bara på filtret på signalen, y=filter(LPa,LPb,y) innan jag sveper. Går det att göra på motsvarande sätt med EQ:n, eller ännu hellre automatiskt (har inte lyckats tyda allt i programmet än)?

Diskanten är för närvarande placerad på absolut sämst möjliga ställe på baffeln och behöver mycket EQ för att funka :wink:


Det är redan klart.
Spana in:

USE_DQ=0; %Prova ditt digitala filter=1 / Mät som vanligt=0

Sökvägen till filtrena väljer man på rad ~187 för tillfället.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
JohanS
 
Inlägg: 810
Blev medlem: 2003-10-03
Ort: Uppsala

Inläggav JohanS » 2006-05-17 19:02

lilltroll skrev:Det är redan klart.
Spana in:

USE_DQ=0; %Prova ditt digitala filter=1 / Mät som vanligt=0

Sökvägen till filtrena väljer man på rad ~187 för tillfället.


Hittar ingen sån variabel, bara REALTIME_EQ=0. Är det senaste versionen som ligger ute här?

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-17 19:06

JohanS skrev:
lilltroll skrev:Det är redan klart.
Spana in:

USE_DQ=0; %Prova ditt digitala filter=1 / Mät som vanligt=0

Sökvägen till filtrena väljer man på rad ~187 för tillfället.


Hittar ingen sån variabel, bara REALTIME_EQ=0. Är det senaste versionen som ligger ute här?


Ahaa, nieeeee :oops: Den nya har massor med nytt godis. Realtids filtreraren fixar både IIR FFT-FIR samt IIR+FFT-FIR.

Kan prova att lägga ut en ny.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-17 19:23

Här kommer en BETA BETA ver. av Trolldist 7.62 för er som vill leka med digitala delningsfilter. Städningen har börjat. Varje ny ver ska innehålla mycket fler funktionsanrop än den gamla koden.

http://user.faktiskt.io/lilltroll/DIY/Trolldist/Trolldist7.62_BETA_BETA.zip

Packa upp filerna och placera dem i en egen tom katalog. Blanda aldrig gamla Trolldist.m filer med nya. Funktionsanropen är delvis omskrivna.

Den här är extremt BETig. Alla kombinationer av filteranropen fungerar inte smärtfritt än.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Glädje

Inläggav lilltroll » 2006-05-17 19:27

Vad jag har väntat på denna rutin till MATLAB

>> playrec('getDevices')

ans =

deviceID: 0
name: 'MOTU FireWire Audio'
inputChans: 22
outputChans: 22

Totalt 44 kanaler in/ut i realtid med bara 256 samples fördröjning i MATLAB. (Bestämms av ASIO buffern)

Koden ska fungera till alla typer av ljudkort och under multitrådning.

Vi tackar det unga geniet Robert Humphrey som har skrivit koden till det. Jag sitter på en för-release, så ni får hålla er till tåls tills den blir ofentlig. Kommer dock att skriva om trolldist under tiden.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

TOOLBOX

Inläggav lilltroll » 2006-05-18 18:56

Det går nog bli en TOOLBOX av det här istället - TROLLTOOL !

Trolldist
Digital EQ
Realtids filtrerare

som helt egna verktyg i samma TOOLBOX

Jag har en fungerande prototyp på realtidsfiltreraren för multikanal nu i MATLAB.
Någon som har ett ljudkort med ASIO drivare som vill prova om det fungerar på mer än min dator?
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
JohanS
 
Inlägg: 810
Blev medlem: 2003-10-03
Ort: Uppsala

Inläggav JohanS » 2006-05-19 12:21

Sådär, nu har jag ett någorlunda fungerande filter, tvåvägs FIR med EQ. Av någon anledning får jag en puckel vid 10 KHz, men det ser ändå ljusår bättre ut än tidigare...

Jag testar gärna realtidsfiltreraren, bara att skicka över filerna!

Bild

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-19 17:56

Mäter du i en annan punkt än du skapade filtrena ? Så länge du inte kompenserar för nollställen på enhetscirkeln så har kompensatorn kapacitet för att räta ut kurvan så att felet blir mindre än 0.1 dB. Men det är ju många andra saker som spelar in, t ex baffeldiffraktion.

Är det den som spökar för dig? I så fall måste du trunkera impulssvaret från diskanten innan kantreflerna kommer. På det sättet skapar du inte en kompensator som fungerar i en punkt men gör alla andra sämre. (Finns flera sätt)

Använder du Butterworth filter, eftersom de summerar till mer än 1?

Du ska få en förlaga av TOOLBOXEN. Där kan man lätt skapa Linkwitz-Riley filter för jämna ordningar. Där är också delningsfiltret separat från EQ, så att man kan ändra snabbt.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
JohanS
 
Inlägg: 810
Blev medlem: 2003-10-03
Ort: Uppsala

Inläggav JohanS » 2006-05-20 08:18

lilltroll skrev:Mäter du i en annan punkt än du skapade filtrena ? Så länge du inte kompenserar för nollställen på enhetscirkeln så har kompensatorn kapacitet för att räta ut kurvan så att felet blir mindre än 0.1 dB. Men det är ju många andra saker som spelar in, t ex baffeldiffraktion.

Är det den som spökar för dig? I så fall måste du trunkera impulssvaret från diskanten innan kantreflerna kommer. På det sättet skapar du inte en kompensator som fungerar i en punkt men gör alla andra sämre. (Finns flera sätt)


Jag mäter i samma punkt, men jag kan tänka mig att det är kantreflexer som stökar. Ska testa med lite olika längd på fönstret till impulssvaret och se vad som händer.

lilltroll skrev:Använder du Butterworth filter, eftersom de summerar till mer än 1?

Du ska få en förlaga av TOOLBOXEN. Där kan man lätt skapa Linkwitz-Riley filter för jämna ordningar. Där är också delningsfiltret separat från EQ, så att man kan ändra snabbt.


Jag gjorde FIR-filter som faller av med 48dB/oktav, men jag la -3dB vid delningen, och det är väl -6dB det ska vara för att summera ihop till 1.

Toolboxen låter spännande, det är ett imponerande program du har fått ihop redan nu!

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2006-05-20 15:08

Det beror på fasen hur många dB ner det ska vara. Ligger det i fas så blir det addition, dvs -6 dB som i Linkwitz-Riley. Udda Butterworth ger fi grader och då blir det annorlunda, nämligen vadå (fi samt Nivå):?:

Du vet väl att du kan använda
Kod: Markera allt
[Blow,Alow]=butter(n,wg);[Bhi,Ahi]=butter(n,wg,'high')


direkt i MATLAB!?

Vill du göra fir, kan du sedan använda
Kod: Markera allt
FIR=impz(Bx,Ax,n);


Inge fel med GUI, men om du snabbt vill ändra i realtid så är det enkelt.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
JohanS
 
Inlägg: 810
Blev medlem: 2003-10-03
Ort: Uppsala

Inläggav JohanS » 2006-05-20 23:13

Jag hade missat impz-funktionen helt, sökte förgäves efter något liknande häromdagen 8O

Tack för tipset, förhoppningsvis mäter jag inget imorgon då jag borde tentaplugga, men det är ju svårt att låta bli.

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Kärlek !

Inläggav lilltroll » 2006-05-22 19:34

Lilltroll hjärta MOTU

Äntligen, inga mer besvikelser på :evil: Soundblaster :evil:

Nu har jag +- 0.25 dB upp över 80 kHz i Trolldist tillsammans med ASIO Firewire kortet MOTU traveler.
Nu kan jag mäta höööööööööööööggggt upp i frekvens!
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Nästa

Återgå till DIY-forum


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 166 gäster