Guitarix on a Raspberry Pi 2

Discussion of all things Raspberry Pi / Raspberry Pi 2 related

Moderators: MattKingUSA, khz

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: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.
Keep me informed, please. :)

regards
hermann
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 »

Hmmm. Looks like I am on a wild goose chase with the hardware clocks. The hardware clocks in mentioned in these threads are *external* chips, I just discovered. They literally mean hardware clock. :oops:

/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 »

OK, the system is stable now, but slow. It seems that all my problem evolve around jackd and its behaviour under realtime and with its clients. I found that starting jackd with only default settings - and via qjackctl - makes the newly compiled guitarix play nicely, without freezing the kernel. But if I add realtime priority to jackd, things go wrong. ANd, as it is now, I am not able to use a buffer size lower than 256 without nasty artifacts.

I will try to see if I can assign realtime priority to *both* jackd and guitarix. I seem to remember from earlier, that communicating between an RT prioritized program and a non-RT-proiritized program does not fare well.

/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 »

Hmmm. Best results so far are by unticking RT completely from jack, and using only 44.1kHz. Guitarix does not like 48kHz very much.
Running without RT makes it possible for me to lower buffer size to 128 and even 64. But at 64 I get xruns from every event on the screen, such as mouse movement, or what else the desktop is communicating. I can hear that guitarix+jack are able to deal with buffers this low, but get interrupts from every desktop event. This is where priority could be nice.

I tried to give both jack and guitarix RT priority, but that froze up the machine immediately.

/Frank

Edit: Actually I can push the buffer as low as 16 with no noticeable difference from 64. But I still get these annoying interrupts from desktop events.

Edit, edit: Even better results now. By ticking RT on on jack, but assigning only default priority, setting frames/period to 64 and starting jack with qjackctl, I can now start guitarix as a client with latency 16, no glitches, very low latency, and no freezing up the kernel!
Last edited by Frank Carvalho on Sun Dec 04, 2016 9:36 pm, edited 1 time in total.
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:I tried to give both jack and guitarix RT priority, but that froze up the machine immediately.
You shouldn't give guitarix any priority settings, guitarix receive it's priority from jack, and needs it only for the realtime (and the realtime helper) thread. Other then that, needs to run with low priority.
Frank Carvalho wrote: Guitarix does not like 48kHz very much.

Ah, no, the reason why this run better is simply, that less samples been there to work with, therewith a lower work load.
Frank Carvalho wrote: But at 64 I get xruns from every event on the screen, such as mouse movement, or what else the desktop is communicating.

Best is, to run the screen on a other PC, via VNC. That will reduce the workload on the PI. Check how many IRQ's you've, and how they are assigned.

Code: Select all

cat /proc/interrupts
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,

See the last edit I made, just before your reply. I think I got a good set of parameters now.
I think the interrupt issue has to do with dbus interfering. By ticking the realtime flag, and also switching from jackd to jackdbus, the xruns disappear. The audio setup now runs 64 frames/period, 128 ports, and guitarix running stable with a latency setting of 16. The latency in playing is almost unnoticeable now, and with no glitches. I can now get back to check out the new lv2 plugins.

/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: The audio setup now runs 64 frames/period, 128 ports, and guitarix running stable with a latency setting of 16. The latency in playing is almost unnoticeable now, and with no glitches.
Wow, that are really impressive settings for a PI2.
Congratulations to your new portable mini rack. 8)

regards
hermann
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 »

I've recompiled the fuzz plugins and the Vox tone stack, and when turning these on, the CPU increases, so I have to increase latency a bit too. But it's still fast. And it sounds great. Combining the SuppaTonebender and the GxVmk2 tone stack, I can make pretty precise emulations of classic psychedelic Beatles tone, which relies very much on the mid range boost of the Mk2 preamp, and the responsiveness of the fuzz. Both factors are here, so it gets very close. I've just had a couple of hours of great fun, playing Beatles riffs.

/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:I've recompiled the fuzz plugins and the Vox tone stack, and when turning these on, the CPU increases, so I have to increase latency a bit too.
That is the fault of GxVmk2. It use a bit more CPU then other plugs from this series.
I could properly reduce the CPU usage a lot for this one, when I start to optimize it, remember, it is still in prototype stage.
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 »

That would be really cool. Right now I have to increase Gx latency to 128 or even 256 to be on the safe side. On the other hand, the SuperFuzz plays happily with a latency setting of 64.

Oh, and if you open the code anyway, why not rearrange the knobs in a slightly more logical and Vox-like manner. I would suggest:
Volume, Bass, Treble, MRB on/off, MRB 1/2/3, <new row>
Vibrato on/off, Vibrato depth, Vibrato Speed, Reverb on/off, Reverb amount, in that order, so you have tone shaping in the first row, and effects in the second.
The original Vox had a distincitve and to this day cool look.
Image
Image
/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 »

Yea, that looks good.
The GUI frame work is done already, currently it looks like this:
Image

but I'll tinker about and take your suggestion into account, when I optimize the dsp, I'll give some love to the GUI as well.
On the road again.
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 »

Ah, and for the internal interface in guitarix, you could arrange the controllers like you wish, when select a LV2 plugin, press "Show Details". The window will expand on the right side and show informations about the plugin. You'll see a list with the controllers, position, range, functionality, etc. You could move the controllers by drag n' drop to the order you like. the last column "n" , means "new row", so you could order them in rows. Any parameter is editable in this list. So you could really easy rework the internal interface, were the automatic creation fails.
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 »

Nice feature. Never knew about that. I'll try it.
Your GUI design looks really good, but it signals modern Vox. I looks a lot like the VR30R combo. That may fool somebody to think it should sound more "classic", which is definitely not the case with the old solid state preamps. But with only minor tweaks it could be made to look just right, so suggestions for a period correct look would be; silver/white knobs (instead of black) with a red circular dot indicating position. Individual white squares around tone section, vibrato section and reverb section, respectively. And then if the on/off switches could be rectangular rocker switches, the illusion would be complete. That would make it look a lot like the original - in fact, it would look a lot like the Vox Virtuoso http://www.voxshowroom.com/uk/amp/virtuoso.html, the combo of that amp series.

I really think this MKII plugin of yours is something special. Not even Vox themselves haVe ever produced an homage to these classics, which is strange considering how many musicians play Beatles covers. They could have added a Vox solid state model to their Valvetronix series, but instead they added more indistinguishable AC-models. So your plugin truly is one of its kind.

The same could be said about the SuperFuzz and all the other simulations BTW. The amp makers alway model the Ibanez Tubescreamer and the Big Muff, but never these more odd fuzz pedals. By modelling actual circuits, you enter a territory that I haven't seen any of the manufacturers get into outside the soft synth market. That is so cool.

/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 »

Thanks Frank

I've done a bit work on the GUI side, see the updated screen-shoot above. But haven't work on the dsp side for now.
Frank Carvalho wrote:The amp makers alway model the Ibanez Tubescreamer and the Big Muff, but never these more old fuzz pedals.
I guess doing that commercial, wouldn't work out well, as simply most people wont to have the Big Muff or the Tubescreamer and a tube based amp, and in fact, that's what I'm doing first as well.
The old classic transistor based pedals and amps become more and more forgotten, during the area of opamps and tubes.
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! That looks really good :D
When it goes official, I'll pitch it, at the different Vox sites I frequent.

/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