On Thursday 08 November 2007, Nedko Arnaudov wrote:
[...]
> The point is that some plugins need *realtime safe* memory
> allocation.
Well, yes; that part is quite obvious.
What I meant was, if all the host provides is a pool of uniformly
sized chunks that are allocated when the plugin is initialized, there
doesn't seem to be much point in implementing it on the host side.
The naïve host side implementatio would add exactly nothing, compared
to plugins just allocating their own pools during initialization.
A proper real time manager, with arbitrary chunk sizes, would be more
motivated, as it adds functionality that plugins can't implement
internally; namely a shared memory pool.
> I
> need this functionality for lv2zynadd plugin (like arbitrary voices
> count allocation)
The "standard" solution is to pre-allocate and pre-initialize voice
structures for a fixed maximum polyphony.
Obviously, this becomes troublesome with modular synths and the like,
where the "voice structure" doesn't have a fixed size.
One solution is to allocate the voice pool as a response to "program
change" events. Of course, this makes the "programe change" operation
non real time safe, but it usually is anyway, due to samples being
loaded from disk and stuff. Many systems, both hardware and software,
are based entirely on the idea that patch loading is part of
setup/initialization, as that is often the only practical solution.
It's really only entirely ROM based synths (or "small fixed sample
set", in the case of software), virtual analog synths and the like
that *can* implement real time safe "program change" at all.
> and for lv2dynparam plugin library internal
> operation too.
It needs to "regroup" internally as a response to certain parameter
changes?
> There were rumors in #lad that such functionality may be useful
> without lv2dynparam extension.
Well, yes; real time safe dynamic memory management can make life a
lot easier for some types of plugins, and/or reduce memory
requirements by having a shared pool. However, I think it needs to be
more generic than just a pool of fixed size chunks for the "shared
pool" part to be viable.
[...]
> That reminds me that LV2 may need a way to specify optional features
> that interdepend. I.e. features (extensions) A and B are both
> optional but if A is provided B is required. Of course plugin can
> check this explicitly on instantiate and refuse to use feature, but
> I'm not sure how vital is such approach.
Haven't really thought about this... Isn't it just a matter of plugins
and hosts listing *all* extensions? I mean, if you provide or ask for
this feature A, but not feature B, you have a bug. An automatic
validation tool would trap this right away - but of course,
someone/something has to tell the *tool* about these extension
interdependencies...
//David Olofson - Programmer, Composer, Open Source Advocate
.------- http://olofson.net - Games, SDL examples -------.
| http://zeespace.net - 2.5D rendering engine |
| http://audiality.org - Music/audio engine |
| http://eel.olofson.net - Real time scripting |
'-- http://www.reologica.se - Rheology instrumentation --'
e
i'm using cheap Terratec Aureon 5.1 USB MKII and i'm happy that
through jack i can use 3 output channels coz it supports surround... do
you guys know of some PCI sound card (cheap?) which will have more
than 3 output channels?
i would like to build linux sound box as sooperlooper[1] with topot[2]
which i'm (together with marijn[3]) working on works great.. with more
output channels i can separately send loops to external effect
boxes...
thanx
[1] http://essej.net/sooperlooper/
[2] https://savannah.nongnu.org/projects/topot
[3] http://eloquentjavascript.net/
Purpose of this LV2 extension is to standardize realtime safe
allocations in a plugin. Plan is, host to provide functions that plugin
can call. Pointers to functions are provided through host
feature. Only memory pool (fixed chunk size) functionality is
defined.
Attached is early draft of the header. Doxygen generated from it
documentation is available at:
http://svn.gna.org/viewcvs/*checkout*/lv2dynparam/website/doxygen/lv2__rtme…
Any comments are welcome. In particular about whether general purpose
allocator (arbitrary memory chunk size) should be part of this same
extension.
--
Nedko Arnaudov <GnuPG KeyID: DE1716B0>
I am proud to announce that AlsaPlayer-0.99.80 got stable, thanks to the hard
work of every one that contributed to the GTK2 interface and other functions,
as well that by submitting/fixing bugs.
This release is a bug fixes release.
See the ChangeLog for the details: http://www.alsaplayer.org/changelog.php3
Every user is encouraged to upgrade:
http://sourceforge.net/project/showfiles.php?group_id=249
If you want to help by submitting bugs or contributing artwork and code, look
at the website: http://www.alsaplayer.org/main.php3
Ciao,
Dominique
Given a sample clip, I would like to be able to find in another audio file a
part that sounds similar to the clip. So for example, given a cymbal sample,
I would like to be able to find a part of an audio file that sounds similar
to a cymbal. I am not interested in beat detection, but rather just getting
a single slice.
Having only a basic grasp of digital audio theory I am wondering what
algorithms would be applicable for this situation. I am also new to Linux
audio, so I would appreciate any pointers to libraries that provide this
functionality or means to implement it myself.
Somehat off-topic, but at least it's about systems to be
used for audio exclusively...
Help !
I'm struggling to get 5 computers running F7 configured.
In the Gnome destop there's the app that lets you configure
the firewall and selinux. It asks for the root password
so I assume that when that's given I can do what I like.
But everything I modify there (adding allowed ports for
some networked audio apps) is silently ignored. Same if
I try to disable the firewall.
I must be ignoring something very simple...
--
FA
Laboratorio di Acustica ed Elettroacustica
Parma, Italia
Lascia la spina, cogli la rosa.
Ken Restivo <ken(a)restivo.org> writes:
> On Sat, Oct 27,
> 2007 at 04:40:59PM +0300, Nedko Arnaudov wrote:
>> a2jmidid is daemon for exposing legacy ALSA sequencer applications
>> in JACK MIDI system. It is based on jack-alsamidi-0.5 (jackd alsa
>> seq midi backend) by Dmitry Baikov. The main purpose is to ease
>> usage of legacy, not JACK-ified apps, in JACK MIDI enabled systems.
[snip]
> Now, just to make sure I understand: this is for people who are using
> released versions of jackd that *do* suppport JACK MIDI (i.e 0.103.0),
> but aren't using the lastest jackd from SVN which has suport for the
> -X option to do this functionality within jackd, correct?
It will help them, but not with hardware ALSA seq MIDI ports, because
currently a2jmidid ignores them. This can be fixed easily in code until
a2jmidid gets more configurable.
> Once there's a new jackd release, with the -X option, will this too be
> needed anymore?
It will still be needed for users that want using raw ALSA MIDI backend
(and skipping additional ALSA sequencer layer). This is setup I have
here, I use -X raw but I still need connecting legacy ALSA MIDI apps to
JACK MIDI apps.
Althrough not intentional, it may help for JACK drivers that don't
support JACK MIDI nativily yet. IIRC JACK MIDI ffado driver support is
not ready yet.
--
Nedko Arnaudov <GnuPG KeyID: DE1716B0>
a2jmidid is daemon for exposing legacy ALSA sequencer applications in
JACK MIDI system. It is based on jack-alsamidi-0.5 (jackd alsa seq midi
backend) by Dmitry Baikov. The main purpose is to ease usage of legacy,
not JACK-ified apps, in JACK MIDI enabled systems.
New in this release is addition of configure script (autotools) that
enables compatibility with different JACK MIDI API variants.
Planned features/improvements:
* One JACK client per ALSA sequencer client
* More control on what ports to bridge (currently bridging is fixed to
non-hardware ports).
* Real daemonization with log file, init.d script, etc.
If someone wants to contribute please, contact me, or send patches, or
request inclusion (Gna! a2jmidid project). As usual, packagers are more
than welcome too.
Homepage with screenshots: http://home.gna.org/a2jmidid/
Tarball download: http://download.gna.org/a2jmidid/
--
Nedko Arnaudov <GnuPG KeyID: DE1716B0>
Here is a tiny patch to improve japa-0.2.1 colors customizability.
I created it to achieve outlook that can be seen here:
http://nedko.arnaudov.name/soft/japa-0.2.1-colors.png
I'm also attaching configuration file I use to achieve the outlook.
FYI, example conf file is missing from 0.2.x tarballs, despite of what
is said in the README.
--
Nedko Arnaudov <GnuPG KeyID: DE1716B0>
hi,
sorry for off-topic post. I have a Hoontech DSP 2000 (Envy24) based soundcard.
It works fine with the Envy24 control utility and also to some extend with the
gnome-volume-control (gnome-mixer). One annoyance is that there is no master
volume. I've routed PCM1/2 to the digital mixer but fail to find any control for
digital mixers master volume. Did anyone had more luck with this?
Stefan