Re: [LAD] announcing envy24control, mudita (*) edition.

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-audio-dev@...>
Date: Wednesday, August 4, 2010 - 7:13 pm

Hi Niels.

Something odd. Are you sure about those digital mixer ranges?
They now go down to only -48dB instead of -144dB.
Seems like 2/3 of the range is missing?
Verified against the original mixer, and amixer.

Also, the 'active' colour of the meters seems way too 'soft'?
Seems like just a slightly darker grey shade than the meter
background (although I know it's supposed to be blue).
This makes it very hard to see the meters in action.
A lighter shade of blue would make it look nice like a flourescent
type of display.

--------------
Also, sorry about this, I missed something in the ALSA dB reading
code I submitted: The index of the control:

In volume.c: dac_volume_adjust() and adc_volume_adjust(),
remove the clear() and set an index like this:

snd_ctl_elem_id_t *elem_id;
snd_ctl_elem_id_alloca(&elem_id);
//snd_ctl_elem_id_clear(elem_id); // TER: Removed
snd_ctl_elem_id_set_interface(elem_id, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_id_set_name(elem_id, DAC_VOLUME_NAME);
snd_ctl_elem_id_set_index(elem_id, idx); // TER: Added
long db_gain = 0;

And in mixer.c: mixer_volume_to_db()
remove the clear() and set an index:

snd_ctl_elem_id_t *elem_id;
snd_ctl_elem_id_alloca(&elem_id);
//snd_ctl_elem_id_clear(elem_id); // TER: Removed
snd_ctl_elem_id_set_interface(elem_id, SND_CTL_ELEM_IFACE_MIXER);

/* IEC958_MULTI_CAPTURE_VOLUME, for stream=19 or 20 gives incorrect
results, use HW_MULTI_CAPTURE_VOLUME for all */
// Verified by TER. Those two controls have no dB values, but they should,
// they're just part of the same mixer !
// snd_ctl_elem_id_set_name(elem_id, (stream <= 10) ?
// MULTI_PLAYBACK_VOLUME : (stream <= 18 ? HW_MULTI_CAPTURE_VOLUME :
// IEC958_MULTI_CAPTURE_VOLUME));
snd_ctl_elem_id_set_name(elem_id, (stream <= 10) ? MULTI_PLAYBACK_VOLUME :
HW_MULTI_CAPTURE_VOLUME);

// TER: First line is 'proper' way, but second line is corrected
// workaround for lack of dB values for IEC958 controls.
//snd_ctl_elem_id_set_index(elem_id, stream <= 18 ? (stream - 1) % 10 :
// (stream - 1) % 18 );
snd_ctl_elem_id_set_index(elem_id, stream <= 18 ? (stream - 1) % 10 : 0 );

-----
With the ice1712 digital mixer, it is not so crucial that we pay attention to
what ALSA tells us about those controls.
Setting an index with snd_ctl_elem_id_set_index() is not crucial.
After all, this app is specifically for ice1712 and nothing else, so we know
that it's always going to be an ice1712 chip, so we can take advantage
of this, and 'hard-code' the digital mixer scale markings and other things.
The ADC/DAC section however, is a different matter.
Here is where we must pay attention to ALSA because we don't know
what kind of codec chips may be used.
We can't even assume that all controls in a group have the same range so
to be safe we must use snd_ctl_elem_id_set_index().
Granted, envy24control does use some card-specific code for some tricks,
but to support new cards with yet-unknown codecs, we must trust ALSA.
If we wanted utmost dB accuracy, we'd have to use card-specific code for
the AK4524 chip for example, due to the broken ALSA TLV functionality,
as Clements mentioned in another thread.
These are the approaches I'm using in my re-work of the scales and page snaps.

And finally, a reminder (also to myself) to try to avoid using newer gtk
functions because this app is 'supposed' to be able to built with gtk-1.
Those 'built-in' GtkScale marker functions are new since 2.16, and likely the
app could not be built with gtk-1.
I guess bumping up to a minimum of gtk+-2.0 might be OK though,
as it is the year 2010... Anyone still using gtk+-1.x ?

Tim.

On August 3, 2010 09:36:54 pm Niels Mayer wrote:

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[LAD] announcing envy24control, mudita (*) edition., Niels Mayer, (Sun Jul 25, 7:10 pm)
Re: [LAD] announcing envy24control, mudita (*) edition., Ralf Mardorf, (Mon Jul 26, 10:13 am)
Re: [LAD] announcing envy24control, mudita (*) edition., James Morris, (Mon Jul 26, 10:52 am)
Re: [LAD] announcing envy24control, mudita (*) edition., Ralf Mardorf, (Mon Jul 26, 11:00 am)
Re: [LAD] announcing envy24control, mudita (*) edition., Ralf Mardorf, (Mon Jul 26, 10:34 am)
Re: [LAD] announcing envy24control, mudita (*) edition., Takashi Iwai, (Mon Jul 26, 8:47 am)
Re: [LAD] announcing envy24control, mudita (*) edition., Tim E. Real, (Sun Jul 25, 11:10 pm)
Re: [LAD] announcing envy24control, mudita (*) edition., Niels Mayer, (Mon Jul 26, 12:00 am)
Re: [LAD] announcing envy24control, mudita (*) edition., Tim E. Real, (Sun Jul 25, 11:22 pm)
Re: [LAD] announcing envy24control, mudita (*) edition., Niels Mayer, (Sun Jul 25, 11:55 pm)
Re: [LAD] announcing envy24control, mudita (*) edition., Tim E. Real, (Tue Jul 27, 11:09 pm)
Re: [LAD] announcing envy24control, mudita (*) edition., Niels Mayer, (Wed Jul 28, 12:04 am)
Re: [LAD] announcing envy24control, mudita (*) edition., Tim E. Real, (Thu Jul 29, 12:25 am)
Re: [LAD] announcing envy24control, mudita (*) edition., Tim E. Real, (Wed Aug 4, 7:13 pm)
[LAD] detention :), Jörn Nettingsmeier, (Wed Jul 28, 10:39 am)
Re: [LAD] detention :), Dominic Sacré, (Wed Jul 28, 12:05 pm)
Re: [LAD] detention :), Jörn Nettingsmeier, (Tue Aug 3, 6:41 pm)
Re: [LAD] detention :), Niels Mayer, (Tue Aug 3, 8:58 pm)
Re: [LAD] announcing envy24control, mudita (*) edition., James Morris, (Sun Jul 25, 9:16 pm)
Re: [LAD] announcing envy24control, mudita (*) edition., Niels Mayer, (Sun Jul 25, 11:16 pm)
Re: [LAD] announcing envy24control, mudita (*) edition., James Morris, (Mon Jul 26, 7:51 am)