Read Me
30 March 2008 - David Marion
Rick, Mike,
I like your compact layout for the GL control panel. (Below)
Although, I think it could use some minor improvements...
Here are some links to GTK:
http://library.gnome.org/devel/
http://library.gnome.org/devel/gtk-tutorial/stable/
http://www.linuxheadquarters.com/howto/programming/gtk_examples/
http://www.ittc.ku.edu/~niehaus/classes/448-s04/448-standard/gtk_gui_examples/
alsa-tools also has some good examples:
ftp://ftp.alsa-project.org/pub/tools/alsa-tools-1.0.16.tar.bz2
Specifically; envy24control
I think the overall goal is to get the GUI written, then integrate it into the controls of the GL824 driver.
At this point we need to finish building and 'packing' the GUI framework.
Any help is welcome and appreciated.
+21-Martch-2008 Riccardo Macri
+
+- 'alsamixer' has basic control of the card's switches.
+
+ I've filled in cnt_gl824.c and interfaced it to the card
+
+ I've used the names as follows []'s show alsamixer's status
+
+ Playback Enable [MM=muted, OO=enabled]
+ Monitor Switch [MM=off, OO=on]
+ Capture Level [MM=-10, 00=+4]
+ Playback Level [MM=-10, OO=+4]
+
+The names were chosen so alsamixer puts the mutes (Playback Enable) first
+adn we should choose better names once we have a controlpanel.
+Maybe other pro cards have a better naming for these.
+
+Running alsamixer, you can use the left/right arrows to select a channel/category
+and 'm' to toggle its switch.
Hi Dave, I'd forwarded this ASCII mockup to Mike a few weeks back. He'd found the "status" line a bit cryptic/short; preferred a more spatious layout. I'm all for compact.
-------- Original Message --------
Subject: GL control panel specification
Date: Tue, 26 Feb 2008 18:21:43 +1000
From: Riccardo Macri
To: Mike Mazarick
----
Hi Mike
Nice mockup.
I think its way beyond what the GL can handle in hardware. The GL
doesn't support hardware metering or level controls. These would need to
be implemented in software emulation in the driver ISR, something I
personally would not want because its using CPU that could be used
elsewhere. It might even break the ISR's timing limits as you're
processing 3MB of data per second.
I think there are software meters that sit with Jack to do metering
anyway. As another example, Audacious gives me the option of a software
volume control, which works fine with the GL.
What the GL control needs in ascii art (paste into notepad if needed)
CARD [GL824 # 1][v]
Timing Source : [Internal][v]
Sample Rate : 44.1k (active)
MIDI : Active
Timing Slips : 0 Buffer Size : 64
Channel 1 2 3 4 5 6 7 8
Pro Input Level : [x] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
Pro Output Level : [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
Channel Monitor : [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
Mute : [ ] [ ] [ ] [ ] [ ] [ ] [x] [x]
Status : 16i 16i 32n 32n - - 24i 24i
Where:
* Card: a dropdown to select one of the installed cards. Everything
updates upon selection
* Timing Source: Can be a dropdown or 2 radio buttons; options are
"Internal" or "External". Determines if card is master/slave
* Sample Rate: indicates the current sample rate and whether the sound
engine is active. Not editable.
* MIDI: indicates whether MIDI device has been opened. Not editable.
* Timing Slips: indicates how many interrupts have been missed due to
other bad drivers/hardware/motherboard. Click on it to reset it.
* Buffer Size: indicates the buffer size the driver is compiled for.
Perhaps one day we'll support this being editable
* Pro Input Level: If checked, sets +3dB input level, else its -12dB
* Pro Output Level: If checked, sets +3dB output level, else its -12dB
* Channel Monitor: If checked, channel in is routed to channel out by
the hardware. Otherwise no loopback.
* Mute: If checked, that channel's out is muted
* Status: Summarises the mode the channel is running in, eg:
16i = 16 bit interleaved
32n = 32 bit non interleaved
The GL doesn't need a MIDI disable, If the user doesn't select the card
for MIDI, MIDI code doesn't affect the operation of the card at all.
Global Sample Rate/Sample size is not needed - the driver doesn't need
these declared up front. It will adapt to how its opened. The more we
stay automatic, the better.
I think thats mostly it. The layout I've done is very compact. I'll look
for a metering module in ALSA that can be used when if/desired.
...