Re: Re: Re: Coeff files
If i remeber correctly, i did look at alsaplayer a while ago when looking into my problem.
From memory i couldnt run it on the console (well, if i could have i would be using it now).
Ill try again... thanks.
dwk123 said:Alsaplayer apparently has a text-mode gui that avoids the need for X, and works well with Jack. I've verified that the text-mode gui works, but I've never tried to configure it to compile without X, although I suspect that it's a typical option to 'configure' if you build from source.
If i remeber correctly, i did look at alsaplayer a while ago when looking into my problem.
From memory i couldnt run it on the console (well, if i could have i would be using it now).
Ill try again... thanks.
Jack
Ok, yay!!! I've finally managed to build Jack correctly along with qjackctl and xmms-jack so now I'm playing successfully xmms to jack and out to alsa. I had some problems previously with incompatible versions and had to hack some environment variables point to QT and stuff like that.
Anyway, with my new-found confidence in Jack, I can't figure out how to play through brutefir. I see that bf has an IO module for jack and when I stick the line in the config file:
device: "jack" { ports: "alsa_pcm😛layback_1","alsa_pcm😛layback_2";};
and launch brutefir, it gives an error indicating it wants a shared object for jack that is much older than the rev I'm using now. jack release = 0.98.1
I'm using brutefir version 1.0 from latest release. I tried putting a link in the lib directory pointing to the new .so but no luck.
Does this bring back any fond memories from any of you pathfinders?
-Robert
ps - I've got my new microphone and am still waiting for the preamp. My speakers sound really good sitting up at ear height on stands placed either side of my desk. I still need to improve the brutefir filters somewhat.
Ok, yay!!! I've finally managed to build Jack correctly along with qjackctl and xmms-jack so now I'm playing successfully xmms to jack and out to alsa. I had some problems previously with incompatible versions and had to hack some environment variables point to QT and stuff like that.
Anyway, with my new-found confidence in Jack, I can't figure out how to play through brutefir. I see that bf has an IO module for jack and when I stick the line in the config file:
device: "jack" { ports: "alsa_pcm😛layback_1","alsa_pcm😛layback_2";};
and launch brutefir, it gives an error indicating it wants a shared object for jack that is much older than the rev I'm using now. jack release = 0.98.1
I'm using brutefir version 1.0 from latest release. I tried putting a link in the lib directory pointing to the new .so but no luck.
Does this bring back any fond memories from any of you pathfinders?
-Robert
ps - I've got my new microphone and am still waiting for the preamp. My speakers sound really good sitting up at ear height on stands placed either side of my desk. I still need to improve the brutefir filters somewhat.
Re: Jack
It doesnt...
Did you get JACK out of the CVS or did you just download it?
JACK releases do not happen very often, and 0.98.1 is already quite old.
RFScheer said:Does this bring back any fond memories from any of you pathfinders?
It doesnt...
Did you get JACK out of the CVS or did you just download it?
JACK releases do not happen very often, and 0.98.1 is already quite old.
Code:
compiling out of cvs
$ cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/jackit login
[Hit <enter> if it asks you for a password]
$ cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/jackit -z3 co jack
[copious output]
$ cd jack
$ ./autogen.sh
[copious output]
$ ./configure <your options>
[copious output]
$ make
[more output]
$ make install
[an install is necessary so that the driver can be found]
Learning lessons
Mark,
Linux newbie learns another lesson. CVS was something I didn't understand at all, obviously. But now I do.
Will report back when it's working.
THANKS!
-Robert
Mark,
Linux newbie learns another lesson. CVS was something I didn't understand at all, obviously. But now I do.
Will report back when it's working.
THANKS!
-Robert
Not working
Successfully built jack from cvs. Problem is still the same
.
When I launch brutefir, this is the error msg:
Failed to open module "jack" in "/home/rfs/brutefir-1.0/jack.bfio": libjack-0.50.0.so.0: cannot open shared object file: No such file or directory.
I've done a number of things but problem remains the same:
- made sure permissions, owners, etc are consistent
- copied libjack.so into working directory and even named a copy libjack-0.50.0.so.0.
Ideas?
-Robert
Successfully built jack from cvs. Problem is still the same

When I launch brutefir, this is the error msg:
Failed to open module "jack" in "/home/rfs/brutefir-1.0/jack.bfio": libjack-0.50.0.so.0: cannot open shared object file: No such file or directory.
I've done a number of things but problem remains the same:
- made sure permissions, owners, etc are consistent
- copied libjack.so into working directory and even named a copy libjack-0.50.0.so.0.
Ideas?
-Robert
Hmmm, ok.
I imagine JACK's default install dir is "/usr/local" so the libs are in "/usr/local/lib".
Edit "/etc/ld.so.conf", make sure "/usr/local/lib" is listed in that file, if not, add it.
Then run "ldconfig".
After that try BruteFIR again.
I imagine JACK's default install dir is "/usr/local" so the libs are in "/usr/local/lib".
Edit "/etc/ld.so.conf", make sure "/usr/local/lib" is listed in that file, if not, add it.
Then run "ldconfig".
After that try BruteFIR again.
Almost
I figured out what was wrong.
Didn't install brutefir correctly in the beginning. Rebuilt it and the error went away. I probably skipped make install the first time around, because this time there was an error in make install which was easy to fix by adding /lib directory to /usr/local directory.
Now the last remaining problem is figuring out how to patch xmms to jack to brutefir. At the moment, jack is taking control of the soundcard when I start it from qjackctl and brutefir fails to gain control of it.
-Robert
I figured out what was wrong.
Didn't install brutefir correctly in the beginning. Rebuilt it and the error went away. I probably skipped make install the first time around, because this time there was an error in make install which was easy to fix by adding /lib directory to /usr/local directory.
Now the last remaining problem is figuring out how to patch xmms to jack to brutefir. At the moment, jack is taking control of the soundcard when I start it from qjackctl and brutefir fails to gain control of it.
-Robert
Jack connections
Brutefir tries to make connections with jackd but is unsuccessful. I'm trying to connect brutefir's inputs to xmms output ports. I'm controlling jackd with qjackctl.
xmms connects to jackd and out to alsa to soundcard no problem.
It may as simple as using the wrong port names in the brutefir config file.
I've tried everything, including the names I see in the qjackctl connection monitor. For example, xmms connects in with ports called bio2jack_0_xxxxxx out_0 and out_1.
The patchbay doesn't seem of any use.
How did you guys figure all this out? There's NO guide anywhere.
-Robert
Brutefir tries to make connections with jackd but is unsuccessful. I'm trying to connect brutefir's inputs to xmms output ports. I'm controlling jackd with qjackctl.
xmms connects to jackd and out to alsa to soundcard no problem.
It may as simple as using the wrong port names in the brutefir config file.
I've tried everything, including the names I see in the qjackctl connection monitor. For example, xmms connects in with ports called bio2jack_0_xxxxxx out_0 and out_1.
The patchbay doesn't seem of any use.
How did you guys figure all this out? There's NO guide anywhere.
-Robert
Hurray!
Success. Now playing xmms - jack - brutefir - jack - alsa - soundcard on 2 channels!!!!
Will next attempt 4 channels.
Then maybe a vacation🙂
-Robert
Success. Now playing xmms - jack - brutefir - jack - alsa - soundcard on 2 channels!!!!
Will next attempt 4 channels.
Then maybe a vacation🙂
-Robert
Re: Hurray!
What did you do to fix the brutefir port connection problem?
I modifed the brutefir source code so it didnt connect any ports, then connected the ports manually using "jack_connect".
RFScheer said:Success. Now playing xmms - jack - brutefir - jack - alsa - soundcard on 2 channels!!!!
What did you do to fix the brutefir port connection problem?
I modifed the brutefir source code so it didnt connect any ports, then connected the ports manually using "jack_connect".
Arggg
Connection was a total kluge.
I launched qjackctl then xmms and played directly to alsa.
Observed the name of the ports in the connection window that xmms was opening in jack. Used those exact names in the brutefir config file. Disconnected the link between xmms-alsa. Launched brutefir. Bingo.
Of course each time xmms seg-faults and we start all over.
HOWEVER, it is of no consequence because there doesn't appear to be a way to connect to 4 playback ports this way. It's just not defined to take 4 as best I can tell.
I feel like mush. Do I have a prayer of modifying the source?
-Robert
Connection was a total kluge.
I launched qjackctl then xmms and played directly to alsa.
Observed the name of the ports in the connection window that xmms was opening in jack. Used those exact names in the brutefir config file. Disconnected the link between xmms-alsa. Launched brutefir. Bingo.
Of course each time xmms seg-faults and we start all over.
HOWEVER, it is of no consequence because there doesn't appear to be a way to connect to 4 playback ports this way. It's just not defined to take 4 as best I can tell.
I feel like mush. Do I have a prayer of modifying the source?
-Robert
Brutefir source
I have never written a line of c in my life.
Was just looking at the bfio_jack.c code however and it would be easy to make some simple changes and recompile.
Mark, when you mention jack_connect, I'm assuming I would rather use qjackctl patchbay and that would be equivalent right?
-Robert
I have never written a line of c in my life.
Was just looking at the bfio_jack.c code however and it would be easy to make some simple changes and recompile.
Mark, when you mention jack_connect, I'm assuming I would rather use qjackctl patchbay and that would be equivalent right?
-Robert
The code modification is quite simple, just a matter of commenting out a few line in one file.
From memory (i did this a while ago and dont have the actual file i changed), i did this:
edit "bfio_jack.c"
comment out lines between line #404 and #427.
to comment it out add a "/*" on line 404 and "*/" on 427.
itll look like this:
Obviously youll then need to remake and install brutefir.
Correct...
I used "jack_connect" as i could start brutefir and then connect the ports in a shell script.
From memory (i did this a while ago and dont have the actual file i changed), i did this:
edit "bfio_jack.c"
comment out lines between line #404 and #427.
to comment it out add a "/*" on line 404 and "*/" on 427.
itll look like this:
Code:
399 if (n != 0) {
400 fprintf(stderr, "JACK I/O: Could not activate local JACK client.\n");
401 has_started = false;
402 return -1;
403 }
404 /*
405 for (n = 0; n < n_handles[IN]; n++) {
406 js = handles[IN][n];
407 for (i = 0; i < js->n_channels; i++) {
408 if (jack_connect(client, js->dest_name[i], js->port_name[i]) != 0) {
409 fprintf(stderr, "JACK I/O: Could not connect local port \"%s\" "
410 "to \"%s\".\n", js->port_name[i], js->dest_name[i]);
411 has_started = false;
412 return -1;
413 }
414 }
415 }
416 for (n = 0; n < n_handles[OUT]; n++) {
417 js = handles[OUT][n];
418 for (i = 0; i < js->n_channels; i++) {
419 if (jack_connect(client, js->port_name[i], js->dest_name[i]) != 0) {
420 fprintf(stderr, "JACK I/O: Could not connect local port \"%s\" "
421 "to \"%s\".\n", js->port_name[i], js->dest_name[i]);
422 has_started = false;
423 return -1;
424 }
425 }
426 }
427 */
428
429 return 0;
430 }
Obviously youll then need to remake and install brutefir.
Mark, when you mention jack_connect, I'm assuming I would rather use qjackctl patchbay and that would be equivalent right?
Correct...
I used "jack_connect" as i could start brutefir and then connect the ports in a shell script.
More editing needed
Ok, that was easy, but brutefir still errors out with message:
JACK I/O: Failed to open JACK port "xmms😱ut_0".
This error msg can be found in the code snippet below, so obviously I need to do some more surgery. But I can't just comment all this out because variables are being set and the compile fails.
for (n = 0; n < used_channels; n++) {
if ((port = jack_port_by_name(client, js->dest_name[n])) == NULL) {
fprintf(stderr, "JACK I/O: Failed to open JACK port \"%s\".\n",
js->dest_name[n]);
return -1;
}
if ((io == IN && (jack_port_flags(port) & JackPortIsOutput) == 0) ||
(io == OUT && (jack_port_flags(port) & JackPortIsInput) == 0))
{
fprintf(stderr, "JACK I/O: JACK port \"%s\" is not an %s.\n",
js->dest_name[n], io == IN ? "Output" : "Input");
return -1;
}
sprintf(name, "%s-%d", io == IN ? "input" : "output", io_idx[io]++);
port = jack_port_register(client, name, JACK_DEFAULT_AUDIO_TYPE,
(io == IN ? JackPortIsInput :
JackPortIsOutput), 0);
if (port == NULL) {
fprintf(stderr, "JACK I/O: Failed to open new JACK port.\n");
return -1;
}
if (io == OUT) {
jack_port_set_latency(port, period_size);
}
js->ports[n] = port;
sprintf(longname, "%s:%s", CLIENTNAME, name);
js->port_name[n] = estrdup(longname);
}
_states[io][n_handles[io]] = callback_state;
handles[io][n_handles[io]++] = js;
states[IN] = n_handles[IN] > 0 ? _states[IN] : NULL;
states[OUT] = n_handles[OUT] > 0 ? _states[OUT] : NULL;
return 0;
}
Oh, one more thing, your original example showed inputs in the brutefir_config file as "", "". Names are irrelevant, right? You just use jack_connect to connect brutefir input-0 and input-1 in jack to the outputs of the source, right? Anyway, I can't figure out what the xmms outputs should be called in jack_connect (or in my case the patchbay).
Thanks for all the help.
-Robert
Ok, that was easy, but brutefir still errors out with message:
JACK I/O: Failed to open JACK port "xmms😱ut_0".
This error msg can be found in the code snippet below, so obviously I need to do some more surgery. But I can't just comment all this out because variables are being set and the compile fails.
for (n = 0; n < used_channels; n++) {
if ((port = jack_port_by_name(client, js->dest_name[n])) == NULL) {
fprintf(stderr, "JACK I/O: Failed to open JACK port \"%s\".\n",
js->dest_name[n]);
return -1;
}
if ((io == IN && (jack_port_flags(port) & JackPortIsOutput) == 0) ||
(io == OUT && (jack_port_flags(port) & JackPortIsInput) == 0))
{
fprintf(stderr, "JACK I/O: JACK port \"%s\" is not an %s.\n",
js->dest_name[n], io == IN ? "Output" : "Input");
return -1;
}
sprintf(name, "%s-%d", io == IN ? "input" : "output", io_idx[io]++);
port = jack_port_register(client, name, JACK_DEFAULT_AUDIO_TYPE,
(io == IN ? JackPortIsInput :
JackPortIsOutput), 0);
if (port == NULL) {
fprintf(stderr, "JACK I/O: Failed to open new JACK port.\n");
return -1;
}
if (io == OUT) {
jack_port_set_latency(port, period_size);
}
js->ports[n] = port;
sprintf(longname, "%s:%s", CLIENTNAME, name);
js->port_name[n] = estrdup(longname);
}
_states[io][n_handles[io]] = callback_state;
handles[io][n_handles[io]++] = js;
states[IN] = n_handles[IN] > 0 ? _states[IN] : NULL;
states[OUT] = n_handles[OUT] > 0 ? _states[OUT] : NULL;
return 0;
}
Oh, one more thing, your original example showed inputs in the brutefir_config file as "", "". Names are irrelevant, right? You just use jack_connect to connect brutefir input-0 and input-1 in jack to the outputs of the source, right? Anyway, I can't figure out what the xmms outputs should be called in jack_connect (or in my case the patchbay).
Thanks for all the help.
-Robert
Ok
I commented out the tests in the snippet from the last post and after make and make install, it's working! Brutefir shows up in the connection list of Jack and so I just connect whatever, whenever.
I'm getting 4 channels out of brutefir but can't see yet how to feed in 4 channels into alsa_pcm.
Very close now.
-Robert
I commented out the tests in the snippet from the last post and after make and make install, it's working! Brutefir shows up in the connection list of Jack and so I just connect whatever, whenever.
I'm getting 4 channels out of brutefir but can't see yet how to feed in 4 channels into alsa_pcm.
Very close now.
-Robert
A Player is Born
XMMS - Jackd - BruteFIR 4-ch crossovers - Jackd - ALSA - M-Audio 410 is up and running and I'm like'n what I'm hear'n!
Next - some listening.
Next after that - DRC.
Thanks Mark!
-Robert
XMMS - Jackd - BruteFIR 4-ch crossovers - Jackd - ALSA - M-Audio 410 is up and running and I'm like'n what I'm hear'n!
Next - some listening.
Next after that - DRC.
Thanks Mark!
-Robert
Re: A Player is Born
Nice work 🙂
Let us know what you think of the sound.
BTW... did you work out what to create the filters with?
Im far too busy working atm, i havnt had time to move my setup along in a while ;(
RFScheer said:XMMS - Jackd - BruteFIR 4-ch crossovers - Jackd - ALSA - M-Audio 410 is up and running and I'm like'n what I'm hear'n!
Next - some listening.
Next after that - DRC.
Nice work 🙂
Let us know what you think of the sound.
BTW... did you work out what to create the filters with?
Im far too busy working atm, i havnt had time to move my setup along in a while ;(
Just as an FYI for y'all, here's a link to a quiet PC using a 2 GB flash card instead of a hard drive.
http://linuxdevices.com/articles/AT8275095591.html
The VIA motherboards aren't as zippy as a fire-breathing Opteron or Pentium IV, but on the other hand you don't need a small hurricane to cool them off.
Cheers,
Francois.
http://linuxdevices.com/articles/AT8275095591.html
The VIA motherboards aren't as zippy as a fire-breathing Opteron or Pentium IV, but on the other hand you don't need a small hurricane to cool them off.
Cheers,
Francois.
Some notes
Ok a bit of fooling around with the new player. First tests used fxo ~ 400Hz and latest tests have moved up to 3900Hz. The higher is better. What I'm liking at the moment is a set of N=512 filters with fxo=3900Hz from gmeteor and they sound pdg!
Still no preamp for the microphone so haven't started into drc yet.
Sound quality is better than I ever had from foobar on windows xp without the digital crossovers. It's also better than my pioneer elite dvl-90 direct to amps. Haven't compared to anything better yet and probably won't since it's just my office system.
Very good detail. Lots of separation between instruments in orchestral selections. Reverb guitar selections like Satriani sounds totally "there", although sound stage can improve one more notch I think based on my memory of how it sounds on Bryston biamped Magnepan MG20's. Base is limited but better than I expected using Vifa PL14WJ09 5.8" mids w/o help. Tenor singing (such as Israel Kamakawiwoole) is very nice. Piano is very good in upper registers. Alto singing is very good.
I think there's some improvement that can be made in the soundcard, that will raise my rating from 8.0 to 8.5/10. Also, I believe drc will raise to 9.0. Doubt I can improve the gainclone amps since I went all out on them. Speakers are probably a full point deduction.
All in all, I'm very pleased with this stage,
EXCEPT for 2 things -
1. xmms gets killed too often (as mentioned by MWP)
2. pops and clicks due to realtime issues (lack of tuning of Linux latency and buffer sizes and so on ... am not worried about this).
Will continue working on filters for awhile.
After gmeteor, and after I finish reading some stuff I've piled up on dsp and filters, I'll move over and use the Octave approach.
- Robert
Ok a bit of fooling around with the new player. First tests used fxo ~ 400Hz and latest tests have moved up to 3900Hz. The higher is better. What I'm liking at the moment is a set of N=512 filters with fxo=3900Hz from gmeteor and they sound pdg!
Still no preamp for the microphone so haven't started into drc yet.
Sound quality is better than I ever had from foobar on windows xp without the digital crossovers. It's also better than my pioneer elite dvl-90 direct to amps. Haven't compared to anything better yet and probably won't since it's just my office system.
Very good detail. Lots of separation between instruments in orchestral selections. Reverb guitar selections like Satriani sounds totally "there", although sound stage can improve one more notch I think based on my memory of how it sounds on Bryston biamped Magnepan MG20's. Base is limited but better than I expected using Vifa PL14WJ09 5.8" mids w/o help. Tenor singing (such as Israel Kamakawiwoole) is very nice. Piano is very good in upper registers. Alto singing is very good.
I think there's some improvement that can be made in the soundcard, that will raise my rating from 8.0 to 8.5/10. Also, I believe drc will raise to 9.0. Doubt I can improve the gainclone amps since I went all out on them. Speakers are probably a full point deduction.
All in all, I'm very pleased with this stage,
EXCEPT for 2 things -
1. xmms gets killed too often (as mentioned by MWP)
2. pops and clicks due to realtime issues (lack of tuning of Linux latency and buffer sizes and so on ... am not worried about this).
Will continue working on filters for awhile.
After gmeteor, and after I finish reading some stuff I've piled up on dsp and filters, I'll move over and use the Octave approach.
- Robert
Re: Some notes
Get the 2.6.4 kernel.
Patch it with "patch-2.6.4-staircase5.2" that you can find here:
http://ck.kolivas.org/patches/2.6/2.6.4/experimental/staircase/
Compile, Install & Run.
Download, complie and install this:
http://freequaos.host.sk/schedtool/schedtool-0.9.tar.bz2
Run all Audio apps (jack, brutefir, xmms, etc) using this:
schedtool -R -p 75 -n -20 -e <the command line>
for example:
schedtool -R -p 75 -n -20 -e brutefir alsa-alsa.brutefir &> brutefir.log
See if that makes a difference 😉
[edit]
Oh, also run JACK with the command line option "-t 5000".
So youll end up running somthing like:
schedtool -R -p 75 -n -20 -e jackd -v -t 5000 -R -d alsa -d "hw:1" -r 48000 -p 512 &> /var/log/jackd.log &
RFScheer said:
1. xmms gets killed too often (as mentioned by MWP)
2. pops and clicks due to realtime issues (lack of tuning of Linux latency and buffer sizes and so on ... am not worried about this).
Get the 2.6.4 kernel.
Patch it with "patch-2.6.4-staircase5.2" that you can find here:
http://ck.kolivas.org/patches/2.6/2.6.4/experimental/staircase/
Compile, Install & Run.
Download, complie and install this:
http://freequaos.host.sk/schedtool/schedtool-0.9.tar.bz2
Run all Audio apps (jack, brutefir, xmms, etc) using this:
schedtool -R -p 75 -n -20 -e <the command line>
for example:
schedtool -R -p 75 -n -20 -e brutefir alsa-alsa.brutefir &> brutefir.log
See if that makes a difference 😉
[edit]
Oh, also run JACK with the command line option "-t 5000".
So youll end up running somthing like:
schedtool -R -p 75 -n -20 -e jackd -v -t 5000 -R -d alsa -d "hw:1" -r 48000 -p 512 &> /var/log/jackd.log &
- Status
- Not open for further replies.
- Home
- Source & Line
- Digital Source
- PC music players