Problems Running Bristol

Help
2008-03-24
2013-05-23
  • Stuart Ewen

    Stuart Ewen - 2008-03-24

    Ok guys, I just don't seem to be able to get Bristol to work.  Haven't ever used MIDI before, I just like the idea of playing around with this program.

    Installed and compiled (sabayon -> gentoo AMD64 system).

    When I run startBristol -mini I get the following output

    spawning midi thread
    parent going into idle loop
    midi sequencer
    open_remote_socket: Address already in use
    socket id 5028
    Could not open control socket, count 0
    No controlling socket available: anticipating MIDI
    Error opening control device, exiting midi thread
    connected to :0.0
    display is 1600 by 1200 pixels
    Window is w 1600, h 1200, d 24, 0 0 0
    Using DirectColor display
    alloc color by name Blue
    Initialise the mini link to bristol: 60ba80
    hostname is localhost, bristol
    TCP port: 5028
    Connected to the bristol control socket: 5
    bristolengine already active
    parent exiting
    Midi read retry
    Midi read retry
    Midi read retry
    return - no data in buffer
    cleanupBrighton(0)
    Midi read retry
    Midi read retry
    Midi read retry
    return - no data in buffer
    socket closed
    request acked: -1

    A white graphic window appears, which I presume should be the keyboard, and then disappears at the end of the start script.

    I'm assuming my problem is related to the "Midi read retry" message.  Do I need hardware, other than a soundcard, to make this work?

    The only 2 soundcards I have at the moment are an onboard Realtek AC97 (no MIDI) and a Turtle Beach Santa Cruz (MIDI, but broken/incomplete in cs46xx AFAIK).

    Any ideas?

    Thx!

    Rgds

    Stuart

     
    • Nick Copeland

      Nick Copeland - 2008-03-24

      Hi Stuart,

      I can't tell everything from this debug output since what I think has happened is something like this:

      1. You started bristol and it failed.
      2. You started it again, it failed again
      3. You took the debugs

      That is conjecture, but the message "bristol engine is already active" implies the engine could not start the second time (that is still possible but with other options for dual soundcards for example). Anyway, to make a long story boring you may want to 'ps ax | grep bristol' to see if the bristol engine is still running and kill it.

      Now, you have a 64 bit system and there is a known issue with one of the interfaces for the accelerated graphics interface. Once you have killed the engine you can try to start it with the following:

      startBristol -memory -pixmap

      This should start a memoryMoog emulator without the acceleration code (the memory emulator actually sounds better than the mini for several reasons). It will not be much slower since you still get the accelerated color cache, just not the fast XImage graphical interface. One of the symptoms of the XImage failure is a white window however you also get another error message something like 'could not allocated image' but that may have been in the previous diags output.

      Also, the diags do not show what version you are running (the next release will always report the version number) however that should not affect the problem, it just helps with debugging.

      Anyway, you only need a soundcard and some device drivers - ALSA is typically installed, you should see it in the output from 'cat /proc/asound/devices' and its MIDI interfacing, typically from 'cat /proc/asound/seq/devices':

      nicky@nickpc:~$ cat /proc/asound/devices
        2:        : timer
        3:        : sequencer
        4: [ 0- 4]: digital audio playback
        5: [ 0- 3]: digital audio capture
        6: [ 0- 2]: digital audio capture
        7: [ 0- 1]: digital audio capture
        8: [ 0- 0]: digital audio playback
        9: [ 0- 0]: digital audio capture
      10: [ 0]   : control

      nicky@nickpc:~$ cat /proc/asound/seq/drivers
      snd-seq-midi,loaded,0
      snd-seq-oss,loaded,0

      If you have this or similar output then bristol should find the interfaces by default however if not also try with the -alsa flag. If you get it to work then for MIDI master keyboards you need to look at how 'aconnect' works to link your MIDI master keyboard to the engine and perhaps also the GUI. If you do no see this output then you need to have a look at your ALSA drivers or perhaps look for OSS interfacing with -oss however that is unlikely.

      Regards,

      Nick.
      PS. That is a nice big display you have so bristol will look pretty small. Scaling the window gives you some pretty grizzly results at the moment, I am working on improving that bit of code.

       
    • Stuart Ewen

      Stuart Ewen - 2008-03-24

      Hey Nick

      Sound system is ALSA 1.0.16, version is bristol 0.20.1.
      Linux BigBox64 2.6.22-sabayon #1 SMP Wed Aug 1 22:48:31 UTC 2007 x86_64 AMD Athlon(tm) 64 Processor 3500+ AuthenticAMD GNU/Linux

      Thanks for the comprehensive reply ;-).  I tried with both the Realtek and the Santa Cruz., in both cases the "Problem opening audio device" occurs.  PCM audio is normal with other apps.

      The output is now (after reboot):

      sjewen@BigBox64 ~ $ startBristol -memory -pixmap
      spawning midi thread
      parent going into idle loop
      midi sequencer
      Opened listening control socket: 5028
      Client ID = 128
      connected to :0
      display is 1600 by 1200 pixels
      Window is w 1600, h 1200, d 24, 0 0 0
      Using DirectColor display
      alloc color by name Blue
      Queue ID = 0
      Registering 0 1
      Registered 128 0
      Device name "bristol" did not parse, defaults 128.0
      Initialise the memMoog link to bristol: 60ba80
      hostname is localhost, bristol
      TCP port: 5028
      Accepted connection from 0 (3) onto 2 (5)
      Connected to the bristol control socket: 5
      bristolengine already active
      created 16 voices: allocated 6 to synth
      engine MIDI channel 0
      spawning audio thread
      could not reschedule thread
      bristolAudioOpen(plughw:0,0, 44100, 256, 1200008)
      audioOpen(d85fa2c0, 0, 1024): plughw:0,0
      opening device plughw:0,0, flags 0000000d
      open playback on plughw:0,0, pre 8
      Could not configure playback period size
      period size is -670119264
      Problem opening audio device plughw:0,0, exiting audio thread
      initialising one memorymoog
      Null palette
      Terminate MIDI signalling
      Midi read retry
      Midi read retry
      Midi read retry
      return - no data in buffer
      cleanupBrighton(0)
      Midi read retry
      Midi read retry
      Midi read retry
      return - no data in buffer
      socket closed
      request acked: -1

      sjewen@BigBox64 ~ $ cat /proc/asound/devices
        2:        : timer
        3: [ 0- 0]: raw midi
        4: [ 0- 3]: digital audio playback
        5: [ 0- 2]: digital audio playback
        6: [ 0- 1]: digital audio playback
        7: [ 0- 0]: digital audio playback
        8: [ 0- 0]: digital audio capture
        9: [ 0]   : control
      10:        : sequencer

      sjewen@BigBox64 ~ $ cat /proc/asound/seq/drivers
      snd-seq-midi,loaded,1
      snd-seq-oss,loaded,0

      Also tried with OSS option, and jack, just in case.

      As far as I can see, sound in all other aspects is functioning normally.

      Rgds

      Stuart

       
    • Nick Copeland

      Nick Copeland - 2008-03-24

      Hi Stuart,

      Yeah, your audio look very correct.

      The debug output fails to open the audio device plughw:0,0 not being able to configure the sample buffer sizes I am after. I do not get that here but the call to open the audio device and flags are exactly the same.

      It's interesting you mention jack - do you use jack for other applications? There is a possibility that jack owns the audio interface and is correctly preventing bristol from changing the interface characteristics. If you do use jack (ps ax | grep jack) then you will have to make sure bristol managed to find the libraries it needed to build with jack enabled - if not you get a message when you try and request a jack connection, something like 'jack requested but not compiled into the code'. If you do an 'ldd /usr/local/bin/bristol' it will list the jack libraries if they were found. If libjack is not listed in the output and you want to use it then we have another issue which I can advise on, its a matter of finding a file called jack.pc and configuring the PKG_CONFIG_PATH to point to its directory.

      If your jackd is running then you could do a quick test of stopping it and then trying startBristol -alsa to see if bristol does then get the audio interface configured.

      Regards,

      Nick.

       
    • Stuart Ewen

      Stuart Ewen - 2008-03-24

      Hi Nick

      Got it working!

      As with all things linux, you find one problem and it's a precursor to another, but at least you can eventually get to the bottom of it (unlike winblows).
      I started playing around with jack, and found that I couldn't start jackd with alsa (couldn't load module).  Looked into that, and it seems the period size has to be 512 as opposed to 1024, for the cs46xx driver.  qjackctl takes care of this nicely.

      I had even killed off artsd after finding a post about that and cs46xx, this may not have been needed (haven't tested yet).

      At this point bristol still wouldn't start, so then I tried sudo.  Ta da!  So, some permissions problem someplace.

      The pixmap and memory flags were not needed, and it even rescales the keyboard display for me..

      I'll try fix the rest later, when I stop playing around with this thing.

      Happy days ;-).

      Rgds

      Stuart

       
    • Nick Copeland

      Nick Copeland - 2008-03-24

      Hi Stuart,

      That is good news. The sudo stuff is normal - if you start jack as root during startup then only root can link up to it. If you start it as another user then the same happens, so that may be normal. Glad it works since I tried the same here - starting jack as root then bristol as me and whilst it did not work it didn't give me the same error messages. Do you have a 64 bit distribution? What do you get from 'uname -a', is it a 64 bit kernel? The reason I ask is that if you can get it to work without the -pixmap option then either you have a 32 bit kernel or my fix worked (I could not test the fix since I don't use a 64 bit kernel).

      Anyway, the -memory option is just to get the Memory Moog emulator, I actually prefer it to the -mini option. Others that might be fun for you are the 2600 and the obxa. Well, and the rest.

      Regards, Nick.

       
    • Stuart Ewen

      Stuart Ewen - 2008-03-26

      uname -a = Linux BigBox64 2.6.22-sabayon #1 SMP Wed Aug 1 22:48:31 UTC 2007 x86_64 AMD Athlon(tm) 64 Processor 3500+ AuthenticAMD GNU/Linux

      Yes, it's definitely a 64bit distro (Sabayon 3.4e, with some updates).

      btw, I can run it without sudo, I have to start jackd in a terminal, as qjackctl seems to tbe permission issue.  The other point of note is that it only runs with jack.  Neither ALSA or OSS are functional.  Oh, and the rhodesbass emulator doesn't function at all, just renders two control knobs in an otherwise black screen.

      Now, I don't suppose you know some app that allows recordings to be made of the resultant sound output on jack?

       
    • Nick Copeland

      Nick Copeland - 2008-03-26

      Hi Stuart,

      Not sure about the rhodesbass - I will give it a go again here, I did it not for a joke but because it was fun, it was not meant to be serious and the small windowsize has given a couple of issues.

      If you want to record bristol with other stuff you should have a look at Ardour as a DAW. If you just want output from bristol then you might want to use the '-o filename' option to copy raw audio to an output file. I think it still works with the jack interface.

      Regards,

      Nick.

       

Log in to post a comment.