On Friday 06 January 2012, you wrote:
> btw: is there a way to list available clients/ports from the api.
> I know that aconnect -i / -o does this, but is there a c/c++ function?
>
> Dave
The functions are: snd_seq_query_next_client() and snd_seq_query_next_port();
you need to loop calling these functions while they return a correct answer.
For instance, this is the relevant code in "aconnect.c" :
static void do_search_port(snd_seq_t *seq, int perm, action_func_t do_action)
{
snd_seq_client_info_t *cinfo;
snd_seq_port_info_t *pinfo;
int count;
snd_seq_client_info_alloca(&cinfo);
snd_seq_port_info_alloca(&pinfo);
snd_seq_client_info_set_client(cinfo, -1);
while (snd_seq_query_next_client(seq, cinfo) >= 0) {
/* reset query info */
snd_seq_port_info_set_client(pinfo,
snd_seq_client_info_get_client(cinfo));
snd_seq_port_info_set_port(pinfo, -1);
count = 0;
while (snd_seq_query_next_port(seq, pinfo) >= 0) {
if (check_permission(pinfo, perm)) {
do_action(seq, cinfo, pinfo, count);
count++;
}
}
}
}
See:
http://git.alsa-project.org/?p=alsa-utils.git;a=blob;f=seq/aconnect/aconnec…
I guess you already know the reference documentation site:
http://www.alsa-project.org/alsa-doc/alsa-lib/seq.html
Just for comparison, a similar enumeration using Drumstick looks like this:
QListIterator<PortInfo> it(m_Client->getAvailableOutputs());
while(it.hasNext()) {
PortInfo p = it.next();
cout << p.getClientName() << ":" << p.getPort();
}
See Drumstick's example "drumgrid":
http://drumstick.sourceforge.net/docs/drumgrid.cpp-example.html
Regards,
Pedro
Hi!
I was recently helping a small Dutch radio station run by volunteers to
set up their new studio.
It's a modular system with a 16 I/O firewire card:
http://www.d-r.nl/AXUM/AXUM.htm
We managed to support it in FFADO. The playback software runs on a
virtualised Windows machine that's talking to jackd via netjack (no idea
which one, the one with multicast and netmanager), so we can address
four individual stereo pairs.
This whole netjack thing isn't very stable, so the playback software
should be replaced by some native Linux client. Here's a screenshot of
the current Windows solution:
http://adi.loris.tv/radio.png
It is basically a set of four remotely controlled winamps (with ASIO
output plugin to talk to jackd) and a directory browser per player.
So "Jingles", "Muziek" and "Bladeren" are just shortcuts to directories
with media files, the drop-down menu on the left contains a list of even
more directories.
The filter is used for pattern matching.
Questions: Are you aware of any Linux solution that comes close to this?
If not, any recommendations if one would want to create such a four-deck
player? Leveraging VLC, mplayer, gstreamer?
This is surely going to be open source, so whoever is interested, feel
free to participate.
Cheers
Hi there,
Does anyone have Steve Harris' new email address? steve(a)plugin.org.uk
fails with "550 5.1.2 Bad destination system address".
Anyway, some of you who package or copied code from meterbridge may be
interested in this as well.
-=-=-=-=-
Hi Steve,
Haven't seen you around much on LAD. I hope this email finds you well.
Are you still maintaining meterbridge? I've stumbled over a bug in 0.9.2
The IEC scale is not continuous. Attached patch resolves the issue.
I don't have access to the IEC-268-18 specs, so I can't tell if the
patch is correct, but it does fix the discontinuity between -60db and
-50db. To make it obvious, here's the annotated iec_scale(float db):
if (db < -70.0f) {
def = 0.0f;
} else if (db < -60.0f) {
def = (db + 70.0f) * 0.25f; // 0.0 .. 2.5
} else if (db < -50.0f) {
// def = (db + 60.0f) * 0.5f + 5.0f; // 5.0 .. 10.0 // bug? v0.9.2
def = (db + 60.0f) * 0.5f + 2.5f; // 2.5 .. 7.5 // fix!
} else if (db < -40.0f) {
def = (db + 50.0f) * 0.75f + 7.5; // 7.5 .. 15.0
} else if (db < -30.0f) {
def = (db + 40.0f) * 1.5f + 15.0f; // 15.0 .. 30.0
} else if (db < -20.0f) {
def = (db + 30.0f) * 2.0f + 30.0f; // 30.0 .. 50.0
} else if (db < 0.0f) {
def = (db + 20.0f) * 2.5f + 50.0f; // 50.0 .. 100.0
} else {
def = 100.0f;
}
Furthermore, the DPM image has a couple of problems:
The markers at -10, -19, -20, -25, -30, -35, -55 are off by one pixel
(they need to be moved 1px down), the -45db marker is correct.
The marks for -40, and -50 are missing and it's easy to mistake the
-45db and -55db marks to correspond to the -40db, -50db annotations.
Last but not least, the minus-signs of all annotation does not align
with the marks and the font used for the annotation text is somewhat
blurry..
All fixed in attached image.
Cheers!
robin
Folks,
Is there a Linux program out there that i can throw a wave file at that
will tell me what the lowest and highest frequencies are in it, where
they are and at what dB they occur?
I was listening to some dubstep today and wondering how low it really
went. I would bet that most of the "bassy" music i have doesn't even go
below 30 hz.
Thanks,
Bearcat
- sorry for crossposting -
Hi all
The winners of the Hydrogen Drumkit Contest have just been announced on the
Hydrogen site !
Check out the announcement
<http://www.hydrogen-music.org/hcms/node/2327>and listen to the demo
songs of the submitted drumkits.
A big thank you to all the people that submitted a drumkit and to the jury !
Enjoy :-)
The Hydrogen team
As you may know from the other sampling thread here on this list I have written several emails to sample developers over the last two days and suggested CC-By-Sa as sampling license.
Clearly the intention of sample developers, they all write it in their currenct licenses, is that the resulting music is not part of the samples license. e.g. it is not considered a derived work.
But for Creative Commons ShareAlike? Is music a derived work from samples under cc-by-sa?
If yes I made a dumb error which could have negative impact on further talk with those developers since I was obviously talking about things I didn't know enough about.
Also if yes: Is there even a pre-packaged license that allows:
-Music or other resulting works are not derived works and the following conditions do not apply to the music itself.
-Sharing the sample packages is allowed
-Editing, Repackaging (sf2->sfz) etc. is allowed
-Selling the sample package itself is allowed or not (two different flavours)
Nils
For a few years I have used an Atom UMPC as my "mobile development
terminal", allowing me to build and run code at much lower performance
than I would expect from a "real" system but good enough for working on
new bits of code and finding performance bottlenecks :)
I am migrating over to a Nexus 7 with a Debian chroot environment and
tightvnc for display. This is working great for most things. The last
bit is to be able to run jackd so I can actually test audio parts of the
programs I work on the most.
I don't care about latency, or even xruns. This isn't for production
use. I just want to be able to exercise the jack client library, make
connections, and hopefully get SOME audio output. The current problem I
am having is that sys V shared mem API is not supported.
$ jackd -d alsa
jackdmp 1.9.9
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2012 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK semaphore error: semget creation (Function not implemented)
jack_shm_lock_registry fails...
No access to shm registry
Failed to open server
Has anybody done anything like what I'm working toward? Any workarounds
for missing shm API?
Thanks.
Bill Gribble
Hi
Kinda new to linux audio and still a bit new to dev generally and I'm
trying to understand the basis of linux audio.
By that, I mean the ALSA API :
I would like to use the PCM interface and the mixer interface to mix 2
sounds and understand the real meaning of a mixer used in the Audio
Architectures.
For now I understood that the mixer interface uses the High level control
interface (hcontrol), which uses basic kernel modules.
I was wondering if anyone had some docs or examples of a program that uses
the mixer interface ?
Thanks
--
Alex
> I think the most reasonable standard for an absolute 1/oct
> frequency unit is 0.0 = 440Hz
My modular plugins use a reference of 440Hz. Also parameters are ranged
between 0.0 - 10.0 but can exceed that if need be. (in a modular synth,
everything needs to interoperate).
So for frequency 5.0 is 440Hz (Middle-A). i.e. the middle of the range -
5.0, is the standard 'middle' key.
Great idea though. Octaves are far more universal than western semitones,
yet trivial to convert between. 440Hz is a good choice.
Best Regards,
Jeff
Hello everyone!
I have something not realted to Linux. It's mainly how to read a few things.
Anyone knowledgeable about fourier-transformation in general here, who might
wish to help me?
Background is a university exam, that I have to take, but only having had
the script and not having found the right information anywhere else, I'd like
to know, how to read/speak a few things mainly.
Thank you for being with me so far.
Kindest regards
Julien
050e010d0f12010401-0405-0d09-030f12011a0f0d-
Such Is Life: Very Intensely Adorable;
Free And Jubilating Amazement Revels, Dancing On - FLOWERS!
******** Find some music at ********
http://juliencoder.de/nama/music.html
---------------------------------------------------------------
"If you live to be 100, I hope I live to be 95 and 37 days,
so I can be sure, there's someone at your site, who loves you."
(Not Winnie the Puh)