>1- GUI programming, and interface/audio syncronization. As well as I can
>Is it accepted to lock in cases where a destructive operation is being
>performed?
As far as I am concerned it is never acceptable for a regular thread to
lock an rt thread for exactly the reason you mention: priority inversion
deadlock. You forgot to mention one other method for achieving this
communication; System V ipc messages, which i prefer because they don't
lock (if used right) and they are simple. See the man pages for msgget,
msgsnd, msgrcv.
>3-Host instruments. I remember some discussion on XAP a while ago,...
I think that LADSPA plugins can be used as softsynths to good effect.
LADSPA hint # 0x2C0 (LADSPA_HINT_DEFAULT_440) allows for a plugin to be
pitch controlled. This is not as fancy as other plugin api's but it
works and I think we will see more and more use of it. Using a LADSPA
plugin as a softsynth requires a decent amount of work on the part of
the host: each LADSPA plugin instance is only one voice and polyphony
must be handled by the host. However, there are now hosts out there that
have the framework to handle this.
>4-Interface abstraction for plugins.: We all know how our lovely X11..
>Steve Harris proposed the use of (rdf was it?),
Steve Harris' lib-rdf is available:
http://plugin.org.uk//lrdf/
but i have not used it and can not say anything useful about it. It is
used by ardour though.
-jacob robbins.....
Well okay I did it.
It works! And looks perfect. And more usable.
And I have seen channel numbers 0., 0/(M) and 00
and coredump in 10 seconds after that.
anyways thanks for making such a cool program!
nikodimka.
__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com
Correct. bad moc.
I have already figured this out.
"just send compiler error to google and you know whats wrong".
maybe you should not use plain moc command in SConstruct, but with full path prefix.
10x,
nikodimka
PS: I am still unable to compile, but I keep moving in that direction.
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
Hello LADs!
I am trying to build cheestracker 0.8.0
on debian-stable, g++-2.95, with custom installed qt3
and getting trouble.
here's how the make log looks like:
=================================8<=================
scons .
scons: Reading SConscript files ...
Detecting if PKG-CONFIG is installed...
0.11.0
pkg-config found!
Checking for libsigc++-1.2...
1.2.5
libsigc++-1.2 found!
QT Check:
$QTDIR exists at, using QTDIR instead of harcdoded pathlist /export/qt3/
Looking for QT 3.x Includes:
/export/qt3//include/qt
Checking QT version..
#define QT_VERSION_STR "3.0.3"
Looking for QT 3.x Libraries:
using: -lqt-L/export/qt3//lib
Looking for QT 3.x 'moc' Binary:
moc command: /export/qt3//bin/moc
QT was found!
Detecting if OSS exists on the system..
OSS was found.
Dependency check successful, writing cache
MOC check: property_bridge_edit.h
MOC check: cspinbutton.h
MOC check: ccolor_bridge.h
MOC check: ccolor_list.h
MOC check: font_bridge.h
MOC check: keyboard_input_config.h
MOC check: audio_config.h
MOC check: sample_editor.h
MOC check: sample_editor_format.h
MOC check: sample_viewer.h
MOC check: sample_viewer_zoom.h
MOC check: envelope_point_editor.h
MOC check: envelope_editor.h
MOC check: resampler_config.h
MOC check: note_bridge.h
MOC check: sample_editor_clipboard.h
MOC check: sample_editor_effects.h
MOC check: pattern_edit.h
MOC check: pattern_edit_widget.h
MOC check: sample_edit.h
MOC check: instrument_edit.h
MOC check: interface.h
MOC check: order_and_defaults_editor.h
MOC check: variables_edit.h
MOC check: mdi_main_window.h
mdi_main_window.h:201: Warning: Variable as signal or slot.
['sigc-1.2']
scons: done reading SConscript files.
scons: Building targets ...
c++ -I/export/local/lib/sigc++-1.2/include -I/export/local/include/sigc++-1.2 -D
POSIX_ENABLED -O3 -ffast-math -DOSS_ENABLED -Icommon/ -Icommon/defines/ -Icommon
/components/data -I/export/qt3//include/qt -Icommon -I. -Icommon/defines -c -o c
ommon/interface__QT/audio/moc__audio_config.o common/interface__QT/audio/moc__au
dio_config.cpp
common/interface__QT/audio/moc__audio_config.cpp:30: no `void Audio_Config::init
MetaObject()' member function declared in class `Audio_Config'
common/interface__QT/audio/moc__audio_config.cpp: In method `void Audio_Config::
initMetaObject()':
common/interface__QT/audio/moc__audio_config.cpp:34: implicit declaration of fun
ction `int badSuperclassWarning(...)'
common/interface__QT/audio/moc__audio_config.cpp: At top level:
common/interface__QT/audio/moc__audio_config.cpp:41: prototype for `class QStrin
g Audio_Config::tr(const char *)' does not match any in class `Audio_Config'
common/interface__QT/audio/audio_config.h:41: candidate is: static class QString
Audio_Config::tr(const char *, const char * = 0)
common/interface__QT/audio/moc__audio_config.cpp: In function `static class QMet
aObject * Audio_Config::staticMetaObject()':
common/interface__QT/audio/moc__audio_config.cpp:95: no method `QMetaObject::new
_metadata'
common/interface__QT/audio/moc__audio_config.cpp:96: no method `QMetaObject::new
_metaaccess'
common/interface__QT/audio/moc__audio_config.cpp:98: `struct QMetaData' has no m
ember named `ptr'
common/interface__QT/audio/moc__audio_config.cpp:98: `QMember' undeclared (first
use this function)
common/interface__QT/audio/moc__audio_config.cpp:98: (Each undeclared identifier
is reported only once
common/interface__QT/audio/moc__audio_config.cpp:98: for each function it appear
s in.)
common/interface__QT/audio/moc__audio_config.cpp:98: parse error before `;'
common/interface__QT/audio/moc__audio_config.cpp:101: `struct QMetaData' has no
member named `ptr'
multiple parse errors follow.
nikodimka
__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com
Hello,
I have been doing some tests with OpenAFS, and it hangs on me
frequently. On the OpenAFS I found out that this is very likely
caused by the preemptible patch. Knowing that a lot of people
around here are using that patch, I'd like to ask if any of you
have experienced the same, and know of a solution, or an alter-
native that NFS which would work well with low latency kernels.
Maarten
Hi!
First Release.
gmorgan is a .. Rhythm Station, an organ with auto-accompaniment. Uses MIDI
and the ALSA sequencer for play the rhythm patterns. Styles, patterns and
sounds, the mixer settings, can be edited and saved.
Tested on Gentoo, debian PIII 933 and PII 300
REQUERIMENTS
--------------------------
Linux
ALSA
Fltk
Take a look at http://personal.telefonica.terra.es/web/soudfontcombi/
And please ... if you enjoy this prog and wants to share patterns, send me,
and i will include in future versions, i have a large TODO, and i need some
help.
Josep
Could anyone check the shmserver.tar.gz, compile it, and test
if you have the same problem? Additional instructions below.
I have though about why the shared memory freezes. It could be
that Linux copies the shared memory pages for each client:
one shared memory segment, multiple copies. Would locking
the memory help? Maybe, maybe not.
I know there are high performance applications using the shared
memory well (at least their authors may think so). But so does
my own alsashmrec works well too (so I thought). If there indeed
is a severe (a minor?) problem in the kernel, then in all these
application it may cause very short freezes (until read, write,
sleep, suspend, etc. call releases it). A jitter in updating
lock-free FIFOs on shared memory.
If you don't get it or otherwise cannot find out what is going on,
then where I should post this? Is there a list where the kernel
and shared memory experts are reading?
And hey, why shmget did not work? See shmalloc_named_get().
Best regards,
Juhana
Additional instructions and the previous mail.
1. Compile it without sleep(1) [ as in code below ] and without
fprintf with ggg's [ one could change that to "g" so that
screen does not go too fast ].
Then compile and test with sleep, and then test with fprintf with
"g".
2. First run shmserver in a terminal. Copy the mid value
(second value printed).
3. Then run shmclient in another terminal. Paste the mid value:
% shmclient <midvalue>
>From: Juhana Sadeharju <kouhia(a)nic.funet.fi>
>To: linux-audio-dev(a)music.columbia.edu
>Subject:
>Date: Fri, 4 Jul 2003 16:46:25 +0300
>Reply-To: linux-audio-dev(a)music.columbia.edu
>
>>From: Ralfs Kurmis <kurmisk(a)inbox.lv>
>>
>>Try out this example
>>Split it in seperate files
>>( Needs x )
>
>Hello. Thanks for the example, but I see some problems there:
>if the second process does not find the segment given by the key,
>you example makes two distinct segments. That is what happen with
>me. Because I don't have IPC_CREAT in the second process, my
>program simply fails instead of creating second segment.
>
>I got it working otherway, but there are severe problems.
>In client, I simply skipped the shmget() and queried
>immediately the segment with shmat() with the mid value
>printed by the server.
>
>The example mailed here used shmget() with IPC_CREAT.
>When I used IPC_CREAT for both server and client, as I expected,
>I got two separate shared memories. In fact, as I make the shared
>memory in shmserver which is run first, the shmclient should not use
>IPC_CREAT at all.
>
>It works, but while the server seems to fill the shared memory
>with increasing integer numbers, the client behaves strangely.
>I have this code in shmclient now:
>
> k = -1;
> for (;;) {
> if (k != nums[1]) {
> k = nums[1];
> fprintf(stderr,"%i\n",k);
> }
> // sleep(1);
> // fprintf(stderr,"ggggg\n");
> }
>
>What should it do? It should ideally print the increasing numbers:
>5435, 5436, 5437, etc. With sleep(1) it prints a new value once per
>second. However, without sleep(1), it prints only one number and then
>does not print anything anymore. It looks like Linux does not update
>the shared memory, why?
>
>When the "ggggg" is printed (without sleep), the shmclient prints only
>one number and repeatedly the "ggggg". Why the shared memory is not
>updated in this? I remember I had a similar problem with old XWave
>software at 1998 with much earlier kernel version (now I have 2.4.18 of
>RedHat 7.3).
>
>This looks serious problem. It may be that nobody has noticed
>it because either one uses sleep() or read()/write() in an
>audio system. That is, your software may work, but the problem
>may degrage the performance (as it certainly did freeze the
>printing in my shmclient). Perhaps the problem may cause an audio
>engine never work as fully as possible.
>
>If you get the shmclient work while the sleep(1) is commented out,
>please let me know :-)
>
>http://www.funet.fi/~kouhia/shmserver.tar.gz
Hello all,
I've been working on VLevel, a LADSPA plugin to keep me from having to
fiddle with the volume, and it's now in a useful state, so I'm looking
for some feedback. Basically, VLevel keeps track of the peak
amplitudes, and adjusts the volume smoothly to make the quiet parts
louder. Since it looks ahead a few seconds, the gain change is always
smooth.
<http://vlevel.sourceforge.net>
VLevel is written in C++. I have two questions. First, why do most
other plugins allocate and free copies of their strings and structures,
instead of just passing the literal (as I do)? The declarations in
ladspa.h don't allow the host to modify what the pointers reference.
Second, I keep a buffer of length n in my code, so the first n seconds
of data I return is useless, and after the audio is sent, I need n more
seconds of input before all the audio is returned. Is there any way of
informing the host about this?
In the future I plan to make some performance improvements, and perhaps
a nice cross-platform GUI for applying VLevel to files. I may also try
to get XMMS-LADSPA to save its state, which would be very useful to me.
I suppose VLevel could use RMS or a psychoacoustic model to estimate
volume, but that would make it very complex, and more difficult to avoid
clipping. Despite that, it serves my purpose, to play classical music
on the road, quite well.
Have fun,
--
Tom Felker <tcfelker(a)mtco.com>