[Top][All Lists]
[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