I was playing with alsa arecord and daring to brave a .asoundrc for my
delta 1010. I set up a multi-out and monitor mix to grab the digital
mixer output [1]
pcm.delta1010 {
type hw
card M1010
device 0
}
# send to all outputs:
pcm.multi {
type plug
ttable.0.0 1
ttable.0.1 1
ttable.0.2 1
ttable.0.3 1
ttable.0.4 1
ttable.0.5 1
ttable.0.6 1
ttable.0.7 1
ttable.0.8 1
ttable.0.9 1
slave.pcm delta1010
}
pcm.mix {
type plug
ttable.0.10 1 # digital mix left
ttable.1.11 1 # digital mix right
slave.pcm delta1010
}
Monitoring with mudita24, I see the individual levels well below +0 but
the digital mixer showing OVER (well, peaked).
2 questions: 1) is this correct to sum the individual pcms (seems
that's what it's doing) and 2) is that even correct? recording with
arecord -c2 -r44100 -d10 -fS32_LE -V stereo
never showed OVERs.
Any insight?
thanks
David
[1] http://alsa.opensrc.org/index.php/1712_.asoundrc
On Mon, Sep 13, 2010 at 11:01 AM, Robin Gareus <robin(a)gareus.org> wrote:
> On 09/13/2010 07:49 PM, Rory Filer wrote:
> > On Sun, Sep 12, 2010 at 2:40 PM, Robin Gareus <robin(a)gareus.org> wrote:
> >
> >>
> >>
> >> Hi Rory,
> >>
> >> You're not missing a library but some other kernel modules which provide
> >> those symbols.
> >>
> >> After installing the kernel, run 'depmod' and try to load the module
> >> with 'modprobe snd-dummy' instead of 'insmod snd-dummy.ko'.
> >>
> >>
> > Hi Robin,
> >
> > I appreciate your reply. Unfortunately my embedded system doesn't have
> > depmod configured so I'll have to try adding it to Busybox first.
>
> depmod/modprobe is basically just a handy way to automatically load
> module dependencies. It may or may not be overkill for an embedded system.
>
> FWIW, you should be able to run 'depmod' to generate modules.dep on the
> system where you built the kernel. The target system only needs modprobe.
>
> Did you try to run 'insmod snd.ko snd_pcm.ko' manually before the
> 'insmod snd-dummy.ko'. That should work as well.
>
>
Hi Robin,
It was reply-to munging that got me on that previous reply.
I think there might be some weird stuff with the build/make utility on my
target
which builds the sound files but isn't seeming to include them in my kernel
image.
I'll try and figure out all that before rattling the list again.
Thanks for your assistance.
Rory
Hello,
Let me point out in advance that my problem is pretty trivial compared to
most of the postings on that list. If a journey in sound engineering on
Linux is 1000 steps, I'm at step 1 here. I basically tried configuring sound
into the kernel but it didn't seem to work. If you think you can help,
please read on. Otherwise, stop here.
And thanks to all who continue from here...
I want to build sound support into my embedded Linux platform (2.6.28); the
CPU supports I2S in silicon, but I haven't got a driver for that yet. My
plan is to build the kernel with SOUND/SND configurations enabled and start
working on the driver later. In my configurations, I've left all the sound
card-specific options out, keeping just the CONFIG_SND_SOC. I thought it
would be sufficient to install snd-dummy so that any cross-compiled audio
applications could be fooled into working. l rebuilt the kernel after *make
clean* and noted several new SND files being compiled. So far so good. The
final zImage was only a little larger. Overall, the configuration and build
seemed to be going through all the right motions, but when I loaded zImage
onto the target I didn't see any bootup logging that suggested audio was now
working. As an experiment, I tried to insmod snd_dummy.ko but got a long
list of errors. I guess I'm missing something basic.
Here's my configuration choices:
> CONFIG_SOUND=m
> CONFIG_SOUND_OSS_CORE=y
> CONFIG_SND=m
> CONFIG_SND_TIMER=m
> CONFIG_SND_PCM=m
> # CONFIG_SND_SEQUENCER is not set
> CONFIG_SND_OSSEMUL=y
> CONFIG_SND_MIXER_OSS=m
> CONFIG_SND_PCM_OSS=m
> CONFIG_SND_PCM_OSS_PLUGINS=y
> # CONFIG_SND_DYNAMIC_MINORS is not set
> CONFIG_SND_SUPPORT_OLD_API=y
> CONFIG_SND_VERBOSE_PROCFS=y
> # CONFIG_SND_VERBOSE_PRINTK is not set
> # CONFIG_SND_DEBUG is not set
> CONFIG_SND_DRIVERS=y
> # CONFIG_SND_PCSP is not set
> CONFIG_SND_DUMMY=m
> # CONFIG_SND_MTPAV is not set
> # CONFIG_SND_MTS64 is not set
> # CONFIG_SND_SERIAL_U16550 is not set
> # CONFIG_SND_MPU401 is not set
> # CONFIG_SND_PORTMAN2X4 is not set
> # CONFIG_SND_ISA is not set
> # CONFIG_SND_PCI is not set
> # CONFIG_SND_SPI is not set
> # CONFIG_SND_USB is not set
> # CONFIG_SND_PCMCIA is not set
> CONFIG_SND_SOC=m
> CONFIG_SND_SOC_ALL_CODECS=m
> CONFIG_SND_SOC_AD73311=m
> CONFIG_SND_SOC_AK4535=m
> CONFIG_SND_SOC_CS4270=m
> CONFIG_SND_SOC_SSM2602=m
> CONFIG_SND_SOC_TLV320AIC23=m
> CONFIG_SND_SOC_TLV320AIC26=m
> CONFIG_SND_SOC_TLV320AIC3X=m
> CONFIG_SND_SOC_UDA1380=m
> CONFIG_SND_SOC_WM8510=m
> CONFIG_SND_SOC_WM8580=m
> CONFIG_SND_SOC_WM8731=m
> CONFIG_SND_SOC_WM8750=m
> CONFIG_SND_SOC_WM8753=m
> CONFIG_SND_SOC_WM8900=m
> CONFIG_SND_SOC_WM8903=m
> CONFIG_SND_SOC_WM8971=m
> CONFIG_SND_SOC_WM8990=m
> # CONFIG_SOUND_PRIME is not set
>
And here is the list of errors from installing snd-dummy.ko
[root@127 drivers]#insmod snd-dummy.ko
Using snd-dummy.ko
snd_dummy: Unknown symbol snd_pcm_lib_free_pages
snd_dummy: Unknown symbol snd_pcm_set_ops
snd_dummy: Unknown symbol snd_ctl_boolean_stereo_info
snd_dummy: Unknown symbol snd_card_new
snd_dummy: Unknown symbol snd_pcm_lib_ioctl
snd_dummy: Unknown symbol snd_pcm_lib_malloc_pages
snd_dummy: Unknown symbol snd_pcm_lib_preallocate_pages_for_all
snd_dummy: Unknown symbol snd_card_free
snd_dummy: Unknown symbol snd_ctl_add
snd_dummy: Unknown symbol snd_pcm_new
snd_dummy: Unknown symbol snd_pcm_suspend_all
snd_dummy: Unknown symbol snd_pcm_period_elapsed
snd_dummy: Unknown symbol snd_card_register
snd_dummy: Unknown symbol snd_pcm_format_set_silence
snd_dummy: Unknown symbol snd_pcm_format_width
snd_dummy: Unknown symbol snd_ctl_new1
insmod: cannot insert `snd-dummy.ko': Unknown symbol in module (-1): No such
fil
e or directory
Best Regards,
Rory
Drumstick is a C++ wrapper around the ALSA library sequencer interface using
Qt4 objects, idioms and style. ALSA sequencer provides software support for
MIDI technology on Linux. Complementary classes for SMF, WRK and OVE file
processing are also included. This library is used in KMetronome, KMidimon and
KMid2, and was formerly known as "aseqmm".
Changes:
* OVE file format support, contributed by Rui Fan
* Optional RealtimeKit support for MIDI input thread
* guiplayer simplified and optimized, with OVE format playback
* Build system fixes: using visibility=hidden if it is available,
exceptions, static build.
Copyright (C) 2009-2010, Pedro Lopez-Cabanillas
License: GPL v2 or later
Project web site
http://sourceforge.net/projects/drumstick
Online documentation
http://drumstick.sourceforge.net/docs/
Downloads
http://sourceforge.net/projects/drumstick/files/
I was going through Paul Davis's excellent tutorial on the
ALSA API:
http://www.equalarea.com/paul/alsa-audio.html#interruptex
I've set alsa to wake me up every N frames. However, when I
awake, I find that I often have fewer than N frames
available:
int err;
uint32_t N = 2048, frames_to_deliver;
assert( 0 == ((N-1)&N) ); /* power of 2 */
/*...*/
snd_pcm_sw_params_set_avail_min (playback_handle, sw_params, N)
/* ... */
while(1) {
err = snd_pcm_wait(playback_handle, 1000);
assert(err >= 0); /* OK */
frames_to_deliver = snd_pcm_avail_update(playback_handle);
assert(frames_to_deliver >= 0); /* OK */
/* this fails about every other cycle: */
assert(frames_to_deliver >= N);
}
E.g. with N = 2048, I'll typically get a stream that looks
like 1996, 2048, 2048, 1990, 2048, 1999, 2048...
Any ideas?
-gabriel
On Thursday 09 September 2010 00:32:18 Olivier Guilyardi wrote:
> On 09/08/2010 11:37 PM, Arnold Krille wrote:
> > http://positron.physik.uni-halle.de/~arnold/fadercolors-system_colors-won
> > ton.png
> > http://positron.physik.uni-halle.de/~arnold/fadercolors-system_colors-ob
> > sidian.png
>
> Sorry but wouldn't it be clearer with tiny level bars, instead of colors?
>
> http://testing.samalyse.com/lad/widgets/numbers.png
> http://testing.samalyse.com/lad/widgets/numbers.svg
Hm.
No. The left-to-right level-bars imply a left-to-right movement to change the
values.
And one of the reasons to do the color-thing is space. If I hide the text and
only show it when the mouse hovers, I can fit a lot of mixing-nodes on screen.
A horizontal (or vertical) bars needs more space to have a comparable
resolution.
I like the idea of hiding the mouse during value-changing moves. I already
have these "sliders" react to the mouse-movement logarithmic. That also helps
a lot when both coarse and fine changes should be possible with similar mouse-
movement.
And somehow I dream of a toolkit where you select a knob/slider/fader and it
then reacts to the turn-knob you have on your desk. But given the variety in
toolkits, I think this is a dream of the distant future unless that big knob
sends out mouse-movement signals...
Have fun,
Arnold
So far, nobody's mentioned how to get to the aforesaid knob in the
first place, or alternatives
to manipulating it.
Navigating with the mouse is a poor second to precise locating, and
using qwerty actions to set values, be it a knob or slider, is more
accurate.
So, tab, or an associated action to get to the knob in the first
place, and something like ALT+ up/down arrows (as an example) to change the knob
value. Then it's irrelevant whether the knob responds to mouse
up/down/left/right, or mouse wheel, for users who find those options
second best, when a more efficient and precise option already exists.
For graduated speed in the case of a spin knob (starting slow and
getting faster), the user only needs to
keep the actions pressed.
Alex.
--
www.openoctave.org
midi-subscribe(a)openoctave.org
development-subscribe(a)openoctave.org
Hello
EMutrix is a simple, easy-to-use graphical mixer application for EMU
1010 based cards like the E-MU 1212m, E-Mu 1616m and E-MU 1820 models.
I am releasing the first source package of EMutrix, version 0.1 at
http://emutrix.googlecode.com
It is mostly functional, allowing arbitrary routing between the card's
multiple inputs, outputs and ALSA, setting clock rate and pads. More
features to come in future versions. Try it out if you have an E-Mu
card!
Any comments welcome.
Greetings,
Camilo
After many month of development, we are proud to announce the version
0.6 beta of jMax Phoenix.
The major highlights for this version are:
- A first version of the puredata source compatibility kit, including
the build system and a full example of recompiled object library.
- A large set of usability bug fixed; all the bugs preventing a
smooth work flow have been fixed.
- Error handling improvements: most of the bugs and configuration
errors now results in error messages, and not unexplained freezes.
- A set of examples and tutorials has been recovered from old ISPW
archives; they are not updated to include all the major jMax
functionalities, but it is better than nothing.
Full release notes are available in the release notes section of the
projet site.
This release has been tested on Ubuntu and Ubuntu Studio 10.04, Debian
5, Fedora 13 and Mandriva Spring 2010; check the installation
instruction on the projet site for specific caveats for Debian and Fedora.
The Puredata compatibility sub-project has been *very* time consuming;
in order to better manage my scarce time resources,
we need some user feedback (and possibly help) to be able to evaluate
the actual interest of pursuing this development direction.
For more information and download and installation instructions go to
http://www.jmax-phoenix.org/.
For contacting the project team: contact(a)jmax-phoenix.org
The jMax Phoenix team
Thank you very much for your advice everyone.
As mentioned I have already made the LADSPA plugin and tested it with PulseAudio, so I will take a look at the PulseAudio LADSPA plugin module loader and see if I can add the functionality I need (multichannel audio and detection of when headphones are plugged in). Then I will see how it goes from there.
/Kim