guitarix is a simple Linux Rock Guitar amplifier for jack(Jack Audio Connektion Kit)
with one input and two outputs. Designed to get nice thrash/metal/rock/blues
guitar sounds. . . .
Some new effect's in the amp section with new controllers, overworked tuner, overworked midi output
(still it is experimental but can be usefull for rhythm blues or jazz or. . . fun)
Many thanks to Orcan Ogetbil (Fedora) for give the right hint to impruve the tuner,
and the patch's to create a proper Makefile and more, thanks Orcan.
have fun
________________________________________________________________________
guitarix based on Gtk, a great part is also realesed as ladspa plugin.
guitarix is licensed under GPL
Projektpage with screenshots:
http://guitarix.sourceforge.net/
download:
http://sourceforge.net/projects/guitarix/
For capture guitarix make use of jack_capture ver >= 0.9.30 from Kjetil
S. Matheussen. If you dont have it installed, look here:
http://old.notam02.no/arkiv/src/?M=D
For extra Impulse Response guitarix make use of jconv from Fons Adriaensen. If
you dont have it installed, look here:
http://www.kokkinizita.net/linuxaudio/index.html
I use faust to build the prototype and will say thanks to
: Julius Smith
http://ccrma.stanford.edu/realsimple/faust/
: Albert Graef
http://www.musikwissenschaft.uni-mainz.de/~ag/ag.html
: Yann Orlary
http://faust.grame.fr/
regards hermann
Announcing phasex-0.12.0-beta2
I've been away from the dev circles for a while, but I haven't
forgotten about keeping phasex up to date. The new phasex beta
targets all of the current build/usability issues, and includes a ton
of small changes and fixes:
- Clearer licensing (code and samples GPLv2, patches public domain).
- Reworked JACK connection code (can now survive JACK restarts when
running multiple instances).
- Initial support for sampled oscillator waveforms (Juno-106 and vocal
waveforms currently included).
- Sound quality improvements (super-clean chorus using hermite
interpolation, cleaner envelope curves, smoothing added for
pitchbender adjustments, and fixes for portamento and mono
keymode triggering).
- New parameters (pan, lfo support for resonance, fine-tuning for osc
pitch and fm).
- Fixed 64 bit builds.
- Added new architectures in the x86 family.
- Fixed file dialog problems with newer GTK builds.
- New GTK theme and color scheme.
- See the ChangeLog for more...
This beta aims at being a stable release. All of the currently known
showstoppers have been fixed. Builds under Fedora 8 and Fedora 10
behave well with jackd and jackdmp. Builds under Debian/Ubuntu and
with jackdbus have not yet been tested. Any build and crash reports
would be greatly appreciated, especially from distribution
maintainers. I aim to release a stable 0.12.0 in a couple of weeks,
including updated patches.
Check out http://sysex.net/phasex/beta to download the latest phasex
tarballs and Fedora 10 RPMs. Alternatively, you can try out the new
git repositoty:
git clone http://sysex.net/git/phasex.git
It's nice to be back working on Linux audio!
Cheers,
--ww
the existence of ~/.jackdrc is fine and using it in the future for legacy reasons is also a good thing. Its format, on the other hand, is questionable. I don't find it a good practice to call a server configuration file something that is more some sort of shell script, because the current ~/.jackdrc is nothing but a shell script. However, I am no jack dev, so you can dismiss my opinion if you like.
J.
--- On Wed, 5/20/09, Stéphane Letz <letz(a)grame.fr> wrote:
> From: Stéphane Letz <letz(a)grame.fr>
> Subject: [LAD] New proposal for the jackd/jackdbus mess : adding "config" API
> To: "Jack devel" <jack-devel(a)lists.jackaudio.org>, "Linux Audio Developers" <linux-audio-dev(a)lists.linuxaudio.org>
> Date: Wednesday, May 20, 2009, 8:30 AM
> Hi all,
>
> Here is an updated version that add a new (to be defined)
> "config" API in libjack.so. The idea is to provide a way to
> *share* multiple server configurations in a unique place for
> all control application. The important point are:
>
> - we are not allowed to break legacy use of ~/.jackdrc
>
> - we absolutely want to maintain server auto-start from
> clients
>
> So the overall suggestion is to *maintain* this
> ~/.jackdrc with it's current format and to define a
> new config API that will probably use another file (or set
> of files...).
>
> - legacy control application (Qjackcl for instance) can
> still use their multiple server configurations, they will
> not see and use this new share and centralized state, but I
> don't think we can do better.
>
> - new control front-end (jackdbus, jackOSC) would have to
> use this new config API.
>
> Comments?
>
> Stephane
>
>
>
> -----Inline Attachment Follows-----
>
> _______________________________________________
> Linux-audio-dev mailing list
> Linux-audio-dev(a)lists.linuxaudio.org
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
>
Hi all,
Here is an updated version that add a new (to be defined) "config" API
in libjack.so. The idea is to provide a way to *share* multiple server
configurations in a unique place for all control application. The
important point are:
- we are not allowed to break legacy use of ~/.jackdrc
- we absolutely want to maintain server auto-start from clients
So the overall suggestion is to *maintain* this ~/.jackdrc with it's
current format and to define a new config API that will probably use
another file (or set of files...).
- legacy control application (Qjackcl for instance) can still use
their multiple server configurations, they will not see and use this
new share and centralized state, but I don't think we can do better.
- new control front-end (jackdbus, jackOSC) would have to use this
new config API.
Comments?
Stephane
Hi all,
Where I'm coming from--I use Arch Linux, so I'm a big believer in simplicity
and modularity.
And CHOICE. Enforcing a Dbus dependency into an architecture that already
just works fine is, I dunno, procrustean "must have Dbus" insanity.
So, I agree with Fons that something like Dbus seemingly take over the whole
infrastructure of my Linux system, including a key audio component like
jack, is a bad idea. I also agree that this Dbus stuff seems to be creeping
in as a dependency into more and more software causing all sorts of
instability and havoc with whatever it touches.
I can also say from 12 years of using Linux, I've never had so many error
messages or instability from any other piece of my system than from
Dbus-related processes. One of the reasons I now avoid the major Desktop
environments as much as I can, and use fluxbox, is the feeling that they are
getting too big and unstable and not 'system critical performance' enough,
and I think a lot of that has to do with this incredible 'dependency creep'.
So, really, from my point of view, not only should Dbus NOT have anything to
do with jack, it should be taken out into the backyard and shot so we can
all sleep at night....
This reminds me of Debian/Ubuntu trying to determine what Linux is. For
instance, instead of adhering to vanilla practices, Debian and Ubuntu folks
change file system hierarchy standards, and no wonder things break so often
on those distros. I remember using both and feeling "wow this is great, lots
of packages" but also..."damn, this is the 3rd reboot today--Dbus error"
I'm sure I've offended someone in the Dbus-loving community. I'm sorry. You
ideally should be willing to listen to reports from the field...
-AKJ
--
Aaron Krister Johnson
http://www.akjmusic.comhttp://www.untwelve.org
Sorry for the crossposting, but the statistics show that only some people have subscribed to all three lists.
------------
The Denemo project has released a new version of its music notation program. Denemo 0.8.4, which is available for Windows, Linux and MacOS (via third-party builds) as source and binaries. The software is distributed under the GPL.
Some of the new features are improvements for scripting support and user-created commands and improved MIDI-output.
Official support, beneath our website, is avaible via our IRC channel #denemo on irc.freenode.net.
Denemos notation-functionality is ready for daily and professional use.
For future improvements our team searches for additional developers. If you are interested in notation and midi-sequencing please join the team!
Website: http://www.denemo.org
Additional information:
GNU Denemo is a free, GPL, open source music notation editor for Linux, MacOS and Windows that lets you rapidly enter notation for typesetting via the LilyPond music engraver. You can compose, transcribe, arrange, listen to the music and much more. Music can be typed in at the PC-Keyboard, or played in via MIDI controller, or input acoustically into a microphone plugged into your computer's soundcard.
Henry Gomersall wrote:
> On Tue, 2009-05-19 at 18:26 +0200, Ralf Mardorf wrote:
>
>> I'm using Linux since years (not rt-audio ;)) and the architecture of
>> Linux has one big disadvantage. You might have a Linux that is fine,
>> the
>> times are changing and in addition you need an absolutely new
>> application, but you don't need to update any of the applications
>> you're
>> using since years.
>>
>> You can't install the new application, because dependencies needs to
>> be
>> updated and that causes that also your perfect working applications
>> needs to be updated.
>>
>>
> I don't see how this is different to any system (Windows, Mac, Game
> Boy). The main difference being that you are actually free, yourself, to
> modify the code and keep it working. That is the point about being able
> to modify the code yourself.
>
> Henry
>
The latest version of the Atari Cubase still can run sessions of the
first version, sometimes you can't do this with Rosegarden between two
versions (okay, I nearly does NO RT-AUDIO with Linux ;)). But the point
isn't what is possible or impossible for other OS's. For Windows and Mac
you can get the same open source applications, but not everybody want to
work with the source code and set up the application by this way, most
people needs a working tool.
Following the kfusd patch, here is a small patch to make oss2jack work fine against jack2.
It works against jack1 already because jack1's version of jack_set_samplerate_callback() actually executes the callback function, while jack2 does not do it right away. So I followed Stephane Letz's advice and call jack_get_sample_rate() in oss2jack in jack_init() instead.
Please be aware that you may get a reject by applying due to screwed spacing. I had some funny issues with this lately (and I use emacs for source code ... weird).
------ PATCH start ------------------
--- oss2jack-0.25.orig/src/oss2jack/oss2jack.c 2009-05-18 19:57:17.757704457 +0200
+++ oss2jack-0.25/src/oss2jack/oss2jack.c 2009-05-18 20:05:04.397724051 +0200
@@ -633,7 +633,7 @@
jack_set_error_function(jack_error);
- info->client = jack_client_new("oss-dsp");
+ info->client = jack_client_open("oss-dsp", JackNullOption, NULL);
if(info->client == NULL)
{
@@ -652,6 +652,9 @@
jack_set_sample_rate_callback(info->client, jack_srate, info);
jack_set_buffer_size_callback(info->client, jack_buffer_size, info);
+ /* initialize current sample rate for jack2 at startup */
+ (void)jack_srate(jack_get_sample_rate(info->client), info);
+
jack_on_shutdown(info->client, jack_shutdown, info);
info->last_frame_size = 64;
------- PATCH end ------------------------------
Cheers!
J.
> --- On Fri, 5/15/09, Lennart Poettering <mzynq(a)0pointer.de>
> wrote:
>
> > From: Lennart Poettering <mzynq(a)0pointer.de>
> > Subject: Re: [LAD] [PATCH] kfusd against 2.6.29
> kernel
> > To: linux-audio-dev(a)lists.linuxaudio.org
> > Date: Friday, May 15, 2009, 8:29 AM
> > On Fri, 15.05.09 05:21, James Warden
> > (warjamy(a)yahoo.com)
> > wrote:
> >
> > > Hi,
> > >
> > > I created a patch for kfusd (fusd-kor kernel
> module)
> > because I
> > > needed oss2jack to work again against kernel
> 2.6.29.x
> > >
> > > I need to clean up the patch as it bulldozes the
> old
> > kernel API. If
> > > anyone is interested, I can post it here when I
> clean
> > it up (some
> > > time tonight or tomorrow). I already contacted
> the
> > author of fusd
> > > but I've got no reply so far.
> > >
> > > Note that I am no kernel guru, I got inspired by
> the
> > update to
> > > module source drm_mm.c and tested oss2jack in a
> > 2.6.29.2-rt10
> > > environment against jack1_svn (latest). I need to
> fix
> > something to
> > > make it work with jack2 (some problem linked to
> > libsamplerate -
> > > which is used in oss2jack - specifically in
> > src_process, the
> > > src_ratio field of the passed data is out of
> range).
> >
> > Please note that cuse (which does mostly the same as
> fusd)
> > is on its
> > way into the kernel:
> >
> > http://lwn.net/Articles/296388/
> >
> > Lennart
> >
> > --
> > Lennart Poettering
> > Red Hat, Inc.
> > lennart [at] poettering [dot] net
> > http://0pointer.net/lennart/
> > GnuPG 0x1A015CC4
> > _______________________________________________
> > Linux-audio-dev mailing list
> > Linux-audio-dev(a)lists.linuxaudio.org
> > http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
> >
>
>
>
>
I completely forgot to post the kfusd patch. I understand cuse will supersede all this but some ppl out there may want to use kfusd in the mean time against kernel 2.6.29.x
I warn you, there may be cleaner way to do this but it works. Some changes might be due to some spacing or tabbing. Sorry about that. Note that I have no clue when the kernel API changed after 2.6.24. So I you try it against say 2.6.27 or 2.6.28, it may not work at all. Here it is:
Here it is:
------- PATCH start ----------------------------------
diff -Naur fusd-kor/include/kfusd.h fusd-kor-new/include/kfusd.h
--- fusd-kor/include/kfusd.h 2007-06-26 02:01:36.000000000 +0200
+++ fusd-kor-new/include/kfusd.h 2009-05-19 07:40:27.549694054 +0200
@@ -44,6 +44,7 @@
#define __KFUSD_H__
#include "fusd_msg.h"
+#include <linux/version.h>
/* magic numbers for structure checking; unique w.r.t
* /usr/src/linux/Documentation/magic-number.txt */
@@ -125,7 +126,11 @@
char *dev_name;
struct CLASS *clazz;
int owns_class;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
struct class_device *class_device;
+#else
+ struct device *class_device;
+#endif
void *private_data; /* User's private data */
struct cdev* handle;
diff -Naur fusd-kor/kfusd/kfusd.c fusd-kor-new/kfusd/kfusd.c
--- fusd-kor/kfusd/kfusd.c 2008-01-31 22:38:53.000000000 +0100
+++ fusd-kor-new/kfusd/kfusd.c 2009-05-19 07:40:36.412703934 +0200
@@ -85,7 +85,7 @@
#define STATIC
/* Define this if you want to emit debug messages (adds ~8K) */
-#define CONFIG_FUSD_DEBUG
+/* #define CONFIG_FUSD_DEBUG */
/* Default debug level for FUSD messages. Has no effect unless
* CONFIG_FUSD_DEBUG is defined. */
@@ -126,8 +126,17 @@
#else
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
+
#define CLASS_DEVICE_CREATE(a, b, c, d, e) class_device_create(a, b, c, d, e)
+#else
+
+#define CLASS_DEVICE_CREATE(a, b, c, d, e) device_create(a, b, c, d, e)
+#define class_device_destroy(a, b) device_destroy(a, b)
+
+#endif
+
#endif
#endif
@@ -150,8 +159,13 @@
static struct CLASS *fusd_class;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
static struct class_device *fusd_control_class_device;
static struct class_device *fusd_status_class_device;
+#else
+static struct device *fusd_control_class_device;
+static struct device *fusd_status_class_device;
+#endif
extern struct CLASS *sound_class;
@@ -725,8 +739,10 @@
/* fill the rest of the structure */
fusd_msg->parm.fops_msg.pid = current->pid;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
fusd_msg->parm.fops_msg.uid = current->uid;
fusd_msg->parm.fops_msg.gid = current->gid;
+#endif
fusd_msg->parm.fops_msg.flags = fusd_file->file->f_flags;
fusd_msg->parm.fops_msg.offset = fusd_file->file->f_pos;
fusd_msg->parm.fops_msg.device_info = fusd_dev->private_data;
@@ -1533,6 +1549,7 @@
}
static void fusd_client_mm_open(struct vm_area_struct * vma);
static void fusd_client_mm_close(struct vm_area_struct * vma);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
static struct page* fusd_client_nopage(struct vm_area_struct* vma, unsigned long address, int* type);
static struct vm_operations_struct fusd_remap_vm_ops =
{
@@ -1540,6 +1557,16 @@
close: fusd_client_mm_close,
nopage: fusd_client_nopage,
};
+#else
+static int fusd_client_fault(struct vm_area_struct* vma, struct vm_fault *vmf, int* type);
+static struct vm_operations_struct fusd_remap_vm_ops =
+{
+ .fault = fusd_client_fault,
+ .open = fusd_client_mm_open,
+ .close = fusd_client_mm_close,
+};
+#endif
+
struct fusd_mmap_instance
{
@@ -1631,13 +1658,14 @@
return -EPIPE;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
static struct page* fusd_client_nopage(struct vm_area_struct* vma, unsigned long address,
int* type)
{
struct fusd_mmap_instance* mmap_instance = (struct fusd_mmap_instance*) vma->vm_private_data;
unsigned long offset;
- struct page *page = NOPAGE_SIGBUS;
int result;
+ struct page *page = NOPAGE_SIGBUS;
offset = (address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT);
// todo: worry about size
if(offset > mmap_instance->size)
@@ -1662,9 +1690,46 @@
}
out:
return page;
+}
+#else
+static int fusd_client_fault(struct vm_area_struct* vma, struct vm_fault *vmf,
+ int* type)
+{
+ struct fusd_mmap_instance* mmap_instance = (struct fusd_mmap_instance*) vma->vm_private_data;
+ unsigned long offset;
+ int result;
+ struct page *page = NULL;
+ offset = ((unsigned long)vmf->virtual_address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT);
+ // todo: worry about size
+ if(offset > mmap_instance->size)
+ goto out;
+
+ down_read(&mmap_instance->fusd_dev->task->mm->mmap_sem);
+ result = get_user_pages(mmap_instance->fusd_dev->task, mmap_instance->fusd_dev->task->mm, mmap_instance->addr + offset, 1, 1, 0, &page, NULL);
+ up_read(&mmap_instance->fusd_dev->task->mm->mmap_sem);
+
+
+ if(PageAnon(page))
+ {
+ RDEBUG(2, "Cannot mmap anonymous pages. Be sure to allocate your shared buffer with MAP_SHARED | MAP_ANONYMOUS");
+ return VM_FAULT_SIGBUS;
+ }
+
+ if(result > 0)
+ {
+ get_page(page);
+ vmf->page = page;
+ if (type)
+ *type = VM_FAULT_MINOR;
+ }
+out:
+ return 0;
}
+#endif
+
+
/*
----- PATCH end ----------------------------------
Cheers!
J.
> --- On Fri, 5/15/09, Lennart Poettering <mzynq(a)0pointer.de>
> wrote:
>
> > From: Lennart Poettering <mzynq(a)0pointer.de>
> > Subject: Re: [LAD] [PATCH] kfusd against 2.6.29
> kernel
> > To: linux-audio-dev(a)lists.linuxaudio.org
> > Date: Friday, May 15, 2009, 8:29 AM
> > On Fri, 15.05.09 05:21, James Warden
> > (warjamy(a)yahoo.com)
> > wrote:
> >
> > > Hi,
> > >
> > > I created a patch for kfusd (fusd-kor kernel
> module)
> > because I
> > > needed oss2jack to work again against kernel
> 2.6.29.x
> > >
> > > I need to clean up the patch as it bulldozes the
> old
> > kernel API. If
> > > anyone is interested, I can post it here when I
> clean
> > it up (some
> > > time tonight or tomorrow). I already contacted
> the
> > author of fusd
> > > but I've got no reply so far.
> > >
> > > Note that I am no kernel guru, I got inspired by
> the
> > update to
> > > module source drm_mm.c and tested oss2jack in a
> > 2.6.29.2-rt10
> > > environment against jack1_svn (latest). I need to
> fix
> > something to
> > > make it work with jack2 (some problem linked to
> > libsamplerate -
> > > which is used in oss2jack - specifically in
> > src_process, the
> > > src_ratio field of the passed data is out of
> range).
> >
> > Please note that cuse (which does mostly the same as
> fusd)
> > is on its
> > way into the kernel:
> >
> > http://lwn.net/Articles/296388/
> >
> > Lennart
> >
> > --
> > Lennart Poettering
> > Red Hat, Inc.
> > lennart [at] poettering [dot] net
> > http://0pointer.net/lennart/
> > GnuPG 0x1A015CC4
> > _______________________________________________
> > Linux-audio-dev mailing list
> > Linux-audio-dev(a)lists.linuxaudio.org
> > http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
> >
>
>
>
>
Hi All,
After hours of discussion on #jack IRC, it seems that we are in a
completely blocked situation:
1) we currently have 2 "incarnations" of the jack server named "jackd"
and "jackdbus". "jackd" is the legacy "classic" version of the server
that interact with the ~/jackdrc setting file. This setting file may
be written by Qjackctl or Ardour. "jackdbus" is the new D-Bus aware
version of the server, it use a completely new setting management
system using a "conf.xml" file. Il may use a multi-setting system in
the future.
2) the *heart" of the problem Fons initially told about is in the way
applications "auto-start" the server. This launching strategy is part
of libjack and depends of the incarnation of the server (jackd of
jackdbus) that is supposed to be used. Right now this strategy is
chosen at *compile time*, so that in "classic" mode the "jackd" server
will be launched using a fork-exec strategy, or in D-Bus mode the
"jackdbus" server will be launched by issuing a D-Bus call.
3) Since the "auto-start" strategy is chosen at compile time and thus
is coded in libjack, users will typically encounter all sort of
problems as soon as the used applications interact with a "D-Bus based
strategy" libjack (that will launch "jackdbus" incarnation) and users
still use Qjackctl that interact with the "jackd" incarnation.
4) Different ideas have been proposed to merge the 2 "jackd" and
"jackdbus" incarnations in a unique extended "jackd" exe, but nothing
really clear emerged.
4) A possible proposed solution was to define 2 completely separated
packages for jack2 : the "classic" one would package the "jackd"
incarnation and allow Qjackctl and legacy control applications to be
used with it. The "D-Bus" one would package the "jackdbus"
incarnation, and provide D-Bus bas control applications (patchage,
ladi tools....). The problem of this strategy is that..., it is a kind
of complete failure regarding the way jack is supposed to be
distributed. It may even get worse if a new "jackosc" incarnation (a
one that would allow to control the server using OSC) appears a some
point in the future...
5) Another idea would be improve the "choice of auto-start strategy"
by providing a runtime choice for that: a way for the user to select
between the "classic", "D-Bus", "OSC", strategy once globally for a
given working session...
5) Another idea would be be to completely drops the "auto-start"
strategy...This way we don't have multiple strategy anymore, and solve
most of the problems... but loose a feature.
Comments?
Stephane