configure script doesn't see Jack and Also

Help
2008-10-27
2013-05-23
1 2 3 > >> (Page 1 of 3)
  • Hello,
    I am excited to use this software, however the configuration script fails to find my Alsa and Jack.  I think it might be because I added them with Ubuntu Application Add/Remove wizard and their info is not in my package config file.  Any help would be greatly appreciated.  Thanks in advance.
    mR

     
    • Nick Copeland
      Nick Copeland
      2008-10-28

      You probably want to try the following packages,

      alsa-dev or alsa-lib
      jack-dev

      If you use the Synaptic package manager and search on jack and then alsa it should give you some packages such as these ones. There is a possibility that the configure script could not find jack or alsa because their "pc" files were installed in some wierd location though.

      Regards,
      Nick.

       
    • Marko
      Marko
      2009-06-11

      I have the same problem.  Thing is I'm trying to build on osx.  I know my jack.pc is in my /usr/local/lib/pkg-config/   is there a way to use some export command to point to it?

       
    • Nick Copeland
      Nick Copeland
      2009-06-12

      Hi Marko,

      The issue you have is a bit different: are you trying to compile on Mac OS-X?

      Bristol will not work on OS-X, it really is just for Linux and some other Unix variants. You might get the engine to compile since the underlying operating system is BSD but because Apple decided not to use the X11 Windowing (for their own good reasons) then the GUI will not build - it has no interface at all to the OS-X graphics. This has been reported before and my take on it is this: there are lots and lots of very good software emulators available on Mac systems. Some off them are free, many of them not but that is your choice - Apple do no sell open systems and GPL software does not fit too well in closed environments.

      Good luck,

      Nick

       
    • Andrew C
      Andrew C
      2009-06-12

      Good morning Nick,

      I've been thinking, would it really be that difficult to port bristol to other platforms? Wouldn't you just have to be running an X server?

      Andrew.

       
    • Nick Copeland
      Nick Copeland
      2009-06-12

      Hi Andrew,

      It should hardly any work to get it to run on any Unix system that has X11 - I have done freebsd ports for it but that was a long time ago. There are issues though.

      The engine needs at least OSS to work and that is very widely available. There may be a little bit of ALSA code that I now rely on but that can be worked out and if Jack is available even better.

      The GUI is a pretty big piece of work. My Brighton API should only have Unix dependencies - all its data structures are internal, then there is a shim which links brighton to the underlying OS, libbrightonB11 is the only shim I support, it links to X11. This design was to eventually support other OS using libbrightonBMac for example but I don't have one of these, I don't know much about building software on Apple though: I don't even know if they ship a compiler and if it has to be purchased then it's a waste of time (in my opinion).

      There is another issue though, and that regards copyrights. I have had some legal departments get in touch with me regarding the emulators infringing on right. None of them has gone ahead with action since I have always agreed to their demands however a part of the issue is that as long as this stays on Linux then it does not complete with any of the manufacturers own software emulators. If it were on Windows or Mac then I think they would be less lenient, requesting I drop a lot of emulators due to competition. That is not a road I want to go down - it is asking for trouble. Only having it on Linux just makes sense - either somebody wants free software or they don't. If they do then Linux is where it is at, I don't see why open source software should be helping a multibillion dollar company like Apple to sell more systems.

      Kind regards, Nick

       
    • Andrew C
      Andrew C
      2009-06-12

      "None of them has gone ahead with action since I have always agreed to their demands"

      Their demands? Saying that you are not to release this emulator under this name? From what I've read, Roland have been very tough about this, even pulling some freeware VSTI emulator of their Juno 106 off the internet..

      "If it were on Windows or Mac then I think they would be less lenient, requesting I drop a lot of emulators due to competition"

      Competition? This is what annoys me about these big corporations, is it REALLY hurting them with regards sales/infringing copyright?

      Andrew.

       
    • Nick Copeland
      Nick Copeland
      2009-06-12

      I personally don't have issues with the requests that have been made of me and the contact has always been very, very amiable. The issues for all of the manufacturers is that free software might distribute thousands of copies if it was available on windows or mac platforms. If the manufacturers have their own software they might typically lose six figure dollar values: having somebody else distribute it for free is a loss of revenue to them.

      The issue is this: if somebody builds a free Juno emulator and gets 5 thousand downloads then they probably get those downloads because of using the Juno name and the downloads are at Rolands expense. If the software did not associate itself with this great synth then nobody would be interested in it. That is a reasonable issue of trademarking and bristol could be considered to infringe on those rights since there are associations - I put in disclaimers all over the place to say the emulator is not associated with any of the manufacturers and as long as it stays on Linux there will be no loss of revenue to them.

      Free software is a good thing but there is also a bit of responsibility on our part. Bristol is there because these tools are not available on Linux. If they were available on Linux I would probably be developing something else.

      regards, nick

       
    • Andrew C
      Andrew C
      2009-06-12

      Just out of interest, what do the legal departments say to you? Like, not to say that this is your own product and that you're infringing their copyright?

      Andrew.

       
    • Nick Copeland
      Nick Copeland
      2009-06-12

      Generally it's requesting I don't use names or trademarks - they don't want this product to appear as if it was theirs. As I said, the exchanges were always very cordial: the demands were not excessive and when agreeing to the requests (changing names, images, providing disclaimers and in one case I added references to the actual manufacturers products) they have been satisfied that bristol is a linux app paying homage to some great synths and nothing else.

      One company did the opposite, some of the people there remarked that their own emulator was weak and they were actually quite receptive to an open sourced project to do the same so it does go both ways.

      I really think this would not be quite so simple on another OS that was not 0$. There are some strange rights that have been sold to rights - propellerheads bought the rights to the Boss (now Roland?) DrRythm interface on a computer and they have applied at least one cease and desist order against an open source project that now no longer exists. I do not want to go there.

      We should really take this up offline, its not something I really want broadcast on the discussion groups. If any companies get offended by what I am doing then I am really not in a position to contest their demands (nor do I really want to). Bristol is a linux app, its free, opensource, I do not intend to take it elsewhere nor to support anybody else who might want to do that.

      Regards, Nick.

       
    • Marko
      Marko
      2009-06-12

      Sorry guys... didn't mean to start an argument or anything.  I'm using this for my personal use, and not planning to distribute binaries or anything...  I don't use vst or anything because I mainly use oss on my mac.  I choose mac because it just works with my audio interfaces(as well I need it for school apps).

      I got jack libs to show up... I ran into the libbrighton error.  This lib doesn't seem available anywhere through google search. Or am i searching the wrong name? i searched libB11 and libbrighton...  i don't wanna hear anything about copywrite and things because i don't think i'm breaking them by porting an oss app..

       
    • Andrew C
      Andrew C
      2009-06-12

      Libbrighton is part of Bristol, it's the library that uses X11 to draw the graphics.

      Andrew.

       
    • Marko
      Marko
      2009-06-12

      Great.  So I've gotten past the X11 and libbrighton errors.  Now I'm getting this 'setkey' declaration.  Would anyone have any idea?

      libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/X11R6/include -Wall -g -I./../include/brighton -I/usr/X11R6/include/ -I. -O0 -g -O2 -I/usr/X11R6/include -MT brightonDisplay.lo -MD -MP -MF .deps/brightonDisplay.Tpo -c brightonDisplay.c  -fno-common -DPIC -o .libs/brightonDisplay.o
      In file included from brightonDisplay.c:27:
      brightonkeymappings.h:48: error: conflicting types for 'setkey'
      /usr/include/unistd.h:539: error: previous declaration of 'setkey' was here
      make[2]: *** [brightonDisplay.lo] Error 1
      make[1]: *** [all-recursive] Error 1
      make: *** [all] Error 2

      I'm not exactly sure what that means.  Thanks for the help so far!

       
      • Andrew C
        Andrew C
        2009-06-12

        Can you paste those lines that are mentioned? brightonkeymappings.h:48 and /usr/include/unistd.h:539

        Thanks,

        Andrew.

         
    • Andrew C
      Andrew C
      2009-06-12

      It'd be really cool if you managed to get Bristol running on a Mac...

      Andrew.

       
    • Andrew C
      Andrew C
      2009-06-12

      hehe, my bad you're not on a mac... never mind...

      Andrew.

       
    • Nick Copeland
      Nick Copeland
      2009-06-12

      Andrew was right when he said that libbrighton is a part of the application but as ever the details are a bit more gory.

      Firstly there is the program called brighton - this is the GUI, it uses libbrighton for rendering images onto internal data structures. These internal structures are not a part of any windowing system so this library should port quite easily.

      After that you have libbrightonB11, this is called by libbrighton and it translates the libbrighton requests into something the underlying windowing system understands. This is heavily dependent on X11 - it uses libx11.so, it needs the X11 header files to compile, etc. If you have issues getting libbrighton to compile you will have far, far more getting the B11 library to work if you don't actually have X11 as a part of your operating system. It's not the first time this has been attempted, last time around it stopped at B11.

      I have no objection to somebody writing libbrightonBOSX for Mac systems but as I already explained, I will not be doing this and I personally think it is more effort than you think. I also do not want bristol on anything but linux and the reasons are discussed throughout this thread.

      Regards, Nick

       
    • Marko
      Marko
      2009-06-12

      Andrew I am on a mac.  Nick as long as you don't have a problem then awesome!

      this is from starting line 45 in bightonkeymappings.h

      void
      setkey(int index, int width, unsigned char ch0, unsigned char ch1,
      unsigned char ch2, unsigned char ch3, unsigned char ch4)
      {
          if (index >= KEYTAB_SIZE)
              return;

          key[index].map = index;

      #ifdef BRISTOL_FIXEDWIDTH
          key[index].width = 5;
      #else
          key[index].width = width;
      #endif

          key[index].bitmap[0] = ch0;
          key[index].bitmap[1] = ch1;
          key[index].bitmap[2] = ch2;
          key[index].bitmap[3] = ch3;
          key[index].bitmap[4] = ch4;
      }

      and this is from the /usr/include/unistd.h

      void     setkey(const char *) __DARWIN_ALIAS(setkey);
      #else /* !__DARWIN_UNIX03 */
      int      setkey(const char *);

      I don't think I'm too far off from making this build successfully on mac.  Thanks.

       
    • Marko
      Marko
      2009-06-12

      Also @ Nick.  I wont be releasing any builds or source.  I just want it for my own use.  So you wont have to worry about a mac build/source available or any troubles that go along with it.

       
    • Andrew C
      Andrew C
      2009-06-13

      Hey Marko,

      Yeah, "Set key" is defined as taking:

      (int index, int width, unsigned char ch0, unsigned char ch1,
      unsigned char ch2, unsigned char ch3, unsigned char ch4)

      As it's parameters

      while, on your system it's set as:

      (const char *)

      Also, my /usr/include/unistd.h doesn't have any references to SetKey... That is probably a mac OSX thing?

      I'd hazard a guess, that maybe the SetKey is used in libbrighton to detect (abc keys) keyboard strokes. Maybe that's the purpose of the one in /usr/include/unistd.h on mac osx?

       
    • Nick Copeland
      Nick Copeland
      2009-06-13

      setkey(): I implement a function called setkey(), I use it to configure bitmaps for characters
      you type. The only definition is in brightonkeymappings.h. The choice of setkey
      was wrong, it should be called 'brightonsetkey()' so you can fix it with the following:

      vi brightonkeymappings.h
      :%s/setkey/brightonsetkey/g

      Michael, how did you get around issues with the X libraries? Are you running the OS-X X11 server with header files for compilation? That would have made it a lot easier

      Nick

       
    • Marko
      Marko
      2009-06-13

      Nick,  thanks for the help on the setkey problem. it fixed it!  I use osx-x11 extensivly for matlab and such, which provides the libs for it.  I just had to add a -L library flag to the X11 libs somewhere... i don't even remember to tell you the truth.  I'm running into another error now.  This looks like a osx's fault.

      libtool: link: gcc -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o .libs/libbrighton.0.dylib  .libs/brightonBitmaps.o .libs/brightonButton.o .libs/brightonC.o .libs/brightonColorMgt.o .libs/brightonDevice.o .libs/brightonDispatch.o .libs/brightonDisplay.o .libs/brightonDisplayMgt.o .libs/brightonEventHandlers.o .libs/brightonHammond.o .libs/brightonInterface.o .libs/brightonKbd.o .libs/brightonLayer.o .libs/brightonPanelMgt.o .libs/brightonPic.o .libs/brightonRender.o .libs/brightonRotary.o .libs/brightonScale.o .libs/brightonShadowMgt.o .libs/brightonTouchpanel.o .libs/brightonVu.o .libs/brightonWindowMgt.o .libs/brightonXpmRead.o .libs/brightonMenu.o .libs/brightonLedBlock.o .libs/brightonHButton.o .libs/brightonLever.o .libs/brightonModWheel.o .libs/brightonLed.o .libs/brightonSlowTimer.o .libs/brightonFastTimer.o   ../libbrightonX11/.libs/libB11.dylib -L/usr/X11R6/lib -lX11 -lm    -install_name  /usr/local/lib/libbrighton.0.dylib -compatibility_version 1 -current_version 1.40 -Wl,-single_module
      ld: multiple definitions of symbol _id
      .libs/brightonWindowMgt.o definition of _id in section (__DATA,__data)
      .libs/brightonHButton.o definition of _id in section (__DATA,__common)
      /usr/libexec/gcc/i686-apple-darwin8/4.0.1/libtool: internal link edit command failed
      make[2]: *** [libbrighton.la] Error 1
      make[1]: *** [all-recursive] Error 1
      make: *** [all] Error 2

      I'll do some searching.  Any help would be awesome too.  Thanks all so much!

       
    • Nick Copeland
      Nick Copeland
      2009-06-14

      Interesting failure. The error message is correct, 'id' is multiply defined however gcc on Linux has never reported this. I think the reason for it working on Linux is optimisation - the value of 'id' is never used in one of the files so it is probably optimised out of the compilation.

      You need to change two things (which I will change in my code here too):

      Edit brightonHButton.c
      At line 35 you get something like 'int id;'' - delete this line. That is actually enough, however to be correct:

      Edit brigtonWindowMgt.c
      At line 28 you get 'int id = 0;', change this to 'static int id = 0;'

      That should get you on to the next error. If you get it to run things will be interesting again: the Mac is 64 bit clean I think, it uses 64 bit binaries. Linux is still very messy with 64 bit and although it has been worked on to get it to build and run on 64 bit, and that people report using it with 64 bit distributions, I am not certain how well it will work for you. Will have to see.

      Regards, Nick

       
    • Marko
      Marko
      2009-06-15

      Thanks Nick, big big big help. 

      I will try this out later this evening and let you know.  My mac actually runs 32-bit.  I haven't upgraded.  I'm on the first gen macbooks with intel core duo (not core 2 duo, which is 64-bit).   I keep it because its very very stable system for me right now.  Thanks

      -Marko

       
    • Marko
      Marko
      2009-06-16

      Making progress.  Also had to restart from the beginning to add liblo.  Nick you have a skill! An interesting error came up though. 

      libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/X11R6/include -Wall -g -I./../include/slab -I./../include/bristol -DBRISTOL_HAS_ALSA=0 -D_BRISTOL_JACK -I/usr/local/include -g -O2 -I/usr/X11R6/include -MT audioEngine.lo -MD -MP -MF .deps/audioEngine.Tpo -c audioEngine.c  -fno-common -DPIC -o .libs/audioEngine.o
      audioEngine.c:71:27: error: sys/soundcard.h: No such file or directory
      audioEngine.c: In function 'setAudioStart2':
      audioEngine.c:124: warning: unused variable 'enable'
      audioEngine.c: In function 'setAudioStop2':
      audioEngine.c:164: warning: unused variable 'enable'
      make[2]: *** [audioEngine.lo] Error 1
      make[1]: *** [all-recursive] Error 1
      make: *** [all] Error 2

      why would this come up if i'm not building with OSS or alsa. I want to build with jack only.   i'm now configuring with ./configure --disable-alsa  is there another flag i should add? or maybe i'm just missing the right jack library?

       
1 2 3 > >> (Page 1 of 3)