traverso-devel
[Top][All Lists]
Advanced

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

[Traverso-devel] Storing channel/bus configuration, expected behaviour


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

Hi all,

I send this to Nicola, but I figured, you guys should have a look at the 
current idea of storing the channel/bus configuration to the project file, and 
how we deal with setting the actual configuration. If not clear, please let me 
know :D

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>


The Bus config is now much more explicit in the right/left channel assignment. 
If in the Audio IO dialog a user does not assign a channel(s) to a bus, the 
next time traverso starts, the AudioIO dialog can't possibly know how many 
channels the Bus had, and if only 1 channel was assigned, if it was the right 
or left channel.

I admit this makes it a bit more complicated perhaps, but due the fact that we 
need to support the case that a Bus can't get the channels it wants due the 
Driver doesn't 'export' them.

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!
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.
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...

What do you think about that?

Greetings, Remon




reply via email to

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