Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Jack O'Quin

> > >(btw, why jackd doesn't read /etc/jackrc or ~/.jackrc ?)
> > 
> On Fri, Jan 24, 2003 at 11:27:12 -0500, Paul Davis wrote:
> > because that means we have a config file, which means we need a config
> > file parser, which means we need to replicate a bunch of code or link
> > against another library. if jackd was a commonly executed command for
> > users, i could justify that. as it is, i can't.

Steve Harris <[EMAIL PROTECTED]> writes:
> What about having a simple config file that is just a set of default
> options, eg. /root/.jackrc:
> -R -d alsa -d Hammerfall -r 44100 -p 256
> 
> Then this can be chopped up and prepended to argv[] before being thrown at
> the argv parser.
> 
> It doesn't work as well as it might because of the -d thing (so you cant
> override the driver easily), but you can still override the rate, number
> of periods etc.

Why not just distribute an /etc/init.d/jackd script?  It would be
useful, and such a script can easily read config files with no extra
library dependencies in JACK.
-- 
  Jack O'Quin
  Austin, Texas, USA

BTW, like everyone else, I like Takashi and Paul's idea of running the
JACK engine in-process if libjack finds that no daemon is running.



Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread David Olofson
On Friday 24 January 2003 19.29, Paul Winkler wrote:
> On Fri, Jan 24, 2003 at 11:27:12AM -0500, Paul Davis wrote:
> > i've had the same idea. my approach would basically be to have
> > libjack try to contact the server. if it fails, then it just
> > starts up a thread to run the audio loop, and then instantiate
> > the client as an in-process client.
>
> i must be missing the point. Where does the audio go? isn't jackd
> responsible for connecting to alsa?

Well, yes - but if the lib fails to find jackd, it can do pretty much 
anything, instead of just failing. Like trying try to set up some 
direct audio I/O instead and "fake" jackd. :-)


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! .
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---




Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Paul Winkler
On Fri, Jan 24, 2003 at 11:27:12AM -0500, Paul Davis wrote:
> i've had the same idea. my approach would basically be to have libjack
> try to contact the server. if it fails, then it just starts up a
> thread to run the audio loop, and then instantiate the client as an
> in-process client.

i must be missing the point. Where does the audio go? isn't jackd
responsible for connecting to alsa?


-- 

Paul Winkler
http://www.slinkp.com
Look! Up in the sky! It's X-PERVERT WHO LIVES NEXT DOOR!
(random hero from isometric.spaceninja.com)



Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Fernando Pablo Lopez-Lezcano
> >(btw, why jackd doesn't read /etc/jackrc or ~/.jackrc ?)
> 
> because that means we have a config file, which means we need a config
> file parser, which means we need to replicate a bunch of code or link
> against another library. if jackd was a commonly executed command for
> users, i could justify that. as it is, i can't.

I would support adding another library. I think both system and user
configuration files add a lot to the usability department. 

BTW, the standalone non-jackd libjack sounds like a very good idea!
-- Fernando





Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Steve Harris
On Fri, Jan 24, 2003 at 11:27:12 -0500, Paul Davis wrote:
> not at all. it would allow programs to be run with no context switch
> overhead if they are started alone without jackd, which would be
> rather nice. we need to get in-process clients done first, though.

Agreed and agreed.
 
> >(btw, why jackd doesn't read /etc/jackrc or ~/.jackrc ?)
> 
> because that means we have a config file, which means we need a config
> file parser, which means we need to replicate a bunch of code or link
> against another library. if jackd was a commonly executed command for
> users, i could justify that. as it is, i can't.

What about having a simple config file that is just a set of default
options, eg. /root/.jackrc:
-R -d alsa -d Hammerfall -r 44100 -p 256

Then this can be chopped up and prepended to argv[] before being thrown at
the argv parser.

It doesn't work as well as it might because of the -d thing (so you cant
override the driver easily), but you can still override the rate, number
of periods etc.

- Steve



Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread David Olofson
On Friday 24 January 2003 18.22, Paul Davis wrote:
> >> >(btw, why jackd doesn't read /etc/jackrc or ~/.jackrc ?)
> >>
> >> because that means we have a config file, which means we need a
> >> config file parser, which means we need to replicate a bunch of
> >> code or link against another library. if jackd was a commonly
> >> executed command for users, i could justify that. as it is, i
> >> can't.
> >
> >Seems like it would be useful for the "no jackd" case, though. (Or
> >you'd have to force code changes upon applications anyway.)
> >
> >For Kobo Deluxe, I just hacked a simple integrated command line
> > and config file parser. Inherit the parser class, add your
> > argument
>
> there are plenty of decent config file parsers floating around.
> the goal is to avoid JACK requiring other libraries, as much as
> possible.

Yeah. The point is that it's just two files you throw into your 
project. Not incredibly sexy, but it works for tiny things that 
evolve very slowly or not at all.


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! .
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---




Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Paul Davis
>> >(btw, why jackd doesn't read /etc/jackrc or ~/.jackrc ?)
>>
>> because that means we have a config file, which means we need a
>> config file parser, which means we need to replicate a bunch of
>> code or link against another library. if jackd was a commonly
>> executed command for users, i could justify that. as it is, i
>> can't.
>
>Seems like it would be useful for the "no jackd" case, though. (Or 
>you'd have to force code changes upon applications anyway.)
>
>For Kobo Deluxe, I just hacked a simple integrated command line and 
>config file parser. Inherit the parser class, add your argument 

there are plenty of decent config file parsers floating around.
the goal is to avoid JACK requiring other libraries, as much as
possible. 

--p



Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread David Olofson
On Friday 24 January 2003 17.27, Paul Davis wrote:
[...]
> >(btw, why jackd doesn't read /etc/jackrc or ~/.jackrc ?)
>
> because that means we have a config file, which means we need a
> config file parser, which means we need to replicate a bunch of
> code or link against another library. if jackd was a commonly
> executed command for users, i could justify that. as it is, i
> can't.

Seems like it would be useful for the "no jackd" case, though. (Or 
you'd have to force code changes upon applications anyway.)

For Kobo Deluxe, I just hacked a simple integrated command line and 
config file parser. Inherit the parser class, add your argument 
variables and implement a function that registers the variables. Then 
tell it to read your config file and/or hand it argc + argv. You can 
have default values and check whether default values were overidden, 
and there's support for integers, floats, switches and strings.

Unfortunately, it's in C++, though the actual code is mostly C style, 
and shouldn't be too hard to port. (The key registering won't look as 
sexy, but that's no major issue.)

Licence is LGPL, like most of my engine/lib sort of stuff. I don't 
have it as a separate package, but that can be arranged if there's 
interest.


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! .
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---




Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Paul Davis
>At Fri, 24 Jan 2003 08:09:44 -0500,
>Paul Davis wrote:
>> 
>> the other alternative that many of us here like rather a lot is JACK
>> (http://jackit.sf.net/), which provides a different model: data
>> sharing between applications, shared access to hardware,
>> sample-synchronous execution of all applications, and no hardware
>> parameters to be configured. it sits on top of ALSA (and potentially
>> other similar hardware abstractions).
>
>what i've thought of is to make libjack runnable as standalone without
>jack server.  i know it sounds useless for serious purpose.

not at all. it would allow programs to be run with no context switch
overhead if they are started alone without jackd, which would be
rather nice. we need to get in-process clients done first, though.

imagine: your program can run in either mode - networked to other
applications and sharing the audio interface, or running with high
efficiency all by itself. all this with no code changes to your
application! 

>but, at least, people can write the application using a simple API,
>and have possiblity to debug in different environment.

i've had the same idea. my approach would basically be to have libjack
try to contact the server. if it fails, then it just starts up a
thread to run the audio loop, and then instantiate the client as an
in-process client.

>for example, in the standalone mode, libjack will initialize the
>necessary hardware setup silenty according to the config file, so that
>in the application you don't need to set up the nasty things.

>(btw, why jackd doesn't read /etc/jackrc or ~/.jackrc ?)

because that means we have a config file, which means we need a config
file parser, which means we need to replicate a bunch of code or link
against another library. if jackd was a commonly executed command for
users, i could justify that. as it is, i can't.

--p



Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Takashi Iwai
At Fri, 24 Jan 2003 08:09:44 -0500,
Paul Davis wrote:
> 
> the other alternative that many of us here like rather a lot is JACK
> (http://jackit.sf.net/), which provides a different model: data
> sharing between applications, shared access to hardware,
> sample-synchronous execution of all applications, and no hardware
> parameters to be configured. it sits on top of ALSA (and potentially
> other similar hardware abstractions).

what i've thought of is to make libjack runnable as standalone without
jack server.  i know it sounds useless for serious purpose.
but, at least, people can write the application using a simple API,
and have possiblity to debug in different environment.

for example, in the standalone mode, libjack will initialize the
necessary hardware setup silenty according to the config file, so that
in the application you don't need to set up the nasty things.
(btw, why jackd doesn't read /etc/jackrc or ~/.jackrc ?)


Takashi



Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Paul Davis
>I was looking for a good, up-to-date documentation pointer upon software featu
>res provided by alsa. But I'm new to this architecture and I might be "intoxic
>ated" by some kernel streaming  architectures : is there a kind of hardware ab
>straction with ALSA, e.g. features that are managed by the software at usr or 
>kernel level, in a +/-transparent way, when the HW does not provide them ? 

yes, its called alsa-lib. its big, its bold, and to some people its
beautiful. 

>My understanding is that Alsa does not provide multiple device open (a second 
>open can be blocking, or return with an error, but won't succeed, as no sw mix
>ing is available).

that's correct right at this very moment in time. however, the
mythical "mix" ALSA PCM "plugin" provides
multi-open-without-h/w-support by streaming data to a server called
"aserver". at this time, the mix plugin is not part of the ALSA source
base. its far from clear that anyone is doing any work on it.

>is there anything that can be emulated by alsa on user request, when the hw ca
>nnot ? (for instance frequency change, frame conversion  (n channels to m chan
>nels) etc...).

all of it.

the other alternative that many of us here like rather a lot is JACK
(http://jackit.sf.net/), which provides a different model: data
sharing between applications, shared access to hardware,
sample-synchronous execution of all applications, and no hardware
parameters to be configured. it sits on top of ALSA (and potentially
other similar hardware abstractions).

--p



RE: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-24 Thread Marc Titinger
Hi all,

I was looking for a good, up-to-date documentation pointer upon software features 
provided by alsa. But I'm new to this architecture and I might be "intoxicated" by 
some kernel streaming  architectures : is there a kind of hardware abstraction with 
ALSA, e.g. features that are managed by the software at usr or kernel level, in a 
+/-transparent way, when the HW does not provide them ? 

My understanding is that Alsa does not provide multiple device open (a second open can 
be blocking, or return with an error, but won't succeed, as no sw mixing is available).

is there anything that can be emulated by alsa on user request, when the hw cannot ? 
(for instance frequency change, frame conversion  (n channels to m channels) etc...).

How would you implement such thing ? With a kind of abstraction layer daemon, that 
exports the same api but perform missing hw features ?

Could the LADSPA plugin architecture be a solution to implement multiple device open ?

tx
Marc.



Re: [linux-audio-dev] Linux Audio Hardware Selection

2003-01-23 Thread Paul Winkler
On Thu, Jan 23, 2003 at 11:13:28AM -0600, Matt Gerassimoff wrote:
> Hello,
> 
> I've been watching the mail on this list for some time.  I've looked at as 
> much documentation on the web as I can find.  From alsa's web site to the 
> linux audio developers web site.  What I would like to know (or see in a 
> FAQ or HOWTO) is how to setup a linux pro audio system.  With different 
> levels of price/performance issues.  Things like:

(snip)

> What do you guys suggest?

I suggest taking it to [EMAIL PROTECTED] :)


-- 

Paul Winkler
http://www.slinkp.com
Look! Up in the sky! It's VEGETARIAN ATTENDANT!
(random hero from isometric.spaceninja.com)



[linux-audio-dev] Linux Audio Hardware Selection

2003-01-23 Thread Matt Gerassimoff
Hello,

I've been watching the mail on this list for some time.  I've looked at as 
much documentation on the web as I can find.  From alsa's web site to the 
linux audio developers web site.  What I would like to know (or see in a 
FAQ or HOWTO) is how to setup a linux pro audio system.  With different 
levels of price/performance issues.  Things like:

sound cards
necessary external equipment (amplifiers/interfaces)
speaker systems
cpu cases with low sound
midi interfaces
usb interfaces
dat interfaces

I'm pretty savvy when it comes to computer hardware but the audio hardware 
is where I'm lacking knowledge.  Currently I have a Korg Triton keyboard 
and a SoundBlaster Live! card.  I'm looking at upgrading to a more 
professional quality setup to handle:

multi-track recording/mastering
realtime synthesis
audio sound/music development/programming
possibly portable (19" rack mounted stuff) for live performance

I've seen discussions on Digital Audio cards like the RMU Hammerfall and
Digi series and the MidiMan Delta series.  Some have S/PDIF interfaces and
other digital interfaces.  What and how do connect to these?  What
equipment is necessary/recommended?  How do you choose one card from the
other?

Is there a good web page to find this information?  Should there be one?  
A nice page describing various setups for different levels of pro to 
semi-pro audio systems would be handy.  

What do you guys suggest?

Thanks,
Matt Gerassimoff