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
Happy New Year!
Yes, your eyes are working correctly. This is v0.14.96. Some things
are worth the wait. I know it's been a while, but I haven't forgotton
about PHASEX... just had to put it on the back burner for some time
while life moves on. After more troubles than I'd like to go into
detail about with the old server, old hosting arrangement, the old
bug-ridden codebase, old laptop, and life in general, I've come back
to "finish" what I've started (as if software projects ever "finish"
these days...). Over the past eleven months, I've taken the time to
overhaul most aspects of the PHASEX source code. After two failed
attempts at going multitimbral, and two mishaps with the laptop dev
tree and was supposed to be v0.12.0, I decided to bump the version
twice, start the new development with v0.14.x, and move on. Here's
the short list of what's new since v0.12.x:
New Features:
- Multitimbral (1 thread per part).
- Session bank (very much like the patch bank).
- Jack Session.
- Stereo- and Multi- outputs for JACK.
- ALSA PCM audio.
- JACK MIDI.
- ALSA Raw MIDI.
- Generic MIDI (/dev/midi support).
- MIDI clock for timestamping and queuing events.
- Active Sensing.
- New oscillator waveforms.
- Portamento for Osc Transpose events.
- FM oscillator latching.
- New LFO parameters.
- Moog (24db/octave) filter.
- Fast fade-out mono retriggering.
- Interpolated oscillator table lookups.
- Ability to run with no GUI.
- JACK MIDI / ALSA Raw / ALSA Seq connections in menus.
- Widescreen layout mode.
- New preferences dialog w/ nearly all settings.
- New knobs.
- Pure 64-bit math in builds with --enable-cpu-power=4.
New Features from Anton Kormakov:
- LASH.
- MIDI Hold pedal.
- JACK Transport.
Bugs Removed and/or Squashed:
- The "bad PHASEX noise" is gone.
- GUI widget sensitivity is fixed.
- Notebook tabs behave properly (and quickly).
- Patch loading bugs are gone.
- MIDI program change works dependably.
- Spurious envelope triggering pops are gone.
- Offsets for neg. filter env. now calculated properly.
- Chopped portamento slides are fixed.
- Keytriggering for all keymodes is fixed.
- Voice stealing works as expected.
- Chorus phase balance issues have been corrected.
- System lockup on shutdown is a thing of the past.
- Denormals don't eat up all the CPU anymore.
Code Overhaul:
- Build system overhaul.
- Reorganization of source code.
- Rebuilt data structures for multimbral architecture.
- New driver layer (engine relies on no libraries).
- Replaced pthreads based buffer synchronization code.
- New lightweight patch parser / patch format.
- New thread-safe MIDI event queue.
- Restructured engine, GUI, and MIDI code.
- Almost complete separation of GUI and engine.
(still need to separate bank changes from the GUI.)
Sources are available via git:
git clone https://github.com/williamweston/phasex.git
Number of parts is configurable at compile time (1-2 parts per core
should be very dependable. Tested extensively with 8 parts on a
quad-core.) As usual, YMMV:
aclocal && autoconf && automake && autoheader
./configure --enable-arch=native --enable-parts=2
Overall, I am pleased with where PHASEX has arrived. In the past, I
had always been disappointed with PHASEX and its shortcomings, and for
many reasons. Until now. The code is cleaner and easier to work on.
Most of the old bugs have been replaced with more intelligent design.
On an -rt kernel, xruns are a thing of the past. Sound quality is
cleaner. GUI is much more responsive. Dependence on the command line
is kept to a bare minimum. Sessions can be managed with ease. Per
part memory and CPU utilization has decreased vs. multi-instance
v0.12.x. Timing is almost as good as it gets (sample accurate for
JACK MIDI, near sample accurate for ALSA seq, and almost as good as
your hardware will allow for ALSA raw MIDI.) All or the major
barriers to use that I've identified over the years have been
eliminated. I can actually sit down and work on some of those tracks
that got shelved due to bad timing. Of all the new features and code,
I am most pleased with the new MIDI clock. (Anyone interested in
timing of MIDI events and successive audio buffer processing cycles
can enable timing debug with '-d timing'. Once I finish putting all
my notes together, a detailed explanation of the MIDI clock will
follow.) The rest of the new features should be self-explanatory to
readers of linux-audio-dev, so I'll spare the details (unless of
course anyone asks).
Many thanks go out to Anton Kormakov for his work on PHASEX and his
git repo, which appear to have served the community well in the time
since the old server went down. And of course, I'd like to thank the
regular posters to this list (and linux-rt-users) for sharing the
knowledge that's made this release possible. A lot of you have
dropped some hints over the years about what the design of PHASEX (or
any synth) really needs to perform well (or at least to not perform
badly). I've been listening, as a lot of the work this year is a
result of finally getting around to a lot of the suggestions made by
members of linux-audio-dev.
So please, enjoy the new PHASEX. This release aims to be as bug-free
as possible (and IMHO, v0.14.96 is already more stable and
trouble-free than any previous version). As is usual with GPL'ed
software, there's no warranty whatsoever and I'm not responsible if
you blow out your speakers (or your hearing), but please don't let
that hold you back from trying it out.
This version is fully tested with Fedora 17 and 18, and should be just
as trouble free on any Fedora >= 14 or CentOS >= 6.0. At some point
next month, I'll be rebuilding my RAID and dedicating some space to
running other distributions. Until then, a request goes out for build
reports from other distros, especially Debian/Ubuntu, Arch, and Mint.
There's still time to get build files from other distros into the git
tree before v0.15.0 comes out.
So what do we do, now that the world didn't end?
Let's make some music!
Cheers,
--William Weston
We are proud to announce the release of guitarix2-0.25.1
Guitarix is a mono tube amplifier simulation for jack, with additional
mono/stereo effect racks witch can be filled with some in-build effects
as well as with external LADSPA plugins.
Download from http://sourceforge.net/projects/guitarix/
After having some discussions with David Robillard (thanks for your
patience, David) I realize that I need to push out a update in order to
avoid a possible violation of the LV2 specs, so guitarix2-0.25.1 is out,
those how use the last V0.25.0, are strongly recommended to update.
* GxAmplifier tube 12ax7 tonestack sovtek cabinet 4x12
* GxAmplifier-II tube 12AT7 tonestack soldano cabinet AC30
* GxAmplifier-III tube 6C16 tonestack bassman cabinet 1x15
* GxAmplifier-IV tube 6V6 tonestack soldano cabinet mesa
* GxAmplifier-V tube 6DJ8 tonestack ampeg cabinet HighGain
there are mono and stereo versions of those amps included in the bundle.
Thanks goes to Richard Dalton from http://www.Ampskindesigns.com
for given me permission to use (and distribute) his work within a GNU
GPL project,
many thanks Richard.
thanks goes as well to David Robillard for his great work on the LV2
specs and to Rui Nuno Capela for implement them so excellent in qtractor.
Please check it out and give feedback if you
find a problem.
Please refer to our project page for more information:
http://guitarix.sourceforge.net/
download site:
http://sourceforge.net/projects/guitarix/
have fun
guitarix development team
_______________________________________________
happy new year to all
CAPS 0.9.1
==========
The C* Audio Plugin Suite is a selection of popular effects, unique
filters and generators. For the digital guitarist, CAPS offers a
range of processors recreating the formation of tone in traditional
instrument amplification. Beyond sound quality, central design
considerations are latency-free realtime operation, modest resource
demands and meaningful control interfaces.
http://quitte.de/dsp/caps.html
This release contains major improvements particularly in the area of
guitar signal processing, notably in the AmpVTS and CabinetIV plugins.
These are the first iterations of the Amp and Cabinet designs that
their author is well and truly happy with. Also worth noting here is
the Compress plugin, a completely new design featuring optional
oversampled soft saturation/limiting.
http://quitte.de/dsp/caps.html#AmpVTShttp://quitte.de/dsp/caps.html#CabinetIVhttp://quitte.de/dsp/caps.html#Compresshttp://quitte.de/dsp/caps.html#AutoFilter
All plugins have been subject to further development, speedups,
refinement and polishing. In many cases, this has been accompanied by
the consolidation of shared or duplicate functions into a single
circuit; for example, the AutoFilter plugin now fulfills the roles of
the old SweepVF and AutoWah units. Many obsolete plugins have been
removed, and everywhere else, port names, layouts, value ranges,
defaults etc have been changed as well. Upgrading from previous
releases is encouraged nonetheless.
Enjoy!
Hi all,
survived the end of the world? bored of new year's parties?? nothing to do during Xmas holidays???
This is a friendly reminder, that the deadline for submissions to the Linux Audio Conference (LAC 2013) is slowly but inevitably approaching.
All works (papers, music, installations, workshops,...) must be submitted online by FEBRUARY 3.
http://lac.iem.at/
happy music-and-paper-submissions,
fgmasdr
IOhannes
- - - - - - - - -
LAC 2013: the Linux Audio Conference - Call for Participation
May 9-12, 2013 @ IEM, Graz/Austria
sorry for >< please >> <<
We are happy to announce the next issue of the Linux Audio Conference (LAC), May 9-12, 2013 @ IEM, the Institute of Electronic Music and Acoustics, in Graz, Austria.
The Linux Audio Conference is an international conference that brings together musicians, sound artists, software developers and researchers, working with Linux as an open, stable, professional platform for audio and media research and music production. LAC includes paper sessions, workshops, and a diverse program of electronic music.
*Call for Papers, Workshops, Music and Installations*
We invite submissions of papers addressing all areas of audio processing and media creation based on Linux. Papers can focus on technical, artistic and scientific issues and should target developers or users. In our call for music, we are looking for works that have been produced or composed entirely/mostly using Linux.
The online submission of papers, workshops, music and installations is now open at
http://lac.iem.at/
The Deadline for all submissions is February 4th, 2013 (23:59 HAST)
You are invited to register for participation on our conference website. There you will find up-to-date instructions, as well as important information about dates, travel, lodging, and so on.
This year's conference is hosted by IEM, Graz, in cooperation with local artists and FLOSS enthusiasts.
The Institute of Electronic Music and Acoustics (IEM) at the University of Music and Performing Arts Graz is considered Austria's leading institution in computer music, acoustics and audio engineering and has gained international reputation for its research on spatial audio and its artistic production and research.
IEM has been embracing Linux audio as a production and research environment since the mid-1990s, and has contributed to FLOSS/Linux projects, amongst others by providing drivers for multichannel audio interfaces and hosting the Pure Data community portal and mailing lists.
http://iem.at/
We look forward to seeing you in Graz in May!
Sincerely,
The LAC 2013 Organizing Team
> ----- Original Message -----
> From: Jeremy Jongepier
>
> On 12/30/2012 05:42 AM, William Weston wrote:
> > Yes, your eyes are working correctly. This is v0.14.96. Some things
> > are worth the wait. I know it's been a while, but I haven't forgotton
> > about PHASEX...
> >
>
> Great! Congrats with this new release!
>
> >
> > New Features:
> > - Multitimbral (1 thread per part).
>
> So this means starting multiple instances has become unnecessary?
Correct. Multi-instance worked, but it was a pain. Currently, number
of voices is set at compile time, so be sure to run configure with
--enable-parts=4, or however may parts you want to use. More than two
parts per CPU core is not currently recommended, however.
>
> > - Session bank (very much like the patch bank).
> > - Jack Session.
> > - Stereo- and Multi- outputs for JACK.
>
> Nice!
>
> > - ALSA PCM audio.
> > - JACK MIDI.
>
> Another nicety!
>
> > - ALSA Raw MIDI.
> > - Generic MIDI (/dev/midi support).
> > - MIDI clock for timestamping and queuing events.
> > - Active Sensing.
> > - New oscillator waveforms.
> > - Portamento for Osc Transpose events.
> > - FM oscillator latching.
> > - New LFO parameters.
> > - Moog (24db/octave) filter.
> > - Fast fade-out mono retriggering.
> > - Interpolated oscillator table lookups.
> > - Ability to run with no GUI.
>
> This is very welcome too.
>
> > - JACK MIDI / ALSA Raw / ALSA Seq connections in menus.
> > - Widescreen layout mode.
> > - New preferences dialog w/ nearly all settings.
> > - New knobs.
> > - Pure 64-bit math in builds with --enable-cpu-power=4.
> >
> >
> > New Features from Anton Kormakov:
> > - LASH.
> > - MIDI Hold pedal.
> > - JACK Transport.
> >
>
> And the Panic button?
I had already implemented this as the "Notes Off" button before reviewing
Anton's work. This probably should be renamed.
> > Overall, I am pleased with where PHASEX has arrived. In the past, I
> > had always been disappointed with PHASEX and its shortcomings, and for
> > many reasons. Until now. The code is cleaner and easier to work on.
> > Most of the old bugs have been replaced with more intelligent design.
> > On an -rt kernel, xruns are a thing of the past. Sound quality is
> > cleaner. GUI is much more responsive. Dependence on the command line
> > is kept to a bare minimum. Sessions can be managed with ease. Per
> > part memory and CPU utilization has decreased vs. multi-instance
> > v0.12.x. Timing is almost as good as it gets (sample accurate for
> > JACK MIDI, near sample accurate for ALSA seq, and almost as good as
> > your hardware will allow for ALSA raw MIDI.)
>
> Cool! No more drifting arpeggios :)
Unfortunately, I haven't got around to implementing LFO sync with the MIDI
clock yet, so there still may be some drift. This MIDI clock currently
handles event timestamping and MIDI/audio/engine thread synchronization,
and does not yet handle phase sync. If you're running on a fast 64-bit
processor, you can get better precision on the LFOs with a pure 64-bit
build (--enable-cpu-power=4).
> > This version is fully tested with Fedora 17 and 18, and should be just
> > as trouble free on any Fedora >= 14 or CentOS >= 6.0. At some point
> > next month, I'll be rebuilding my RAID and dedicating some space to
> > running other distributions. Until then, a request goes out for build
> > reports from other distros, especially Debian/Ubuntu, Arch, and Mint.
> > There's still time to get build files from other distros into the git
> > tree before v0.15.0 comes out.
> >
>
> I have a source package ready for Ubuntu 12.04 but I can't build it yet
> because of the current issues with Jack1. I could try building against
> Jack2 but then I can't test it myself because I don't use Jack2.
Try v0.14.97-dev in git:
git clone -b v0.14.97-dev https://github.com/williamweston/phasex.git
I haven't been able to verify the jack1 fixes yet, but I'm very hopeful.
Cheers,
--ww
> ----- Original Message -----
> From: distrozapper(a)online.de
>
> Dear William,
>
> Thank you for being back! I hope life matters do run better for you. Have a nice century! ;)
> I am glad you can care again about phasex, it is such a nice sound source to me!
>
> Alas there is a compilation problem on my linux mint 13 "maya" system, based on ubuntu 12.04.
>
> It complies with the bug report on http://permalink.gmane.org/gmane.linux.audio.devel/29006
>
> A patch has been provided by falktx, the maintainer of kxstudio distro ( see below).
> But it is only working for jack2 enabled system he says. No build for jack1 with this patch!
>
> My hardware is a Intel CoreI7 QM 1.7Ghz notebook with intel hda ALC269VB onboard.
>
> Configuration details:
>
> phasex 0.14.96 git
> Distro= Linux mint 13 "maya", desktop environment= cinnamon, ubuntu 12.04 based
> uname -a: Linux 3.2.0-35-lowlatency #34-Ubuntu SMP PREEMPT Tue Dec 18 18:12:15 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
> configure options : --prefix=/usr --without-lash --enable-cpu-power=3 --enable-arch=native
>
> ./configure report:
> ...
> * LIBS: ................. ''
> * PHASEX_LIBS: .......... '-lasound -ljack -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 -Wl,--export-dynamic -pthread -lgmodule-2.0 -lrt -lglib-2.0 -lsamplerate -lm -lpthread -lX11'
> *
> ******************************************************************************
> *
> * PHASEX is now configured! Now run:
> ...
>
> ISSUE: The make procedure stops reporting hundreds of "undefined references" concerning alsa and gtk, exactly as described in
> http://permalink.gmane.org/gmane.linux.audio.devel/29006
> resp. http://pastesite.com/86896.
>
> falktx, being the maintainer of kxstudio distribution (IRC: freenode.net/#kxstudio), kindly provided me this temporary patch, which made the build process run successfully on my system,
> but he notices urgently this won't build for jack1!!
>
>
> *** BEGIN PATCH ***
> --- phasex-0.14.96.orig/src/Makefile.am
> +++ phasex-0.14.96/src/Makefile.am
> @@ -52,8 +52,7 @@ endif
>
> AM_CFLAGS = @PHASEX_CFLAGS@
> AM_CPPFLAGS = $(EXTRA_CPPFLAGS) @PHASEX_CPPFLAGS@
> -AM_LDFLAGS = $(INTLLIBS) @PHASEX_LIBS@
> -
> +LIBS = $(INTLLIBS) @PHASEX_LIBS@
>
> clean-local:
>
> *** END PATCH ***
>
> This patch rendered a usable phasex 0.14.96 git/devel version on my ubuntu 12.04 system.
Thanks! Applied to 0.14.97-dev.
> I see the oscillator rate controls disabled atm, but phasex sounds OK, reacting fine via jack_keyboard MIDI input.
Osc Rate is only used for Tempo and Tempo+Trig osc sources.
For normal MidiKey oscs, the rate is set by the note in play.
Parameters are only disabled when their values will be ignored
due to other parameter settings.
> Please contact falktx for more developer information exchange (he is quite busy with his new kxstudio release atm).
> I am just a 64bit/jack2 user (but I am addicted to phasex@kxstudio ;) )
>
> If you do, please give him my best regards, so as I do now to you:
>
> If I can be helpful for testing : Please let me know!
> Thanks alot for this nice work!
>
> Cheers !
>
> Robert Dietrich
> distrozapper
I will contact falktx before the next release.
The few build fixes that have trickled in, along with inclusion
of MIDI channel in saved midimaps, are in v0.14.97-dev, which has
been started in git. This hasn't been tested with jack1, but it
looks like it should work. Anyone still having build issues should
grab the dev branch:
git clone -b v0.14.97-dev https://github.com/williamweston/phasex.git
I'm give it a few days before finalizing v0.14.97 in case any more
changes are needed to build on other distros.
Cheers,
--ww
On 12/30/2012 11:38 AM, Florian Paul Schmidt wrote:
> On 12/30/2012 05:42 AM, William Weston wrote:
>> Happy New Year!
>
> To you, too :D
>
>
>
>>
>> Sources are available via git:
>>
>> git clone https://github.com/williamweston/phasex.git
>
> Sadly the build fails. After installing all dependencies indicated by
> configure I get this (sorry, thunderbird has started messing up
> formatting heavily at some point in the past):
>
http://pastesite.com/86896
Flo
--
Florian Paul Schmidt
http://fps.io
> ----- Original Message -----
> From: Jörn Nettingsmeier
>
> On 12/30/2012 05:42 AM, William Weston wrote:
> > Happy New Year!
> >
> > Yes, your eyes are working correctly. This is v0.14.96. Some things
> > are worth the wait. I know it's been a while, but I haven't forgotton
> > about PHASEX...
>
> whoohooo!
>
>
> just a quick feedback: distros that are moving to a unified /usr/bin
> will need this patch:
>
> diff --git a/configure.ac b/configure.ac
> index 5fb0368..3b2496c 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -334,7 +334,8 @@ AC_DEFINE_UNQUOTED(PHASEX_GCC_MINOR, [$gccminor],
> [Built with gcc minor version]
> CPU_POWER_LEVEL=2
> ARCH_OPT_CFLAGS=""
> ARCH_MATH_CFLAGS=""
> -ARCH_BITS=`( file /bin/true | grep 'ELF 64-bit' > /dev/null && echo 64
> ) || echo 32`
> +ARCH_TRUE=`which true`
> +ARCH_BITS=`( file $ARCH_TRUE | grep 'ELF 64-bit' > /dev/null && echo 64
> ) || echo 32`
>
> because `file /bin/true` will return "/bin/true: symbolic link to
> `/usr/bin/true'", which in turn will force the bitness to 32, which then
> fails unless a full 32-bit environment is installed.
Thank you. This is now in the dev tree.
> now i'm hunting a couple errors wrt jack headers - my guess is that
> PHASEX is being tested with JACK2 exclusively - it seems to rely on a
> couple of types and methods which don't seem to be present in my jack1
> environment (more or less fresh from svn).
You're absolutely right. I actually haven't tested with jack1 since
adding JACK Session support. I'll have to check and see what else is
jack2 only. Restoring jack1 support will be top priority for v0.14.97.
Thanks again,
--ww