Hello. Who of us are working on a modular synth GUI where user
grab&drag modules and connects them with cables? I'm myself
interested in the editor GUI development --- there already
are many modular audio engines, but not particularly good GUIs
(Quasimodo might be an exception if I remember correctly).
Below is a short list of modular synths. I'm still searching for
more. I will mail an updated list later, but at meanwhile you
could help me ;-)
Regards,
Juhana
== cut ==
Name Author Has cable-GUI Has script-GUI
-----------------------------------------------------------------------------
Nord Modular Clavia Yes No
Harmonizer/Vsig Eventide Yes Yes
Oasys Korg ? ?
Csound Barry Vercoe No Yes
Cmusic ? No Yes
Quasimodo Paul Davis Yes No
PD Miller Puckette Yes No
PSK ? No Yes
jmax ? ? ?
Nyquist (1) R.B. Dannenberg No Yes
SAOL ? No Yes
?? Creamware Yes No
Arts ? Yes No
Vaz Modular ? Yes No
Reaktor ? Yes No
Tasman ? ? ?
SyncC modular ? ? ?
BlockCompiler Matti Karjalainen No Yes
== cut ==
Hi all,
I was just wondering if anyone knows of any good resources for an
introduction to building hardware MIDI controllers? Any recommendations
for books or online references would be appreciated. I've been looking
at Digital Projects for Musicians by Craig Anderton on amazon, but the
reviews seem to be pretty negative.
Any advice?
- Adam
>BTW: There is a prefech bug on AMD processors - try to run it recompiled
>with less optimization, newer kernels have workarounds.
>
>Another thing to try is to run memtest86 (SuSE has it in Lilo menu)
>let it run for a while (full night)
>
I solved the freezing problem by compiling jack to use a tmpfs
for its temp files!
BTW to get low latency working on that machine I had to switch down
from IDE DMA100 to DMA66 mode. Now I am sure that there is a nasty
bug with my ASUS A7V-266E board.
Nice to see that it is solved by just adding:
tmpfs /tmp/ramdisk/ tmpfs size=5M,nr_inodes=1k,mode=777 0 0
to fstab:)
Which RAM disk size is OK for jack?
- Stefan
_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE*
http://join.msn.com/?page=features/junkmail
Now the oss driver for jack 0.90 starts to shape up. This could be
considered as alpha version.
Changes:
- Conditionally compiled two thread implementation for NPTL (possibly
also works with LinuxThreads, untested)
- Fixed a load of bugs
This version has been tested with CMI8738, ENS1371 and M-Audio
Delta1010. (OSS 3.9.8a)
This version has been tested to work under load up to 8-in, 8-out,
24-bit 96 kHz with period size of 128.
Patch available at http://www.sonarnerd.net/linux/jack_oss.patch
and RPMs and tarball at http://www.sonarnerd.net/linux/
Someone familiar with autoconf/automake could see the
drivers/oss/Makefile.am for some better way of enabling NPTL/barrier
stuff... ;)
--
Jussi Laako <jussi.laako(a)pp.inet.fi>
the following is tiny example to show that its possible to use XEMBED
or just native X Window IDs to create host-managed plugin GUIs. GTK+2
and Qt3 both support XEMBED; GTK+2 supports use of native X Window ids
when creating new top level windows, i am not sure about Qt (does
anybody here know how to do it).
this means that a GTK host can manage a Qt GUI or vice versa, without
any toolkit specific hacks in the host or in a library linked by the
host.
i offer this as a proof of concept. i believe that our problems with
GUIs for plugins are pretty much over, modulo defining some standards
as per another recent from me.
--p
----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
gboolean
button_pressed (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
{
fprintf (stderr, "host: button press at %g,%g\n", event->x, event->y);
return TRUE;
}
gboolean
delete_event (GtkWidget* widget,
GdkEvent* event,
gpointer user_data)
{
fprintf (stderr, "host: window delete event\n");
gtk_main_quit ();
return TRUE;
}
gboolean
plugin_button_pressed (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
{
fprintf (stderr, "plug: button press at %g,%g\n", event->x, event->y);
return TRUE;
}
gboolean
plugin_delete_event (GtkWidget* widget,
GdkEvent* event,
gpointer user_data)
{
fprintf (stderr, "plug: window delete event\n");
gtk_main_quit ();
return FALSE;
}
int
plugin_main (GdkNativeWindow window_id)
{
GtkWidget* embedded_parent;
GtkWidget* dummy_label;
GdkWindow* foreign_window;
int argc = 1;
char **argv = (char **) malloc (sizeof (char*));
argv[0] = "plugin";
gtk_init (&argc, &argv);
#ifdef USE_XEMBED
embedded_parent = gtk_plug_new (window_id);
#else
embedded_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
foreign_window = gdk_window_foreign_new (window_id);
gtk_widget_set_parent_window (embedded_parent, foreign_window);
#endif
dummy_label = gtk_label_new ("This is a LADSPA Plugin GUI");
gtk_container_add (GTK_CONTAINER(embedded_parent),
dummy_label);
gtk_signal_connect (GTK_OBJECT(embedded_parent),
"button-press-event",
GTK_SIGNAL_FUNC (plugin_button_pressed),
NULL);
gtk_signal_connect (GTK_OBJECT(embedded_parent),
"delete-event",
GTK_SIGNAL_FUNC (plugin_delete_event),
NULL);
gtk_widget_add_events (GTK_WIDGET (embedded_parent),
GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK);
gtk_widget_show (embedded_parent);
gtk_widget_show (dummy_label);
}
int
main (int argc, char *argv[])
{
gtk_init (&argc, &argv);
GtkWidget* embedded_parent;
GtkWidget* embedded_window;
embedded_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
#ifdef USE_XEMBED
embedded_parent = gtk_socket_new ();
gtk_container_add (GTK_CONTAINER(embedded_window),
embedded_parent);
gtk_widget_show (embedded_parent);
#endif
gtk_signal_connect (GTK_OBJECT(embedded_window),
"button-press-event",
GTK_SIGNAL_FUNC (button_pressed),
NULL);
gtk_signal_connect (GTK_OBJECT(embedded_window),
"delete-event",
GTK_SIGNAL_FUNC (delete_event),
NULL);
gtk_widget_add_events (GTK_WIDGET (embedded_window),
GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK);
gtk_widget_set_size_request (GTK_WIDGET(embedded_window), 100, 100);
gtk_window_set_title (GTK_WINDOW(embedded_window), "A Plugin");
gtk_widget_show (embedded_window);
gtk_widget_realize (embedded_window);
#ifdef USE_XEMBED
plugin_main (gtk_socket_get_id (GTK_SOCKET(embedded_parent)));
#else
plugin_main (GDK_WINDOW_XID (embedded_window->window));
#endif
gtk_main ();
}
[This has been announced on LAA already, but I gather crossposts are
expected.]
We'd like to announce the first alpha release of QSynth, an attractive
Qt front-end to fluidsynth. QSynth is brought to you by Rui Nuno
Capela, developer of qjackctl, together with Richard Bown and Chris
Cannam of the Rosegarden team.
QSynth provides a simple front and configuration interface to the
fluidsynth software synthesiser to allow persistent storage of
fluidsynth configuration (and soundfonts) as well as providing visual
feedback and front panel controls for software synthesiser
parameters. QSynth can be used either as a standalone player or in
conjunction with any compatible sequencers. For more details,
screenshots, mailing list details and to download the source code
please visit:
http://qsynth.sourceforge.net
Requirements are Qt3.1.1 and libfluidsynth.
Please let us know how you get on with it!
Chris
>But you do have it recompiled for the right CPU architecture
>and not only moved?
Yes of course.
>BTW: There is a prefech bug on AMD processors - try to run it recompiled
>with less optimization, newer kernels have workarounds.
I will try that... but I get the freezes only with jack. ALSA applikations
run
just perfect in rt mode.
>Another thing to try is to run memtest86 (SuSE has it in Lilo menu)
>let it run for a while (full night)
I will do... and if nothing helps I will get a new mainboard ;-)
- Stefan
_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*.
http://join.msn.com/?page=features/featuredemail
On Tuesday 18 November 2003 20.57, Stefan Nitschke wrote:
> >ping is answered = IRQs live.
> >Could you please try this.
> >Start rt_monitor in a text console CTRL-ALT-F1
> >
> >Start your client, return to console - what does rt_monitor print?
> >
> >(It could be the memory leak and mlockall(FUTURE) problem,
> >As I do not check that yet.
> >Another alternative is a fast forking client - they are hard to stop)
>
> OK, I tested it. There is no output at all from rt_monitor.
> I used the following:
> - starting rt_monitor in a console as root
> - ssh login from remote machine
> - starting jack
> - starting a jack client
What client? Any client?
>
> after a few seconds the machine was froozen and no output
> from rt_monitor.
Hmm...
> I assume its a hardware bug. On my Inspiron 8500 with nearly
> the same linux-2.4.19.SuSE kernel (plus patch for speed-step)
> I dont have any freezes at all.
But you do have it recompiled for the right CPU architecture
and not only moved?
BTW: There is a prefech bug on AMD processors - try to run it recompiled
with less optimization, newer kernels have workarounds.
Another thing to try is to run memtest86 (SuSE has it in Lilo menu)
let it run for a while (full night)
/RogerL
--
Roger Larsson
Skellefteå
Sweden