On Sat, Aug 7, 2010 at 6:10 PM, Geoff Beasley
<geoff(a)laughingboyrecords.com> wrote:
> Niels, great that you and Tim have fixed this app ;) One thing, can you
> explain what those 'profiles' are for and how to use them?
Envy24control uses the same mechanism as your system does (see
/etc/asound.state and amixer(1)) to save the state of your ALSA
devices between boots. The difference is this mechanism puts the file
under your control at ~/.envy24control/profiles.conf and allows you to
set eight different profiles: allowing you to save or restore up to
eight different "asound.state"-like configurations per card.
The different profiles are most useful for storing routings set in
"Patchbay/Router" panel, as well as "Hardware Settings" panel clock
rate, or external SPDIF/wordclock sync. On cards with switchable
spdif/optical ins (Terratec/Terrasoniq), you can persist this extra
level of "routing" -- which is useful for "matrix routing" between two
digitally-interconnected and sync'd computers. ( I use profiles named:
44dmix-to-1&2&spdif, 48dmix-to-1&2&spdif, spdmix-to-1&2&spdif,
44all-outs-pcm, 48all-outs-pcm, spdif-all-outs-pcm,
96dmix-to-1&2&spdif and 96all-outs-pcm. ).
When you have a combination of settings in envy24control that you want
to return to, just go to the "Profiles" panel, enter the name of the
profile into the first free text field (initially these will be
numbered "1" through "8"). After entering a descriptive name, click
"Save active profile." To restore a given profile, just click on the
"button" area surrounding the text field, or even click within the
text field. You'll notice the selected profile "button" indicates
activation via coloration. After changing profiles, go to, for
example, Patchbay/Router or "Hardware Settings" panels,and note that
the previously saved state was restored.
Note that significant amounts of setting data gets saved in these files:
> ll ~/.envy24control/
-rw-r--r-- 1 npm npm 115253 2010-08-07 23:10 profiles.conf
For comparison:
> ll /etc/asound.state
-rw-r--r--. 1 root root 128079 2010-08-07 18:15 /etc/asound.state
(That's for a system with two envy24-based cards installed, thus size
is large, causing "save" to produce a brief but noticeable pause in
the metering on a slower system or "ondemand" throttled system).
Niels
http://nielsmayer.com
PS: speaking of envy24 anybody know whether this will work in standard
alsa/linux:
http://www.lionstracs.com/store/msaudio-board-envy24-p-122.html
and are those i2s connectors, or ttl-level spdif? i guess if it's i2s
you have to get:
http://www.lionstracs.com/store/mixer-board-p-210.html (which looks
pretty cool, esp w/ the onboard dream-based hardware synth w/ large
sample ROM).
The "Mudita24" package is a modification of alsa-tools' envy24control:
an application controlling the digital mixer, channel gains and other
hardware settings for sound cards based on the ice1712 chipset (
http://alsa.cybermirror.org/manuals/icensemble/envy24.pdf ). It
also displays a level meter for each input and output channel and
maintains peak level indicators. This utility is preferable to
alsamixer(1) for those with ice1712-based cards: M-Audio Delta 1010,
Delta 1010LT, Delta DiO 2496, Delta 66, Delta 44, Delta 410 and
Audiophile 2496. TerraTec EWS 88MT, EWS 88D, EWX 24/96, DMX 6Fire,
Phase 88. Hoontech SoundTrack DSP 24, SoundTrack DSP 24 Value,
SoundTrack DSP 24 Media 7.1. Event Electronics EZ8. Digigram VX442.
Lionstracs, Mediastaton. Terrasoniq TS 88. Partial support for
Roland/Edirol DA-2496.
Now available, version 1.02:
source: http://nielsmayer.com/envy24control/mudita24-1.0.2.tar.gz
binary: http://nielsmayer.com/envy24control/mudita24-1.0.2.x86_64.tgz
patch: http://nielsmayer.com/envy24control/mudita24-envy24control-0.6-to-1.0.2.pat…
'envy24control' is part of the "alsa-tools" package. For example,
under CCRMA's Fedora repos, it's part of
alsa-tools-1.0.22-1.1.fc12.ccrma.x86_64. This "mudita24" package
updates/replaces the alsa-tools /usr/bin/envy24control application.
The default "./configure ; make ; sudo make install" process on the
source-code leaves a binary in /usr/local/bin/envy24control and places
the man-page in /usr/local/man/man1/envy24control.1 . This means you
can still use the standard alsa-tools version in
/usr/bin/envy24control .
Screenshots (controlling either Terratec DMX6Fire or M-Audio Delta 66):
http://nielsmayer.com/envy24control/Mudita24-102-Monitor-Inputs.pnghttp://nielsmayer.com/envy24control/Mudita24-102-Monitor-Outputs.pnghttp://nielsmayer.com/envy24control/Mudita24-102-Patchbay+Router.pnghttp://nielsmayer.com/envy24control/Mudita24-102-Hardware-Settings.pnghttp://nielsmayer.com/envy24control/Mudita24-102-Analog-Volume.pnghttp://nielsmayer.com/envy24control/Mudita24-102-About.png
Changes since recent 1.0.0 and 1.0.1 releases:
* Peak-meter display is in dBFS, corresponding to displayed dBFS
peak-meter value and scale-widget dB labeling.
* Hardware mixer input attenuators provide more precise control to the
0 to -48dB range of adjustment, turning the associated input "off"
when the slider is moved to bottom of the scale. External MIDI control
of the hardware mixer via --midichannel and --midienhanced options
unaffected by this change.
* For M-Audio Delta series, add display of "Delta IEC958 Input Status"
under "Hardware Settings."
* Command line options --no_scale_mark, --channel_group_modulus affect
layout and presence of dB markings for sliders.
--channel_group_modulus allows override of Left/Right grouping of dB
labels for multichannel applications.
* Control of peak-meter coloring via --lights_color and --bg_color
options. Reasonable default colors used when these options are not
set. (1.0.1's use of Gtk skin to provide an automatic color choice
didn't work out that well on some systems.)
* Fixed command-line options --card and --device to allow valid ALSA
card and CTL device names
( https://bugzilla.redhat.com/show_bug.cgi?id=602900 ).
* Profiles created in ~/.envy24control and not "~/envy24control"
( http://bugtrack.alsa-project.org/alsa-bug/view.php?id=4738 ).
Summary of previous updates from envy24control 0.6.0 (GIT HEAD) to "1.0.2":
(1) Implemented "Peak Hold" functionality in meters; reimplemented
meters to do away with inefficient "faux LED" peak-meter display.
(2) Significantly reduced the number of timer interrupts generated by
this program by slowing down all updates to 10 per second --
previously meters updated 25x/second!
(3) All volumes are represented as decibels, including the 0 to -48dB
range of the hardware peak-meters, the 0 -to- -48dB&off attenuation
for all inputs to the digital mixer, the 0 -to- -63dB attenuation of
the analog DAC, and the +18 -to- -63dB attenuation/amplification of
the analog ADC.
(4) All gtk "scale" widgets have dB legends; the "PageUp" "PageDown"
keys allow rapid movement between the marked levels, and "UpArrow" and
"DownArrow" allow fine-adjustment.
Niels
http://nielsmayer.com
PS: Why "mudita24" ? An alternate name to avoid confusion with
"envy24control 0.6.0" until changes in this version propagate
upstream. See http://en.wikipedia.org/wiki/Envy#In_philosophy "In
Buddhism the third of the four divine abidings is mudita, taking joy
in the good fortune of another. This virtue is considered the antidote
to envy and the opposite of schadenfreude."
On Wed, Aug 4, 2010 at 1:20 AM, Raymond Yau <superquad.vortex2(a)gmail.com> wrote:
> The "-D" option seem to be used similar to "amixer -Dabc"
> ctl.abc { type hw , card 2 }
Raymond --
Thanks for the clarification regarding the use of the -D argument for
alsa control devices. I've updated my code to handle things in the
same way that amixer does. The diffs for this change are at the end of
this message, and attached. ALSA names for examples/tests below from
http://nielsmayer.com/npm/dot-asoundrc.txt ....
.........................................
gnulem-277-~> /usr/bin/envy24control -D66 ##behavior on current
head and latest stable release
Segmentation fault (core dumped)
gnulem-278-~> envy24control -D66 ##behavior using this patch ...
using --- input_channels: 4
gnulem-279-~> envy24control -D666
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL 666
envy24control: cannot open mixer: No such file or directory - '666'
gnulem-280-~> envy24control -Dhw:66
envy24control: invalid ALSA audio device, invalid index or name for card: hw:66
gnulem-281-~> envy24control -Dhw:M66
using --- input_channels: 4
gnulem-282-~> envy24control -Dmulti
invalid card type (driver is HDA-Intel)
gnulem-283-~> envy24control -Ddefault
invalid card type (driver is USB-Audio)
gnulem-284-~> envy24control -c default
envy24control: invalid ALSA index or name for audio card: default
gnulem-285-~> envy24control -c SB
invalid card type (driver is HDA-Intel)
gnulem-286-~> envy24control -c multi
envy24control: invalid ALSA index or name for audio card: multi
gnulem-287-~> envy24control -c M66
using --- input_channels: 4
gnulem-299-~> amixer -Dhw:/dev/snd/controlC2 >! /tmp/foo
gnulem-301-~> amixer -D/dev/snd/controlC2 > ! /tmp/foo
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL /dev/snd/controlC2
amixer: Mixer attach /dev/snd/controlC2 error: No such file or directory
gnulem-290-~> envy24control -D/dev/snd/controlC2
ALSA lib control.c:902:(snd_ctl_open_noupdate) Invalid CTL /dev/snd/controlC2
envy24control: cannot open mixer: No such file or directory -
'/dev/snd/controlC2'
.........................................
diff --git a/envy24control/envy24control.c b/envy24control/envy24control.c
index 0b2749e..e5d89d0 100644
--- a/envy24control/envy24control.c
+++ b/envy24control/envy24control.c
@@ -2084,3 +2166,3 @@ int main(int argc, char **argv)
view_spdif_playback = 0;
profiles_file_name = DEFAULT_PROFILERC;
default_profile = NULL;
while ((c = getopt_long(argc, argv, "D:c:f:i:m:Mo:p:s:w:vt:",
long_options, NULL)) != -1) {
switch (c) {
case 'D':
- name = optarg;
- card_number = atoi(strchr(name, ':') + sizeof(char));
- if (card_number < 0 || card_number >= MAX_CARD_NUMBERS) {
- fprintf(stderr, "envy24control: invalid card number %d\n", card_number);
- exit(1);
+ /* NPM: old code assumed ':' present, e.g. "-Dhw:66",
+ * (w/ .asoundrc "ctl.66 {type hw, card M66}") and would
+ * coredump if given "-D66". Prevent the coredump and even
+ * handle latter case even if keying off ':' is not a
+ * good way to do this. Note that for snd_card_get_index()
+ * "The accepted format is an integer value in ASCII
representation or the card
+ * identifier (the id parameter for sound-card drivers). The control device
+ * name like /dev/snd/controlC0 is accepted, too." */
+ if (!index(optarg, ':')) {
+ /* NPM: unlike old envy24control code, but behaving like amixer et al,
+ "-D66" is valid. Handle it. */
+ snd_mixer_t *mixer;
+ struct snd_mixer_selem_regopt selem_regopt = {
+ .ver = 1,
+ .abstract = SND_MIXER_SABSTRACT_NONE,
+ .device = optarg,
+ };
+ if ((err = snd_mixer_open(&mixer, 0)) < 0) {
+ fprintf(stderr, "envy24control: cannot open mixer: %s -
'%s'\n", snd_strerror(err), optarg);
+ exit(1);
+ }
+ if ((err = snd_mixer_selem_register(mixer, &selem_regopt, NULL)) < 0) {
+ fprintf(stderr, "envy24control: cannot open mixer: %s -
'%s'\n", snd_strerror(err), optarg);
+ exit(1);
+ }
+ name = optarg; /* NPM: now that device name validated, e.g.
pass "-D66" unaltered to snd_ctl_open()... */
+ }
+ else {
+ /* NPM: handle e.g. optarg == "hw:M66" */
+ card_number = snd_card_get_index(strchr(optarg, ':') +
sizeof(char)); /* NPM: use correct ALSA-specific call to fix
https://bugzilla.redhat.com/show_bug.cgi?id=602900 */
+ if (card_number < 0) {
+ fprintf(stderr, "envy24control: invalid ALSA audio device,
invalid index or name for card: %s\n", optarg);
+ exit(1);
+ }
+ name = optarg; /* e.g. optarg == "hw:M66" passed to
snd_ctl_open() below */
}
break;
case 'c':
- i = atoi(optarg);
- if (i < 0 || i >= MAX_CARD_NUMBERS) {
- fprintf(stderr, "envy24control: invalid card number %d\n", i);
+ card_number = snd_card_get_index(optarg); /* NPM: use correct
ALSA-specific call to fix
https://bugzilla.redhat.com/show_bug.cgi?id=602900 */
+ if (card_number < 0) { /* NPM: code orig from alsa-utils/alsamixer/cli.c */
+ fprintf(stderr, "envy24control: invalid ALSA index or name for
audio card: %s\n", optarg);
exit(1);
}
- card_number = i;
- sprintf(tmpname, "hw:%d", i);
+ sprintf(tmpname, "hw:%d", card_number); /* e.g. "hw:M66" for arg
"-cM66" passed to snd_ctl_open() below */
name = tmpname;
break;
case 'f':
.........................................
--Niels
http://nielsmayer.com
Hi
Nano-Basket v0.1 has been released. Source files are available from
http://github.com/royvegard/Nano-Basket
Nano-Basket is a configuration software for the Korg nanoSERIES
MIDI controllers. It's intended to run on operating systems where
the official configuration editor is not available (i.e. Linux).
It's written in Python, using pygtk for the GUI.
This is the first release. The feature set is limited to storing
scenes to the nanoKONTROL device.
Simple usage instructions are available from the wiki page:
http://wiki.github.com/royvegard/Nano-Basket/use
--
Roy Vegard Ovesen
On Tue, Aug 3, 2010 at 10:38 PM, Raymond Yau
<superquad.vortex2(a)gmail.com> wrote:
> 2010/8/4 Niels Mayer <nielsmayer(a)gmail.com>
>> * fixed --card and --device to allow valid ALSA names and numbers
>> ( https://bugzilla.redhat.com/show_bug.cgi?id=602900 ).
>
> ./envy24control -Ddefault
>
> card_number = atoi(strchr(name, ':') + sizeof(char));
>
> This bug seem still occur when name does not contain ":" since ctl device is
> "hw:n" where n is card number
I used similar code to what's in alsamixer to perform the same
functions as the old broken code. Now the code behaves as follows:
gnulem-238-~> envy24control -Dhw:default
envy24control: invalid ALSA audio device, invalid index or name for
card: hw:default
gnulem-239-~> envy24control -Dhw:M66
using --- input_channels: 4
--- output_channels: 4
--- pcm_output_channels: 8
--- spdif in/out channels: 2
gnulem-240-~> envy24control -Dhw:M66.0
envy24control: invalid ALSA audio device, invalid index or name for
card: hw:M66.0
gnulem-241-~> envy24control -Dhw:M66,0
envy24control: invalid ALSA audio device, invalid index or name for
card: hw:M66,0
gnulem-242-~> envy24control -DM66
envy24control: ALSA audio device syntax expects ':' character: M66
Current code:
while ((c = getopt_long(argc, argv, "D:c:f:i:m:Mo:p:s:w:vt:ng:",
long_options, NULL)) != -1) {
switch (c) {
case 'D':
name = optarg;
if (!index(name, ':')) {
fprintf(stderr, "envy24control: ALSA audio device syntax expects
':' character: %s\n", optarg);
exit(1);
}
card_number = snd_card_get_index(strchr(name, ':') + sizeof(char));
/* NPM: use correct ALSA-specific call to fix
https://bugzilla.redhat.com/show_bug.cgi?id=602900 */
if (card_number < 0) { /* NPM: code orig from alsa-utils/alsamixer/cli.c */
fprintf(stderr, "envy24control: invalid ALSA audio device,
invalid index or name for card: %s\n", optarg);
exit(1);
}
break;
case 'c':
card_number = snd_card_get_index(optarg); /* NPM: use correct
ALSA-specific call to fix
https://bugzilla.redhat.com/show_bug.cgi?id=602900 */
if (card_number < 0) { /* NPM: code orig from alsa-utils/alsamixer/cli.c */
fprintf(stderr, "envy24control: invalid ALSA index or name for
audio card: %s\n", optarg);
exit(1);
}
sprintf(tmpname, "hw:%d", card_number);
name = tmpname;
break;
-- Niels
http://nielsmayer.com
On behalf of the guitarix team I'm proud to announce
Guitarix Version 0.11
Guitarix is a simple Linux Rock Guitar amplifier and is designed
to achieve nice thrash/metal/rock/blues guitar sounds.
Guitarix uses the Jack Audio Connection Kit as its audio backend
and brings to the jack audio graph a mono amplifier input/output port,
and a FX mono input with two (stereo) output ports.
Guitarix provides a jack midi input port to connect a midi controller
(midi learn) and a (3 channel) jack midi output port, feed by a
(scalable) mix of the tuner and a beat-detector.
Release 0.11.0 comes with following changes :
Users visible changes:
- new version of the impulse response parameter editor. You can
now graphically define a gain line to be applied to the IR data,
e.g. emphasize a part of the early reflections or damping the
reverb tail to make it fit to your guitar sound.
- the multi-line distortion effect now has 4 frequency bands and
is better optimized
- fix regression from version 0.10.0: now the default preset file is
created again if it doesn't exist (e.g. in new installations).
Changes that might be interesting for Developers:
We put the Guitarix widgets into a library, with the goal of
making them usable independently from Guitarix. You can build
it as shared library and there's a c++ (gtkmm) wrapper, a python
wrapper and glade support. Check it out and look for examples
in those directories, or just build a nice looking display with the
glade editor, and of course ask in our Guitarix forum (it's still
alpha).
As a side note, Guitarix is now in debian (unstable), of course at
the moment still the previous version 0.10.
have fun
_________________________________________________________________________
guitarix is licensed under the GPL.
Project page with screenshots:
http://guitarix.sourceforge.net/
download:
http://sourceforge.net/projects/guitarix/
please report bugs and suggestions in our forum here:
http://sourceforge.net/apps/phpbb/guitarix/
________________________________________________________________________
For capture, guitarix uses the great 'jack_capture'
(version >= 0.9.30) written by Kjetil S. Matheussen.
If you don't have it installed,
you can look here:
http://old.notam02.no/arkiv/src/?M=D
For extra Impulse Responses, guitarix uses the
zita-convolver library, and,
for up/down sampling we use zita-resampler,
both written by Fons Adriaensen.
If you don't have it installed, get it here:
http://www.kokkinizita.net/linuxaudio/index.html
We use the marvellous faust compiler to build the amp and effects and will say
thanks to
: Julius Smith
http://ccrma.stanford.edu/realsimple/faust/
: Albert Graef
http://q-lang.sourceforge.net/examples.html#Faust
: Yann Orlary
http://faust.grame.fr/
________________________________________________________________________
For faust users :
All used Faust dsp files are included in /guitarix/src/faust,
the resulting cc files are in /guitarix/src/faust-generated
The tools we use to convert (post-processing and plot)
the resulting faust cpp files to the needed include format,
stay in the /guitarix/tools directory.
________________________________________________________________________
regards
Hermann Meyer, James Warden, Andreas Degert
Hello:
I am very much new to Linux and Linux audio. I am trying to measure audio
IO latency for my system.
Jdelay seems to be the right tool but when I run it on the terminal, I am
getting message "Signal below threshold..." which probably might be because
Jack is trying to capture audio and ends up getting the low noise floor
because I do not have meaningful signal source connected. But then I tried
to patch the this App to the qJACKctl app but the settings console is
not straight forward to interpret. as it involved many parameters.
I guess there are # of frames per period that may eventually be used
to calculate the target latency but *is there a step-by step document
description for Jdelay and any other JACK tools and also using JACK audio
server in an effective manner*? Also, qJACKctl console does not offer
options for very low sampling rates like 8 KHz. With ALSA, this should be
possible but may be this particular tool does not support it. Can anyone
help here?
Thanks,
-F
[trimmed down reply-to linux-audio-dev(a)lists.linuxaudio.org]
On Tue, Jul 27, 2010 at 8:25 AM, john ffitch <jpff> wrote:
> Any chance of an option to envy24control to allow colour blind people
> to see three zones? I had been using it for years before I was told
> that there is a red section at the top and green below
> ==John ffitch
John --
Thank you for writing and you'll be happy to know that the new
"mutida24" (to avoid confusion with the old and overly colorful
envy24contol) does not use coloration in the same way, and yes, I'd
imagine the old choice of colors would be particularly bad for
http://en.wikipedia.org/wiki/Color_blindness#Red-green_color_blindness
.
Although there's been some recent minor changes, this is the look of
the new meters:
http://nielsmayer.com/envy24control/Screenshot-Envy24Control-MonitorInputs.…http://nielsmayer.com/envy24control/Screenshot-Envy24Control-MonitorPCM.png
Hopefully, at least for any colors at issue, there is enough contrast
against the background to make it properly visible. Please let me know
of any specific issues w/ the simplified, and more X-efficient meters
in this version, which try to be less eye-candy, and more useful for
making a visual level determination of inputs, outputs, or digital
mixer inputs.
The peak metering features a green/white/orange/red progression of the
peak color (the thin band that stays fixed while the meter below
bounces around). But in
addition, and more helpful to you, are he peak-level readouts in dBFS
from -48 to 0dBFS for all inputs and outputs, including in the "Analog
Volume" panel. The 0dBFS label is red with white background, whereas
the other levels remain black with white background. That should
provide enough redundancy in the metering to not hide important
information from you. However, I'm not sure of the perceptibility, of
the red "0dBFS" marking. On the other hand, it does say "0dBFS" (in
red) which is quite different-looking than, say "-5.02" (in black)
In http://nielsmayer.com/envy24control/Screenshot-Envy24Control-AnalogVolume.p…
the green (at 0dB) and red (+6 +12 +18) markings on the ADC would not
be very useful for you; fortunately, the "+" should be visually
distinctive from all the other "-" markings in blue. Other
alternatives would be Bolding amplification values, and underlining
unity gain.
Thanks,
Niels
http://nielsmayer.com
"Bearcat M. ?andor" <hometheater(a)feline-soul.com> wrote:
> Thank you. I think i understand all that, but let me take this apart to
> make sure. What you're [J?rn Nettingsmeier is] saying is that having full range speakers only
> effects the playback quality of the music not the ambisonics and
> that ambisonics itself does not *need* full range speakers, but that
> having full range speakers is better than not. Is that correct?
There are (at least) two things to reproduce:
the frequency range and the localisation.
Ambisonics satisfies localisation cues up to
about 5 kHz, and down to very low. (There is
evidence that humans can localise
frequencies below 20 Hz using things like
chest cavities. Ambisonics can reproduce
such localisation cues if these frequencies are
in the source.) So, for localisation, the
speakers can top out at 5 kHz. However,
music played though such speakers is unlikely
to sound very good. At the low end, lower is
better. However, it is a law of diminishing
returns, limited by the standing waves in your
listening room which will interfere with the
localisation of subwoofers.
> I think part of my confusion is that i'm still thinking of it as having
> 6 or 8 or more *channels* when that is not the case. The speakers are
> not steered, they are driven. So you are not going to have a situation
> where the speakers behind you are only reproducing high to midrange
> information as was the case with Dolby pro-logic or something. Right?
Right. With Ambisonics, all the speakers
cooperate to localise a sound. While the
speakers on the left push, those on the right
pull. (This is less pronounced with
frequencies above 400 Hz and less important
with higher-order Ambisonics, but ignore this.)
Regards,
Martin
--
Martin J Leese
E-mail: martin.leese stanfordalumni.org
Web: http://members.tripod.com/martin_leese/