Guitarix on a Raspberry Pi 2

Discussion of all things Raspberry Pi / Raspberry Pi 2 related

Moderators: MattKingUSA, khz

blackcorvo
Established Member
Posts: 8
Joined: Thu Aug 25, 2016 3:39 pm

Guitarix on a Raspberry Pi 2

Post by blackcorvo »

Hello, I'm new to this forum and new to the world of linux-based computing. Last year I purchased a Raspberry Pi 2, originally with the intention of using it as a portable gaming platform, but after setting up various OS's and seeing the capabilities of this small computer, it got me thinking what else it could do.

I play the guitar, and a good while ago, I saw the following video demonstrating this mini-computer working as a multi-fx platform in real-time: https://www.youtube.com/watch?v=u6XKaRe_MEA

However, I have not found anywhere how to actually set it up. All I'd like is some guidance on what I need to do in order to make things work.
I have a Behringer UCG102 usb-interface I can use to connect the guitar to the Raspberry Pi, which has both an instrument input and a stereo headphones output, so that part is covered.
I just want to know how I can get Guitarix running on it for real-time use. I'm an entry-level user, so I ony have very basic knowledge of using Terminal and all that.

Thanks in advance for any help.
Pablo
Established Member
Posts: 1274
Joined: Thu Apr 17, 2008 9:57 pm
Been thanked: 3 times

Re: Guitarix on a Raspberry Pi 2

Post by Pablo »

I have never tried what you want to achieve but in that case I would start here:

http://wiki.linuxaudio.org/wiki/raspberrypi
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Guitarix on a Raspberry Pi 2

Post by Frank Carvalho »

Search this forum. There are several threads here touching upon that subject. See for instance https://www.linuxmusicians.com/viewtopi ... 53&t=13425. What you should do is to install Autostatics repositories and install from there.
Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
blackcorvo
Established Member
Posts: 8
Joined: Thu Aug 25, 2016 3:39 pm

Re: Guitarix on a Raspberry Pi 2

Post by blackcorvo »

Frank Carvalho wrote:Search this forum. There are several threads here touching upon that subject. See for instance https://www.linuxmusicians.com/viewtopi ... 53&t=13425. What you should do is to install Autostatics repositories and install from there.
Frank
I did do some searching on the forum beforehand, but since I couldn't find anything through the search, I opened the topic. Either way, thank you, I will be taking a look at it! :D
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: Guitarix on a Raspberry Pi 2

Post by tramp »

Frank Carvalho wrote:What you should do is to install Autostatics repositories and install from there.
A much better solution is to use my special source for ARM devices which I've pushed to sourceforge, I've just pushed a new version (0.35.3git).
https://sourceforge.net/projects/guitar ... z/download

It's a striped down version (no LV2 or LADSPA plugs) with the source optimized for build and run on ARM devices.
The version on Autostatics repository is outdated, and the source used is UN-optimized for ARM.

Her you go:
http://guitarix.sourceforge.net/forum/v ... =14&t=4782
On the road again.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Guitarix on a Raspberry Pi 2

Post by Frank Carvalho »

It is essentially a much cooler solution, to go for a dedicated ARM version, and I much prefer running that. However, as I am really into your GxSuperFuzz and GxSuppaTonebender etc., and those are in LV2 format, then I will have to stick to Autostatics outdated version, do I not? Or does it mean, that you do not provide precompiled lv2 plugs, but it will still run lv2 plugs?

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: Guitarix on a Raspberry Pi 2

Post by tramp »

Frank Carvalho wrote:It is essentially a much cooler solution, to go for a dedicated ARM version, and I much prefer running that. However, as I am really into your GxSuperFuzz and GxSuppaTonebender etc., and those are in LV2 format, then I will have to stick to Autostatics outdated version, do I not?
No, striped down from LV2 plugs means just that I've removed the LV2/LADSPA plugs coming with guitarix, LV2 support in guitarix is still given. So you could load your LV2 goodness into guitarix even with this version.
I've striped it down, to reduce the compile time, and, because I'm to lazy to rework all LV2 plugs coming with guitarix for ARM. That will maybe happen over the time, one by one.
Frank Carvalho wrote:Or does it mean, that you do not provide precompiled lv2 plugs, but it will still run lv2 plugs?
Yes, I didn't provide anything pre-compiled, and indeed it will still load/run LV2 plugs.
On the road again.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Guitarix on a Raspberry Pi 2

Post by Frank Carvalho »

Well, that settles it for me! I will attempt a recompile.
Tell me, I looked at the README, and it tells me to

Code: Select all

cd guitarix_source_directory
There is no such directory in the tar file. There is a trunk/src containing a number of subfolders for faust, gx_head etc. There is a waf file under /trunk itself, so is this where compile begins?

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: Guitarix on a Raspberry Pi 2

Post by tramp »

Hi Frank

Yes, the "guitarix_source_directory" is /trunk, from there the build starts.
You should use the following command to configure/build guitarix:

Code: Select all

./waf configure --prefix=/usr  --no-faust --includeresampler --convolver-ffmpeg --optimization
./waf build
sudo ./waf install
configure will check for missing dependency's, if you get a error there, you may need to install the missing *.*-dev package.
It is also recommended, before install guitarix from source, remove the installed package from the autostatic repository, to avoid conflicts with multiple installed versions.
In the worst case, you can remove guitarix build from source by running

Code: Select all

sudo ./waf uninstall
from the source directory (trunk) and reinstall the version from the repro.
On the road again.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Guitarix on a Raspberry Pi 2

Post by Frank Carvalho »

Hi Tramp

It took me some time to sort out the dependencies, but now I am compiling. However, now I have a showstopping problem. When I compile the following line:

Code: Select all

[389/413] cxx: src/gx_head/gui/gx_stackbox_builder.cpp -> build/default/src/gx_head/gui/gx_stackbox_builder.o
the compiler stalls, and draws a lot of CPU cycles which makes the Pi unresponsive.
Yesterday, I waited long enough to witness the compiler itself crash on compiling this line! I have never experienced the compiler crash before. I thought that present versions of the gnu c++ compiler was more or less bulletproof.
So what do I do? Perhaps this particular line makes you think of a specific issue, but I have no idea how to fix this.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: Guitarix on a Raspberry Pi 2

Post by tramp »

Looks like you running out of the addressing range on the Pi2. Maybe it helps, adding the -mlong-calls. Also it may help restricting the jobs to 1.

Code: Select all

./waf configure --prefix=/usr  --no-faust --includeresampler --convolver-ffmpeg --optimization --cxxflags=-mlong-calls -j 1
On the road again.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Guitarix on a Raspberry Pi 2

Post by Frank Carvalho »

Thanks, that worked.
Yes, it behaved like a system running out of resources. Now I am struggling with my decision to upgrade Raspbian, and install a real-time kernel. I haven't configured it correctly yet, so it currently unstable, as I need to setup some different kernel parameters. The recompiled Guitarix starts though. The kernel freezes, but I think it is down to the rt kernel. I'll get back when I've done some tweaking.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Guitarix on a Raspberry Pi 2

Post by Frank Carvalho »

I am still experiencing problems with a system that freezes up the kernel. But it doesn't happen when the system is idling, only when I am running jackd+guitarix. Then it will invariably lock up the kernel after a while. If I start jackd+guitarix and just leave it in the initial configuraiton, it is alive for a while. If I load a preset that uses more effects the lockup comes quicker. If I load Sonnie_tele clean_clean preset, it with lock up very quickly.

Another observation I made is that the setup is *a lot* more unstable in 48kHz than in 44.1kHz.

So my theory is that some resource gets exhausted, causing a lockup. It's just that I have no idea which one. I have tried to run top until it freezes, but there is plenty of free memory, and the CPU does not seem to be overly busy at the time of lockup. So what can be wrong? Any suggestions I might try?

Oh yeah, another thing. The realtime config scan script reveals that there are no timers available (hpet and rtc). I think this is the nature of the RPi. But could this cause the problems? I have not found any info on the web about setting up timers on the RPi.

Edit: I can produce kernel lockups just by starting jackd itself. So this must be a pretty basic problem with jackd.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: Guitarix on a Raspberry Pi 2

Post by tramp »

As far I know, the rt-kernel is not usable on a PI2. Do you still try it with this? I guess you better switch back to mainline kernel, . .
On the road again.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Guitarix on a Raspberry Pi 2

Post by Frank Carvalho »

Yes.
I am following the instructions here:
https://emlid.com/raspberry-pi-real-time-kernel/
along with these instructions:
http://www.frank-durr.de/?p=203
My best guess right now is that the lack of a hardware timer in the Jessie release is giving me trouble, so I am trying to use the instructions here: https://www.raspberrypi.org/forums/view ... 6&t=125003 to load the necessary modules.

Of course, if my efforts are fruitless, I have to go back to a standard kernel. The current installation is Raspbian Jessie (september 2016 version) with the emlid rt kernel added per the instructions above. But the previous Jessie I installed (may 2016 version) - without RT - was also unstable, and I couldn't get the buffer size lower than 256, which is the reason I wanted to try an RT-kernel in the first place.

If it wasn't for the kernel lockup happening after a while, then I can get lower latency and lower buffer sizes now than before, so I am not prepared to throw the towel on the RT-kernel just yet.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
Post Reply