[linux-audio-dev] meterbridge 0.0.4

Joern Nettingsmeier nettings at folkwang-hochschule.de
Mon Sep 30 12:04:00 UTC 2002


Steve Harris wrote:
> 
> Now supports connecting to input ports and you can control the number of
> columns of meters with -c, -c 1 will give you a vertical strip.
> 
> http://plugin.org.uk/meterbridge/meterbridge-0.0.4.tar.gz

either it is not really compressed, or my browser performed some
magic...
anyway, "tar xvf" worked for me.

some observations:

output metering works fine.

when i start an instance of meters jackd sometimes complains:
	cannot create new client; bridge already exists
	cannot complete new client connection process

(i must confess my system still drops out every 2 secs, so i may be
missing so many deadlines that even otherwise well-behaved jack clients
choke...)

i also found it's advisable to re-start jack after a meter crash,
otherwise things get fishy (alsaplayer loses its jack connection during
meter startup and there are random crashes of jackd, alsaplayer and
meters).
with a clean jack, i was able to get 12 stereo meters on 2 ports before
i got bored :)

the restoring of connections on exit succeeds almost always except when
it segfaults (which i can't seem to reproduce reliably). i closed some
of my 12 meters in random order, and the port connections were always
restored correctly. only sometimes it makes alsaplayer time out and
reconnect to jack, and all meters freeze - is that what one would expect
when the source is gone, or should they just drop to zero ?

one minor problem: when you have multiple meters running and "killall"
them, things seem to happen in the wrong order, i.e. the port chain
breaks. but i don't see how meterbridge could avoid that, unless there
is a way to make the port restoration atomic.

the input however i can't seem to get to work at all. it comes up,
displays a signal for maybe half a second, then bails out:
# meterbridge -t dpm  alsa_pcm:in_1 alsa_pcm:in_2
Registering as bridge
engine has shut down socket; thread exiting

here's what little i can do with gdb:

(gdb) run -t dpm alsa_pcm:in_1 alsa_pcm:in_2
Starting program: /usr/local/bin/meterbridge -t dpm alsa_pcm:in_1
alsa_pcm:in_2
[New Thread 1024 (LWP 3450)]
Registering as bridge
[New Thread 2049 (LWP 3451)]
[New Thread 1026 (LWP 3452)]
[New Thread 2051 (LWP 3453)]
engine has shut down socket; thread exiting

Program received signal SIGINT, Interrupt.
[Switching to Thread 1024 (LWP 3450)]
0x401f0d6e in select () from /lib/libc.so.6
(gdb) info threads
  3 Thread 1026 (LWP 3452)  0x401f0d6e in select () from /lib/libc.so.6
  2 Thread 2049 (LWP 3451)  0x401ef4ca in poll () from /lib/libc.so.6
* 1 Thread 1024 (LWP 3450)  0x401f0d6e in select () from /lib/libc.so.6
(gdb) thread 1
[Switching to thread 1 (Thread 1024 (LWP 3450))]#0  0x401f0d6e in select
()
   from /lib/libc.so.6
(gdb) where
#0  0x401f0d6e in select () from /lib/libc.so.6
#1  0x400eaf54 in __DTOR_END__ () from /usr/lib/libSDL-1.2.so.0
#2  0x400d44c6 in SDL_WaitEvent () from /usr/lib/libSDL-1.2.so.0
#3  0x08049840 in main (argc=5, argv=0xbffff614) at main.c:212
#4  0x4013c9ed in __libc_start_main () from /lib/libc.so.6
(gdb) thread 2
[Switching to thread 2 (Thread 2049 (LWP 3451))]#0  0x401ef4ca in poll
()
   from /lib/libc.so.6
(gdb) where
#0  0x401ef4ca in poll () from /lib/libc.so.6
#1  0x4007eb40 in __pthread_manager () from /lib/libpthread.so.0
#2  0x4007ed68 in __pthread_manager_event () from /lib/libpthread.so.0
(gdb) thread 3
[Switching to thread 3 (Thread 1026 (LWP 3452))]#0  0x401f0d6e in select
()
   from /lib/libc.so.6
(gdb) where
#0  0x401f0d6e in select () from /lib/libc.so.6
#1  0x400eaf54 in __DTOR_END__ () from /usr/lib/libSDL-1.2.so.0
#2  0x0804aea2 in gfx_thread_dpm (foo=0x0) at dpm_meters.c:84
#3  0x400da0e7 in SDL_RunThread () from /usr/lib/libSDL-1.2.so.0
#4  0x400da2ee in RunThread () from /usr/lib/libSDL-1.2.so.0
#5  0x4007ee67 in pthread_start_thread () from /lib/libpthread.so.0
#6  0x4007eeb5 in pthread_start_thread_event () from
/lib/libpthread.so.0


> Input monitoring "works" by disconnecting everything from the port,
> connecting it to the meter in and connecting the monitor out of the meter
> to the original port. When it quits it tries to put things back the way
> they should be, but it might not always get it right.
> 
> If you run too many (8+) then things start to get dodgy, jack carries on
> running, but you can't quit meters. I don't know why.

can't reproduce this.
 
> Thanks to Joern and Gerd for testing the extra-alpha versions, and Kai for
> fixing the autoconf mess.

i guess we really ruined your day on #lad yesterday >;->

best,

jörn



-- 
Jörn Nettingsmeier     
Kurfürstenstr 49, 45138 Essen, Germany      
http://spunk.dnsalias.org (my server)
http://www.linuxdj.com/audio/lad/ (Linux Audio Developers)



More information about the Linux-audio-dev mailing list