traverso-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Traverso-devel] Storing channel/bus configuration, expected behavio


From: Remon Sijrier
Subject: Re: [Traverso-devel] Storing channel/bus configuration, expected behaviour
Date: Mon, 1 Feb 2010 22:49:07 +0100
User-agent: KMail/1.12.4 (Linux/2.6.31-17-generic; KDE/4.3.5; i686; ; )

Hi,

> Am Montag, 1. Februar 2010 16.17:58 schrieb Remon Sijrier:
> > So far it looks like:
> >
> > <AudioIO>
> >   <SystemConfig driver="ALSA" device="HDA ATI HDMI">
> >     <Channels>
> >       <Channel direction="input" name="capture_1"/>
> >       <Channel direction="input" name="capture_2"/>
> >       <Channel direction="output" name="playback_1"/>
> >       <Channel direction="output" name="playback_2"/>
> >     </Channels>
> >     <Buses>
> >       <Bus channelleft="playback_1" channelright="playback_2"
> >  channelcenter="" direction="output" type="STEREO" name="Playback 1"/>
> >       <Bus channelleft="capture_1" channelright="capture_2"
> >  channelcenter="" direction="intput" type="STEREO" name="Capture 1"/>
> >     </Buses>
> >   </SystemConfig>
> > </AudioIO>
> 
> Makes sense so far.

OK, the Bus configuration needs to be adjusted still, but the channels are now 
stored as shown above.

> > So right now this is what I have in mind:
> >
> > 1) A Bus Configuration is created by the user, and can't be altered by
> > anything else. AudioDevice creates real AudioBus objects and simply tries
> >  it best to assign real AudioChannel objects, but if they aren't
> > available, _do_not_alter_ bus configuration of the user!
> 
> Yes, the bus setup should never change unless the user does it. Connections
>  to channels may get lost, but the busses (name, mono/stereo, order) should
>  persist.

Hmm, I just noticed I didn't make that one work yet. It's still on the TODO 
list :)

> 
> > 2) Before setting the bus configuration, the channel configuration must
> > be set in AudioDevice, which only makes sense for the jack driver, but to
> > a degree only. Say, the hardware was busy, and Traverso falls back to the
> > Null Driver. When the hardware comes available again, and the alsa driver
> > is loaded, AudioDevice tries again to populate the then available
> > (hardware) channels to the Bus configuration.
> 
> If the null driver was loaded, it is quite obvious that something went
>  wrong when attempting to load a real driver, so your solution should work.
>  But what if the user switches between ALSA and jack? For example using
>  jack to record virtual instruments, but for mixdown only a stereo output
>  is needed and the user is too lazy to set up jack connections. Would it be
>  possible to save one configuration per driver, and automatically load it
>  when the driver is changed? Since the bus configuration is persistent, the
>  Sheet wouldn't notice anything.

Could be possible, yes, although I assume a user sticks mostly to one driver. 
But from a portability pov it should work that way indeed.

> 
> > 3) when no Channel/Bus configuration is set in AudioDevice, it does it's
> > default mapping as we did before, and when we try to 'get' the
> > channel/bus config, it returns the config, but without storing it
> > internally, to keep the current behaviour of Traverso...
> 
> Sorry, I don't understand what you mean here.

That is, when you create a new project, there is no channel/bus configuration, 
and the Driver creates it's own, depending on the available hardware channels.


Well, storing the bus/channel config in the project file, as well as changing 
the bus/channel configuration is in git, but expect it to crash if you make a 
mistake in the AudioIO dialog, i.e. if you forgot to assign one of the Buses 
channels.

Anyways, enough for today :D

Remon




reply via email to

[Prev in Thread] Current Thread [Next in Thread]