Gem window crashes / Install struggles on Ubuntu
Please help! Sooooo many hours trying to figure this out, should be simple I think but I'm not a sophisticated user of Linux.
The Gem objects appear properly when I open the windows, but whenever I try to open/create a gemwindow, it immediately crashes (however, it seems to respond when I change the data - for instance, I can see color changes when i make those changes, but again, the gem window crashes immediately...)
A possible solution lies here but haven't been able to get a response when I attempt to implement this
"
Why does Gem crash when creating the Gem-window? !
When I try to create a Gem-window, my X-server crashes (or worse)? btw, I am using Ubuntu/hoary with fglrx drivers.
quick
try setting the environment variable GEM_SINGLE_CONTEXT to 1
explanation
Gem establishes an (invisible) openGL-context at startup, even if no Gem-window is created yet. When you create the Gem-window, a 2nd openGL-context is used (which shares some properties with the invisible context).
For some reasons this seems to be not possible with some gfx-drivers (e.g. ATI's proprietary fglrx drivers) and some window-managers (i suspect compiz/beryll), leading to crashes of the X-server and/or system freezes.
The current workaround is to set the environment variable GEM_SINGLE_CONTEXT=1, which prevents this dual-context magic.
how?
if you are starting Pd from the bash, you can start Pd/Gem with GEM_SINGLE_CONTEXT=1 pd -lib Gem
on bash, you can also set this permanently by adding a the line export GEM_SINGLE_CONTEXT=1 to either ~/.bashrc (the bash-configuration file in your home-directory) or to /etc/bash.bashrc (to set it for all users)
"
- newer linux user but though I followed compiling instructions for installing Gem, it seems never to create a conf file.. when I open pd-extended in terminal, I get this message:
open: ./gem.conf: No such file or directory
any thoughts or input would be VERY APPRECIATED, thanks!
Compiling gem for Vanilla on Mac OS 10.9.5
Could anyone give me some tips for how to compile the GEM library for Vanilla? Maybe just a short list of instructions to get me started? I am a total noob at this stuff and there are so many files
PS I'm sure i have to compile because just moving the GEM library into one of pd's paths gives me this at the console:
/Applications/Pd-extended.app/Contents/Resources/extra/Gem/Gem.pd_darwin: dlopen(/Applications/Pd-extended.app/Contents/Resources/extra/Gem/Gem.pd_darwin, 10): no suitable image found. Did find:
/Applications/Pd-extended.app/Contents/Resources/extra/Gem/Gem.pd_darwin: mach-o, but wrong architecture Gem: can't load library
use of threads for i²c I/O external : looking for a good strategy
@nau Hi, same boat (I don't know much about Pd internal functions & pthread), but maybe you can try to see if this external (really similar to my template, but this time to fetch real data for my HiCu project).
Look for m_clock / m_interval and clock_delay.
// ==============================================================================
// gac.c
//
// pd-Interface to [ 11h11 | gac ]
// Adapted by: Patrick Sebastien Coulombe
// Website: http://www.workinprogress.ca/guitare-a-crayon
//
// Original Author: Michael Egger
// Copyright: 2007 [ a n y m a ]
// Website: http://gnusb.sourceforge.net/
//
// License: GNU GPL 2.0 www.gnu.org
// Version: 2009-04-11
// ==============================================================================
// ==============================================================================
#include "m_pd.h"
#include <usb.h> //http://libusb-win32.sourceforge.net
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "pthread.h"
#include "../common/gac_cmds.h"
// ==============================================================================
// Constants
// ------------------------------------------------------------------------------
#define USBDEV_SHARED_VENDOR 0x16c0 /* VOTI */
#define USBDEV_SHARED_PRODUCT 0x05dc /* Obdev's free shared PID */
#define DEFAULT_CLOCK_INTERVAL 34 /* ms */
#define OUTLETS 11
#define USBREPLYBUFFER 14
unsigned char buffer[USBREPLYBUFFER]; //accessible everywhere
// ==============================================================================
// Our External's Memory structure
// ------------------------------------------------------------------------------
typedef struct _gac // defines our object's internal variables for each instance in a patch
{
t_object p_ob; // object header - ALL pd external MUST begin with this...
usb_dev_handle *dev_handle; // handle to the gac usb device
void *m_clock; // handle to our clock
double m_interval; // clock interval for polling edubeat
double m_interval_bak; // backup clock interval for polling edubeat
int is_running; // is our clock ticking?
void *outlets[OUTLETS]; // handle to the objects outlets
int x_verbose;
pthread_attr_t gac_thread_attr;
pthread_t x_threadid;
} t_gac;
void *gac_class; // global pointer to the object class - so pd can reference the object
// ==============================================================================
// Function Prototypes
// ------------------------------------------------------------------------------
void *gac_new(t_symbol *s);
void gac_assist(t_gac *x, void *b, long m, long a, char *s);
void gac_bang(t_gac *x);
void gac_bootloader(t_gac *x);
static int usbGetStringAscii(usb_dev_handle *dev, int ndex, int langid, char *buf, int buflen);
void find_device(t_gac *x);
// =============================================================================
// Threading
// ------------------------------------------------------------------------------
static void *usb_thread_read(void *w)
{
t_gac *x = (t_gac*) w;
int nBytes;
while(1) {
pthread_testcancel();
if (!(x->dev_handle)) find_device(x);
else {
nBytes = usb_control_msg(x->dev_handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
EDUBEAT_CMD_POLL, 0, 0, (char *)buffer, sizeof(buffer), DEFAULT_CLOCK_INTERVAL);
if(x->x_verbose)post("thread read %i bytes", nBytes);
//post("%i b", nBytes);
}
}
return 0;
}
static void usb_thread_start(t_gac *x) {
// create the worker thread
if(pthread_attr_init(&x->gac_thread_attr) < 0)
{
error("gac: could not launch receive thread");
return;
}
if(pthread_attr_setdetachstate(&x->gac_thread_attr, PTHREAD_CREATE_DETACHED) < 0)
{
error("gac: could not launch receive thread");
return;
}
if(pthread_create(&x->x_threadid, &x->gac_thread_attr, usb_thread_read, x) < 0)
{
error("gac: could not launch receive thread");
return;
}
else
{
if(x->x_verbose)post("gac: thread %d launched", (int)x->x_threadid );
}
}
//--------------------------------------------------------------------------
// - Message: bootloader
//--------------------------------------------------------------------------
void gac_bootloader(t_gac *x)
{
int cmd;
int nBytes;
unsigned char bootloaderbuffer[8];
cmd = 0;
cmd = EDUBEAT_CMD_START_BOOTLOADER;
if (!(x->dev_handle)) find_device(x);
else {
nBytes = usb_control_msg(x->dev_handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
cmd, 0, 0, (char *)bootloaderbuffer, sizeof(bootloaderbuffer), DEFAULT_CLOCK_INTERVAL);
}
}
//--------------------------------------------------------------------------
// - Message: bang -> poll gac
//--------------------------------------------------------------------------
void gac_bang(t_gac *x) {
int i,n;
int replymask,replyshift,replybyte;
int temp;
for (i = 0; i < OUTLETS; i++) {
temp = buffer[i];
switch(i) {
case 0:
replybyte = buffer[8];
replyshift = ((0 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 1:
replybyte = buffer[8];
replyshift = ((1 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 2:
replybyte = buffer[8];
replyshift = ((2 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 3:
replybyte = buffer[8];
replyshift = ((3 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 4:
replybyte = buffer[9];
replyshift = ((0 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 5:
replybyte = buffer[9];
replyshift = ((1 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 6:
replybyte = buffer[9];
replyshift = ((2 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 8:
temp = buffer[10];
replybyte = buffer[13];
replyshift = ((0 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 9:
temp = buffer[11];
replybyte = buffer[13];
replyshift = ((1 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
case 10:
temp = buffer[12];
replybyte = buffer[13];
replyshift = ((2 % 4) * 2);
replymask = (3 << replyshift);
temp = temp * 4 + ((replybyte & replymask) >> replyshift);
break;
}
outlet_float(x->outlets[i], temp);
}
}
//--------------------------------------------------------------------------
// - The clock is ticking, tic, tac...
//--------------------------------------------------------------------------
void gac_tick(t_gac *x) {
clock_delay(x->m_clock, x->m_interval); // schedule another tick
gac_bang(x); // poll the edubeat
}
//--------------------------------------------------------------------------
// - Object creation and setup
//--------------------------------------------------------------------------
int gac_setup(void)
{
gac_class = class_new ( gensym("gac"),(t_newmethod)gac_new, 0, sizeof(t_gac), CLASS_DEFAULT,0);
// Add message handlers
class_addbang(gac_class, (t_method)gac_bang);
class_addmethod(gac_class, (t_method)gac_bootloader, gensym("bootloader"), A_DEFSYM,0);
post("bald-approved gac version 0.1",0);
return 1;
}
//--------------------------------------------------------------------------
void *gac_new(t_symbol *s) // s = optional argument typed into object box (A_SYM) -- defaults to 0 if no args are typed
{
t_gac *x; // local variable (pointer to a t_gac data structure)
x = (t_gac *)pd_new(gac_class); // create a new instance of this object
x->m_clock = clock_new(x,(t_method)gac_tick);
x->x_verbose = 0;
x->m_interval = DEFAULT_CLOCK_INTERVAL;
x->m_interval_bak = DEFAULT_CLOCK_INTERVAL;
x->dev_handle = NULL;
int i;
// create outlets and assign it to our outlet variable in the instance's data structure
for (i=0; i < OUTLETS; i++) {
x->outlets[i] = outlet_new(&x->p_ob, &s_float);
}
usb_thread_start(x); //start polling the device
clock_delay(x->m_clock,0.); //start reading the buffer
return x; // return a reference to the object instance
}
//--------------------------------------------------------------------------
// - Object destruction
//--------------------------------------------------------------------------
void gac_free(t_gac *x)
{
if (x->dev_handle) usb_close(x->dev_handle);
freebytes((t_object *)x->m_clock, sizeof(x->m_clock));
while(pthread_cancel(x->x_threadid) < 0)
if(x->x_verbose)post("gac: killing thread\n");
if(x->x_verbose)post("gac: thread canceled\n");
}
//--------------------------------------------------------------------------
// - USB Utility Functions
//--------------------------------------------------------------------------
static int usbGetStringAscii(usb_dev_handle *dev, int ndex, int langid, char *buf, int buflen)
{
char asciibuffer[256];
int rval, i;
if((rval = usb_control_msg(dev, USB_ENDPOINT_IN, USB_REQ_GET_DESCRIPTOR, (USB_DT_STRING << 8) + ndex, langid, asciibuffer, sizeof(asciibuffer), 1000)) < 0)
return rval;
if(asciibuffer[1] != USB_DT_STRING)
return 0;
if((unsigned char)asciibuffer[0] < rval)
rval = (unsigned char)asciibuffer[0];
rval /= 2;
/* lossy conversion to ISO Latin1 */
for(i=1;i<rval;i++){
if(i > buflen) /* destination buffer overflow */
break;
buf[i-1] = asciibuffer[2 * i];
if(asciibuffer[2 * i + 1] != 0) /* outside of ISO Latin1 range */
buf[i-1] = '?';
}
buf[i-1] = 0;
return i-1;
}
//--------------------------------------------------------------------------
void find_device(t_gac *x) {
usb_dev_handle *handle = NULL;
struct usb_bus *bus;
struct usb_device *dev;
usb_init();
usb_find_busses();
usb_find_devices();
for(bus=usb_busses; bus; bus=bus->next){
for(dev=bus->devices; dev; dev=dev->next){
if(dev->descriptor.idVendor == USBDEV_SHARED_VENDOR && dev->descriptor.idProduct == USBDEV_SHARED_PRODUCT){
char string[256];
int len;
handle = usb_open(dev); /* we need to open the device in order to query strings */
if(!handle){
error ("Warning: cannot open USB device: %s", usb_strerror());
continue;
}
/* now find out whether the device actually is gac */
len = usbGetStringAscii(handle, dev->descriptor.iManufacturer, 0x0409, string, sizeof(string));
if(len < 0){
post("gac: warning: cannot query manufacturer for device: %s", usb_strerror());
goto skipDevice;
}
post("::::::%s", string);
if(strcmp(string, "11h11") != 0)
goto skipDevice;
len = usbGetStringAscii(handle, dev->descriptor.iProduct, 0x0409, string, sizeof(string));
if(len < 0){
post("gac: warning: cannot query product for device: %s", usb_strerror());
goto skipDevice;
}
if(strcmp(string, "Gac") == 0)
break;
skipDevice:
usb_close(handle);
handle = NULL;
}
}
if(handle)
break;
}
if(!handle){
post("Could not find USB device 11h11/gac");
x->dev_handle = NULL;
} else {
x->dev_handle = handle;
post("Found USB device 11h11/gac");
}
}
Cheers
Newb can't use GEM
Hi, thought I'd post here even thought the thread is old before starting a new topic because my problem is exactly that as described here, though none of the suggestions have help and no one seems to have my exact error console output, which is as follows:
WARNING: Font family 'Courier' not found, using default (DejaVu Sans Mono)
tried ./gem.l_i386 and failed
tried /usr/lib/pd/extra/Gem/gem.l_i386 and failed
tried /usr/lib/puredata/extra/gem.l_i386 and failed
tried /home/digithree/pd-externals/gem.l_i386 and failed
tried /usr/local/lib/pd-externals/gem.l_i386 and failed
tried /usr/lib/puredata/extra/gem.l_i386 and failed
tried /usr/lib/pd/extra/gem.l_i386 and failed
tried ./gem.pd_linux and failed
tried /usr/lib/pd/extra/Gem/gem.pd_linux and failed
tried /usr/lib/puredata/extra/gem.pd_linux and failed
tried /home/digithree/pd-externals/gem.pd_linux and failed
tried /usr/local/lib/pd-externals/gem.pd_linux and failed
tried /usr/lib/puredata/extra/gem.pd_linux and failed
tried /usr/lib/pd/extra/gem.pd_linux and failed
tried ./gem/gem.l_i386 and failed
tried /usr/lib/pd/extra/Gem/gem/gem.l_i386 and failed
tried /usr/lib/puredata/extra/gem/gem.l_i386 and failed
tried /home/digithree/pd-externals/gem/gem.l_i386 and failed
tried /usr/local/lib/pd-externals/gem/gem.l_i386 and failed
tried /usr/lib/puredata/extra/gem/gem.l_i386 and failed
tried /usr/lib/pd/extra/gem/gem.l_i386 and failed
tried ./gem/gem.pd_linux and failed
tried /usr/lib/pd/extra/Gem/gem/gem.pd_linux and failed
tried /usr/lib/puredata/extra/gem/gem.pd_linux and failed
tried /home/digithree/pd-externals/gem/gem.pd_linux and failed
tried /usr/local/lib/pd-externals/gem/gem.pd_linux and failed
tried /usr/lib/puredata/extra/gem/gem.pd_linux and failed
tried /usr/lib/pd/extra/gem/gem.pd_linux and failed
gem: can't load library
input channels = 2, output channels = 2
audio buffer set to 25
opened input device name hw:0
configuring sound input...
Sample width set to 2 bytes
configuring sound output...
Sample width set to 2 bytes
tried but couldn't sync A/D/A
So I've added the word "gem" (with no quotes) to the Startup list, and the external library locations (whose paths can be seen in the above output) yet it doesn't work.
Any ideas? I've verified that both pd and gem are installed and at the lastest version. I'm using Ubuntu 11.10
Thanks
Variable Grain Size - Granular Synth
I hate to bring up this old chestnut but I came across an idea that Robert Henke utilises to record and read audio for his Monolake abstraction in Max for Live and thought it might be useful to someone at some point in developing a patch in Pure Data. Essentially, as I understand it, the patch is reading between multiple record buffers to avoid clicks on playback. Smart, no?:
"We check if desired freeze position is in first or second half of buffer pointer. if in second half, we use alternatively buffer 0 and 1. If in first half, we instead freeze buffer 2 or 3 which is shifted by 50% in the Buffer sub-patcher. In this case we also shift the read out pointer by 50% to stay in sync with the shifted buffers. We do this, because we read out the buffers with the play~ object. The interpolation inside play~ cannot deal with a discontinuous pointer. If the desired playback position happens to be at the very beginning of the buffer, the grain would 'jump' back to the very end. This would cause a click. by switching between the buffers, we always get a buffer that stores at least half of the buffer size in a continuous section. This implies that with a buffer of 4000ms we can move the playback position 2000ms in the past without click, regardless of the captured buffer point."
GEM alternative for Tk GUIs?
GEM interactive GUI, evaluation so far
I tried to translate one of my setups, SliceJockey, to a GEM GUI. But by now, when the work is almost done, the setup is full of not-so-ideal workarounds and I must conclude that it worked just more straightforward with Tk.
I won't completely give up on GEM, because it is fairly well possible that audio and control procedures in SliceJockey are somehow 'tuned' to the Tk GUI because they were developed there, and a setup developed with GEM right from the start may work smooth.
Anyway, I've noticed some characteristics of GEM which are sort of incompatible with the notion of a general GUI framework. GEM is optimally suited for motion graphics and video manipulation. It is efficient where Tk is slow, when it comes to updating the screen. But the other way round is also true. Rendering of static information is in some cases much easier with Pd Tk than GEM. Some GEM bottlenecks:
-
good quality text rendering (crossplatform, with [text2d]): way too expensive
-
plotting of static arrays like sample waveform: cumbersome and expensive
-
separate Pd instances required for GEM and audio patches
GEM aspects which I find *very* attractive for GUI purpose:
-
GEM window with all it's content can be created at any size, and thus accommodated to screen size
-
fairly easy to set up an x-y pad with multiple objects of any shape or size
-
fairly easy to animate objects in response to audio data
-
option to create pictogrammed control objects
Katja
NVidia puredyne vs vista
Hey
Once again I'm back on vista. My brief journey to puredyne goes something like this.
from puredyne
partitioned new hard drive with 4 partitions 1-swap , 2 ext4 200Gib, 1 NTFS 200GB . Copied Vista to NTFS partition with gparted(started to do this with dd but with new Gibabits stuff I was skeered but hey a platter is a platter and a cluster is a cluster right). Actually there was a 5th partition in there which was the vista restoration partition but I eventually deleted it for obvious reasons.
Removed old drive ,
took machine to ethernet connection with internet,
booted to vista ,
installed Norton virus scanner - only 1 virus, 2 tracking cookies, and one gain trickler after over a year with no virus scanner, Thats pretty good and shows you can be selective about what you download and where you visit on the web and not get any viruses.
Was trying to get windows movie maker to work with mov codec which it doesnt.
Installed auto updates for the first and only time. this took about 3 hours and still needed to install service pack 1, 2. Aborted trying to update win movie maker
****Problem 1***** MS movie maker does not work with GEM mov video output codec.
Installed latest Nvidia drivers for vista.
Woohooo OpenGl hardware acceleration GEM works so much better in vista now.
*****Problem 2********ASIO for all does not allow 2 applications to run with audio and midi at the same time. If I wanted to run Widi and play my guitar so puredata can receive midi input from guitar ASIO will not allow it but ASIO for all is the only way I can get latency down so this would be feasible.
Got frustrated.
Installed fresh copy of puredyne onto 2nd ext4 partition.
ran puredata audio latency good with fresh install. gem video bad.
used synaptics to install nvidia drivers. v185 I think.
ran GEm error no opengl config.
downloaded gdeb , flash player, google chrome, nvidia drivers from nvidia site.
installed gdeb from terminal, flash and chrome from gdeb.
rebooted to log in as root and iunstalled nvidia drivers.
woohoo hardware acceleration for opengl
******problem 3************
gem works great but audio glitches with puredata window visible.
when only gem window is visible i can unaudioglitchily move the mouse around to control same parameters that would normaly be controled with sliders in pd window.
Seems like before i upgraded nvidia video drivers hw:do o whatever it is, was listed in JackD as realtek HD Audio, now it is listed as NVIDIA HD Audio.
So Gem works great but not when Pd window is open and I think my audio drivers were replaced with Nvidia.
I would really like to get back to my patch and stop wasting time on these operating systems and hardware configurations I thought in the last 15 years all this hardware acelleration and autodetection would be figured out but no all we got is rc.0, rc.01, rc.02, rc, etc...... instead of just rc.d.
Ok I'm getting an error when I exit puredyne that says pid file not found is jackd running. anyone know what that means?
Also does anyone have a keymap for gem keyboard for linux, windows and mac so I don't have to record them.
Any suggestions about what to do about my ASIO problems in windows?
Any suggestions about my audio driver in Linux?
Any suggestions about my GEM mov video / windows incompatibilities?
I can import the mov video and audio to SF Acid 3.0 and output a 2Gb avi then import it into windows movie maker but this is crazy to do for a 7 minute 12fps 320x240 video.
Ahhhhhhhhh!
Any suggestions are welcome!
PS I believe someone could rewrite puredata's audio and video interface in assembly language to control their hardware before figuring out how to get these operating systems to do it.
Export patch as rtas?
@Maelstorm said:
If you're on OSX, jack can be used as an insert plug-in so you can avoid the separate tracks, but you still get the latency.
which you can, depending on your host, eliminate by setting the track delay for the track with the plugin. So if the buffer is 512 sample/11.82 ms then set the delay to that and it should be spot on.
I've had the whole Jack graph latency explained to me numerous times by Stephane Letz and it still doesn't go in.....Heres what he told me...
> > Its the Pd > JAck > Ableton latency. (Ableton has otoh 3 different
> > ways of manually setting latency compensation - I'm just not very
> > clear on where to start with regards to input from JAck)
> >>>>
>
> This is NO latency introduced in a Pd > JAck > Ableton kind of
> chain; the JACK server activate each client in turn (that is Pd *then*
> Ableton in this case) in the *same* given audio cycle.
>
> Remember : the JACK server is able to "sort" (in some way) the graph
> of all connected clients to activate each client audio callback at the
> right place during the audio cycle. For example:
>
> 1) in a sequential kind of graph like IN ==> A ==> B ==> C ==> OUT,
> JACK server will activate A (which would typically consume new audio
> buffers available in machine audio IN drivers) then activate B (which
> would typically consume "output" just produced by A) , then activate
> C , then produce the machine OUT audio buffers.
>
> 2) in a graph will parallel sub-graph like : IN ==> A ==> B ==> C
> ==> OUT and IN ==> D ==> B ==> C ==> OUT (that is both A and D are
> connected to input and send to, then JACK server is able to
> activate A and D at the same time (since the both only depends of IN)
> and a multi-core machine will typically run A and D at the same time
> on 2 different cores. Then when A *and* D are finished, B can be
> activated... and so on.
>
> The input/output latency of a usual CoreAudio application running
> is: driver input latency + driver input latency offset + 2
> application buffer-size + driver output latency + driver output
> latency offset.
>
this next part is the important bit i think...
> For a graph of JACK clients: driver input latency + driver input
> latency offset + 2 JACK Server buffer-size + ( one extra buffer-
> size ) + driver output latency + driver output latency offset.
>
> (Note : there is an additional one extra buffer-size latency on OSX,
> since the JACK server is running in the so called "asynchronous" mode
> [there is also a "synchronous" mode without this one extra buffer-size
> available, but it is less reliable on OSX and we choose to use the
> "asynchronous" mode by default.])
>
> Stephane
>
Fedora 10 : Gem: can't load library
hi there,
I've got pd running fine for sounds but I'ld like Gem (for a reactable); but I've got this error at pd startup :
Gem: can't load library
I am with Fedora 10,
kernel :
$ uname -a
Linux hal 2.6.27.37-170.2.104.fc10.i686 #1 SMP Mon Oct 12 22:01:53 EDT 2009 i686 i686 i386 GNU/Linux
pd version :
$ yum info pd
Loaded plugins: refresh-packagekit
Available Packages
Name : pd
Arch : i386
Version : 0.39.3
Release : 1.cvs.07.07.23.fc10.ccrma
Size : 5.9 M
Repo : planetccrma
Summary : Real-time patchable audio and multimedia processor.
URL : http://pure-data.sourceforge.net/
License : GPL
Description: Pd gives you a canvas for patching together modules that analyze,
: process, and synthesize sounds, together with a rich palette of
: real-time control and I/O possibilities. Similar to Max
: (Cycling74) and JMAX (IRCAM). A related software package named Gem
: extends Pd's capabilities to include graphical rendering.
Here is what pd tells when started with "pd" :
[import] $Revision: 1.2 $
[import] is still in development, the interface could change!
compiled against Pd version 0.41.4
couldn't open MIDI input device 0
couldn't open MIDI output device 0
opened 0 MIDI input device(s) and 0 MIDI output device(s).
libdir loader $Revision: 1.8 $
compiled on Oct 27 2009 at 17:32:35
compiled against Pd version 0.41.4.extended
Gem: can't load library
libdir_loader: added 'cyclone' to the global objectclass path
libdir_loader: added 'zexy' to the global objectclass path
libdir_loader: added 'creb' to the global objectclass path
libdir_loader: added 'cxc' to the global objectclass path
libdir_loader: added 'iemlib' to the global objectclass path
libdir_loader: added 'list-abs' to the global objectclass path
libdir_loader: added 'mapping' to the global objectclass path
libdir_loader: added 'markex' to the global objectclass path
libdir_loader: added 'maxlib' to the global objectclass path
libdir_loader: added 'memento' to the global objectclass path
libdir_loader: added 'mjlib' to the global objectclass path
libdir_loader: added 'motex' to the global objectclass path
libdir_loader: added 'oscx' to the global objectclass path
libdir_loader: added 'pddp' to the global objectclass path
libdir_loader: added 'pdogg' to the global objectclass path
libdir_loader: added 'pixeltango' to the global objectclass path
libdir_loader: added 'rradical' to the global objectclass path
libdir_loader: added 'sigpack' to the global objectclass path
libdir_loader: added 'smlib' to the global objectclass path
libdir_loader: added 'toxy' to the global objectclass path
libdir_loader: added 'unauthorized' to the global objectclass path
libdir_loader: added 'pan' to the global objectclass path
libdir_loader: added 'freeverb' to the global objectclass path
libdir_loader: added 'hcs' to the global objectclass path
libdir_loader: added 'jmmmp' to the global objectclass path
libdir_loader: added 'ext13' to the global objectclass path
libdir_loader: added 'ggee' to the global objectclass path
libdir_loader: added 'flib' to the global objectclass path
libdir_loader: added 'ekext' to the global objectclass path
libdir_loader: added 'flatspace' to the global objectclass path
pdp: can't load library
pidip: can't load library
And here is part of what pd tells when started with "pd -verbose" :
libdir loader $Revision: 1.8 $
compiled on Oct 27 2009 at 17:32:35
compiled against Pd version 0.41.4.extended
tried ./Gem.l_i386 and failed
tried /usr/share/fonts/bitstream-vera/Gem.l_i386 and failed
tried /usr/lib/pd/extra/cyclone/Gem.l_i386 and failed
tried /usr/lib/pd/extra/zexy/Gem.l_i386 and failed
tried /usr/lib/pd/extra/creb/Gem.l_i386 and failed
tried /usr/lib/pd/extra/cxc/Gem.l_i386 and failed
tried /usr/lib/pd/extra/iemlib/Gem.l_i386 and failed
tried /usr/lib/pd/extra/list-abs/Gem.l_i386 and failed
tried /usr/lib/pd/extra/mapping/Gem.l_i386 and failed
tried /usr/lib/pd/extra/jmmmp/Gem.l_i386 and failed
tried /usr/lib/pd/extra/maxlib/Gem.l_i386 and failed
tried /usr/lib/pd/extra/memento/Gem.l_i386 and failed
tried /usr/lib/pd/extra/mjlib/Gem.l_i386 and failed
tried /usr/lib/pd/extra/markex/Gem.l_i386 and failed
tried /usr/lib/pd/extra/oscx/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pddp/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pdogg/Gem.l_i386 and failed
tried /usr/lib/pd/extra/motex/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pmpd/Gem.l_i386 and failed
tried /usr/lib/pd/extra/rradical/Gem.l_i386 and failed
tried /usr/lib/pd/extra/sigpack/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pixeltango/Gem.l_i386 and failed
tried /usr/lib/pd/extra/toxy/Gem.l_i386 and failed
tried /usr/lib/pd/extra/unauthorized/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pan/Gem.l_i386 and failed
tried /usr/lib/pd/extra/smlib/Gem.l_i386 and failed
tried /usr/lib/pd/extra/hcs/Gem.l_i386 and failed
tried /usr/lib/pd/extra/freeverb/Gem.l_i386 and failed
tried /usr/lib/pd/extra/ggee/Gem.l_i386 and failed
tried /usr/lib/pd/extra/ext13/Gem.l_i386 and failed
tried /usr/lib/pd/extra/flib/Gem.l_i386 and failed
tried /usr/lib/pd/extra/ekext/Gem.l_i386 and failed
tried /usr/lib/pd/extra/Gem.l_i386 and failed
tried /usr/lib/pd/extra/flatspace/Gem.l_i386 and failed
tried /home/zbl/pd-externals/Gem.l_i386 and failed
tried /usr/local/lib/pd-externals/Gem.l_i386 and failed
tried /usr/lib/pd/extra/Gem.l_i386 and failed
tried ./Gem.pd_linux and failed
tried /usr/share/fonts/bitstream-vera/Gem.pd_linux and failed
tried /usr/lib/pd/extra/cyclone/Gem.pd_linux and failed
tried /usr/lib/pd/extra/zexy/Gem.pd_linux and failed
tried /usr/lib/pd/extra/creb/Gem.pd_linux and failed
tried /usr/lib/pd/extra/cxc/Gem.pd_linux and failed
tried /usr/lib/pd/extra/iemlib/Gem.pd_linux and failed
tried /usr/lib/pd/extra/list-abs/Gem.pd_linux and failed
tried /usr/lib/pd/extra/mapping/Gem.pd_linux and failed
tried /usr/lib/pd/extra/jmmmp/Gem.pd_linux and failed
tried /usr/lib/pd/extra/maxlib/Gem.pd_linux and failed
tried /usr/lib/pd/extra/memento/Gem.pd_linux and failed
tried /usr/lib/pd/extra/mjlib/Gem.pd_linux and failed
tried /usr/lib/pd/extra/markex/Gem.pd_linux and failed
tried /usr/lib/pd/extra/oscx/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pddp/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pdogg/Gem.pd_linux and failed
tried /usr/lib/pd/extra/motex/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pmpd/Gem.pd_linux and failed
tried /usr/lib/pd/extra/rradical/Gem.pd_linux and failed
tried /usr/lib/pd/extra/sigpack/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pixeltango/Gem.pd_linux and failed
tried /usr/lib/pd/extra/toxy/Gem.pd_linux and failed
tried /usr/lib/pd/extra/unauthorized/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pan/Gem.pd_linux and failed
tried /usr/lib/pd/extra/smlib/Gem.pd_linux and failed
tried /usr/lib/pd/extra/hcs/Gem.pd_linux and failed
tried /usr/lib/pd/extra/freeverb/Gem.pd_linux and failed
tried /usr/lib/pd/extra/ggee/Gem.pd_linux and failed
tried /usr/lib/pd/extra/ext13/Gem.pd_linux and failed
tried /usr/lib/pd/extra/flib/Gem.pd_linux and failed
tried /usr/lib/pd/extra/ekext/Gem.pd_linux and failed
tried /usr/lib/pd/extra/Gem.pd_linux and failed
tried /usr/lib/pd/extra/flatspace/Gem.pd_linux and failed
tried /home/zbl/pd-externals/Gem.pd_linux and failed
tried /usr/local/lib/pd-externals/Gem.pd_linux and failed
tried /usr/lib/pd/extra/Gem.pd_linux and failed
tried ./Gem/Gem.l_i386 and failed
tried /usr/share/fonts/bitstream-vera/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/cyclone/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/zexy/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/creb/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/cxc/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/iemlib/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/list-abs/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/mapping/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/jmmmp/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/maxlib/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/memento/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/mjlib/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/markex/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/oscx/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pddp/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pdogg/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/motex/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pmpd/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/rradical/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/sigpack/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pixeltango/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/toxy/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/unauthorized/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/pan/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/smlib/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/hcs/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/freeverb/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/ggee/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/ext13/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/flib/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/ekext/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/flatspace/Gem/Gem.l_i386 and failed
tried /home/zbl/pd-externals/Gem/Gem.l_i386 and failed
tried /usr/local/lib/pd-externals/Gem/Gem.l_i386 and failed
tried /usr/lib/pd/extra/Gem/Gem.l_i386 and failed
tried ./Gem/Gem.pd_linux and failed
tried /usr/share/fonts/bitstream-vera/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/cyclone/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/zexy/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/creb/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/cxc/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/iemlib/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/list-abs/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/mapping/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/jmmmp/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/maxlib/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/memento/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/mjlib/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/markex/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/oscx/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pddp/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pdogg/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/motex/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pmpd/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/rradical/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/sigpack/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pixeltango/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/toxy/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/unauthorized/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/pan/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/smlib/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/hcs/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/freeverb/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/ggee/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/ext13/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/flib/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/ekext/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/flatspace/Gem/Gem.pd_linux and failed
tried /home/zbl/pd-externals/Gem/Gem.pd_linux and failed
tried /usr/local/lib/pd-externals/Gem/Gem.pd_linux and failed
tried /usr/lib/pd/extra/Gem/Gem.pd_linux and failed
tried ./Gem/Gem-meta.pd and failed
tried /usr/share/fonts/bitstream-vera/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/cyclone/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/zexy/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/creb/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/cxc/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/iemlib/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/list-abs/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/mapping/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/jmmmp/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/maxlib/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/memento/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/mjlib/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/markex/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/oscx/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/pddp/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/pdogg/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/motex/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/pmpd/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/rradical/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/sigpack/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/pixeltango/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/toxy/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/unauthorized/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/pan/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/smlib/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/hcs/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/freeverb/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/ggee/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/ext13/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/flib/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/ekext/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/flatspace/Gem/Gem-meta.pd and failed
tried /home/zbl/pd-externals/Gem/Gem-meta.pd and failed
tried /usr/local/lib/pd-externals/Gem/Gem-meta.pd and failed
tried /usr/lib/pd/extra/Gem/Gem-meta.pd and failed
Gem: can't load library
I can't locate files like Gem-meta.pd or Gem.pd_linux on the computer;
I keep investigating, but any hint is welcome, thanks
Totally lame NOOB Gem installation question
apologies for being such an idiot and insulting your forum with my lowliness
I've been having lots of fun with puredata and want to start incorporating some images and possibly video into my stuff.
I have Pd extended - which apparently has GEM included, although I can fins no trace of it.
I've downloaded GEM for mac, but the instructions for installing it make no sense with what actually appears once it's downloaded. The instuctions:
"GEM under Mac OSX
* Download GEM for MacOSX
* Unpack"
All this is fine
"* copy folder content to your pd installation, under /gem
* copy or move Gem.PD_Darwin to PDs extra folder
* start with additional parameter -lib gem"
These are not fine for me..I don't appear to have a pd installation folder...just the app.
I also don't seem to have anything called Gem.PD_Darwin
I've tried about a million variations on the correct link in the startup menu of pd to load up GEM but it never works.
I'm a bit exasperated now...and desperate enough to show myself up as a muppet in front of you guys....pleeease can anyone help me out here?
btw I've been lurking for months and picked up many many wonderful tips and bits of advice on here, for which I thank you all.