Troubleshooting

alekz49 edited this page Oct 27, 2011 · 40 revisions

This is our troubleshooting page, where we document some of the challenges users have had when building, compiling, and running OpenOctaveMidi-2011.

In our Linux world we are fortunate to have a lot of user choice in distro, window manager, versions of system apps and libraries, and so on. Usually things go together well, but sometimes a combination of hardware and/or software can throw up the occasional problem.

We hope that this page will go some way towards helping users get over some common issues other users have discovered, and help us make some tweaks to OpenOctaveMidi-2011 to aid you in your build/install, and running experience. This is by no means a complete list of issues and solutions, so if you discover a problem, and a solution, please let us know, so all of us in the OpenOctave community can help our fellow users.

Thanks, from the OpenOctave team.

Jack won't Start!

Sorry to hear that, and it's not the first time we've heard it.

OOMidi doesn't have anything to do with JACK startup, as JACK is a separate audio server for your entire system. OOMidi relies on a good JACK install the same as you do.

However we're more than willing to share our own discoveries with fellow OOMers that we've gathered from our own experiences with JACK:

Ensure your soundcard works on its own first. With Jack turned off (not running), test your soundcard with an alsa based audio app playing a high quality audio recording, checking levels in the UI specific for your card (Envy24Control, HSDP, etc), or use the generic ALSA tool Alsamixer started from a terminal to adjust levels, and ensure that you have a good clean sound with no artifacts or distortion.

It's essential that you do this first, before taking on JACK, or any JACK based challenge will be even harder to identify through a steady process of elimination, as you could be piling one problem on top of another and so on.

When you're completely sure that your soundcard output is sweet, and those violins from that pristine recording are the best you've ever heard them, then you're ready to take on JACK.

One of the biggest challenges with using ALSA and JACK is naming. If you have multiple devices that can be recognized as ALSA drivers or modules, then the order of device is not always what you want it to be. JACK relies on device order or a specific name to start correctly, and with the right device. Sometimes this can change across reboots for example, and where your soundcard is device 0 on Tuesday, it might be device 1 on Wednesday, and possibly device 2 on Thursday. (We're mystified by this as well, so don't think you're the only one...)

There's a simple way to specify which soundcard JACK uses consistently.

Open a terminal, and type:

cat /proc/asound/cards

This will give you a list of devices available to you. Here's an example:

                  0 [M44            ]: ICE1712 - M Audio Delta 44
                  
                                       M Audio Delta 44 at 0x9800, irq 17

                  1 [keyboard       ]: USB-Audio - MK-249 USB MIDI keyboard
                  
                                       Evolution Electronics Ltd. MK-249 USB MIDI keyboard at usb-0000:00:0b.0-7, full

                  2 [PCR            ]: USB-Audio - PCR
                  
                                       EDIROL PCR at usb-0000:00:0b.1-8.4, full speed

At this moment, my primary soundcard is in slot 0, the M Audio Delta 44. The other 2 entries are midi keyboards, and using them for sound is obviously not an option.

Take a look at this line:

                  0 [M44            ]: ICE1712 - M Audio Delta 44

Next to the 0, which denotes the soundcard number (and is the bit that can change from one day to the next), is a short name for the card as well, in square brackets, which is M44.

In the jack command line, you can use the name, not the number, to specify the device. So as an example:

           /usr/bin/jackd -P80 -d alsa -d hw:M44 -r48000 -p512 -n3 

This tells JACK to use the soundcard/device M44 specified by name, and as such provides a consistent device for JACK to identify.

Hopefully, this will ease some of the JACK challenges for users, and simplify what can be a challenging process for the new user.

Jack2

Jack2 was originally intended as an evolution of Jack1, and in a way still is. A simple tip for users who want to use Jack2 with OOMidi is:

Compile Jack2 with more ports and clients than the default settings. If you don't have enough, you'll have problems. In our experience, a good start point is 2048 ports, and 512 clients. Do this, and you'll know that any further challenges you may have are not related to insufficient ports and clients.

We'd like OOMidi users to have an enjoyable journey with either Jack1 or Jack2, and without the hassle.

Update We're testing with jack2 1.9.7, and jack2 1.9.8 at the moment, and after an initial problem with Celt, Jack2 is up and running. It seems that jack2 1.9.7, jack2 1.9.8, and jack2 svn have the best chance of build from source success using Celt 0.7. Note that we had to thoroughly cleanse our entire system of any Celt references, then install Celt 0.7 as a fresh install, before the 3 versions of Jack2 would build, but this is on Gentoo, and other distros may have already taken care of this for users. Anyway, we'll let you know how we get on going forward from here...

PulseAudio

If you try and run JACK with PulseAudio, that's beyond us, as we've never done it (we have fine setups without it), and don't have Pulse Audio installed on any of our machines. PA is a domestic audio system that caters to apps for general entertainment, and has considerably more latency, and more generic settings, than professional Audio recording requires.

JACK is a higher level audio server that will run at much lower latency levels than PA, and is specifically designed to cater to audio apps for creating music.

There are, as we understand from browsing the interlink, some libs, or plugins, that make using PA and JACK together possible, but we suggest you contact your distro packagers, and fellow users of JACK and PA as to whether this is successful or otherwise.

I can't install linuxsampler, and keep getting a "no recognizable engine, no channel" error message

More than one user

This is more than likely because you're using versions of Liblscp, Libgig, and Linuxsampler, that are out of date. SFZ is a recent addition to the Linuxsampler framework, and users should install Linuxsampler from svn to pick up the changes.

When building Linuxsampler, libgig, and liblscp, make sure the system tool libtools is up to date.

See here for build details, and Linuxsampler SVN paths:

Installing OOM

Help, i can't get sound!

Install the SSO sample lib following the instructions here:

Installing OOM

We've tested this setup extensively, and know it works. You'll not only get a default modestly sized Orchestral Set to get you going, but follow the instructions, and you'll have a working template to begin with.

A couple of my CALF plugins seem to crash occasionally

We've had a good run with the latest git repo version of the excellent CALF plugin suite, and in our testing of the effects plugins, all work fine. Please ask (nicely) your distro packaging specialist if they can check their current build of the CALF plugin suite, and if it's a bit dated, to consider upgrading. Thanks.

If you're feeling brave, and want to install the CALF plugin suite from git, you can find them here:

git clone http://repo.or.cz/r/calf.git

Take note of the requirements, which can be found here:

http://calf.sourceforge.net/?id=2


I'm not getting the Amber Midi light appearing in the track header, when i play my midi keyboard, and i'm sure i've got everything connected correctly.

Make sure the track is record-armed, and have another check of your port connections.

I can't record audio into my Audio track, and i'm definitely sure i've got all my ports and connections made correctly.

See above.

For any track to receive input, it must be record-armed.

Trying RTC timer... RtcTimer::setTimerFreq(): cannot set tick on /dev/rtc: Permission denied

This error comes up when the RTC device on your system does not have permissions set correctly. To solve this, pick the command line options that suit your current setup:

For much older alsa versions that don't have the HPET system included:

    chmod 660 /dev/rtc
    chgrp audio /dev/rtc

Newer Alsa versions now use the HPET timer, and add a symlink for RTC based applications. For newer kernels with the HPET portable rtc interface:

    chmod 660 /dev/rtc0
    chgrp audio /dev/rtc0

Make sure OOMidi can set the rtc clock in the old format:

         echo 8192 > /proc/sys/dev/rtc/max-user-freq

check the max-user-freq is correctly set by typing:

         cat /proc/sys/dev/rtc/max-user-freq

For the newer HPET symlinked RTC, or straight HPET:

         echo 2048 >/sys/class/rtc/rtc0/max_user_freq

or:

         echo 2048 >/proc/sys/dev/hpet/max-user-freq

Check this with:

         cat /sys/class/rtc/rtc0/max_user_freq

or:

         cat /proc/sys/dev/hpet/max-user-freq