Page 3 of 3

Re: Guitarix release 0.36.0

Posted: Tue Jan 23, 2018 8:44 pm
by simonvanderveldt
gimmeapill wrote:Hi Guys,

Thanks for streamlining those build flags.
I have just updated the AUR pkgbuild and it does seems to reduce the size of the package by half (80MB -> 40MB).
According to the build log, everything seems to be there (LV2+GUI, new LADSPA), but I didn't have a chance to fully test yet.

So just to double check, here's what I went with:

Code: Select all

  python2 waf configure --prefix=/usr \
						--cxxflags-release \
						--optimize \
						--new-ladspa \
						--install-roboto-font
Did I miss something?
That should work, the only thing I know of at the moment that doesn't work is if you disable building the standalone application (--no-standalone) but enable building the LADSPA plugins (--ladspa and/or --new-ladspa). All other combo's should work afaik.

Since building of the standalone application is enabled by default, as is the building of the LV2 plugins, you should end up with all three (standalone application, LADSPA plugins and LV2 plugins).
Note you should get an overview of which features you'll get after issueing "waf configure" which will list all of these features separately.

Code: Select all

==================                      
GUITARIX II 0.36.1

OS                                       : linux 
C++ flags                                : -Wall --optimize -std=c++11 
Link flags                              
Compiler ['/usr/x86_64-pc-linux-gnu/gcc-bin/5.4.0/g++'] version : 5.4.0 
Parallel build jobs                                             : 4 
Use prebuild faust files                                        : yes 
Use faust precision                                             : double 
Use prebuild gperf files                                        : no 
Use prebuild gresouce file                                      : yes 
Avahi service discovery                                         : no 
Bluetooth rfcomm                                                : yes 
Use internal zita-resampler                                     : no 
Use internal zita-convolver                                     : no 
Build standalone application                                    : yes 
Jack Session Support                                            : yes 
Build LADSPA plugins                                            : no 
Build new LADSPA plugins                                        : yes 
Build LV2 plugins                                               : yes 
Build LV2 plugin GUI's                                          : yes 
Build MOD LV2 plugin GUI's                                      : no 
SSE2 support found                                              : yes 
SSE2 support disabled                                           : no 
skip Python Library Wrapper                                     : yes 
use prebuild C++ Library Wrapper                                : yes 
skip building shared lib                                        : no 
skip install lib-dev                                            : yes 
run ldconfig tool                                               : yes 
update desktop database                                         : yes 
Localization  (intltool)                                        : yes 
skip glade support                                              : yes 
Install prefix                                                  : /usr 
Install standalone binary                                       : /usr/bin 
Guitarix shared files directory                                 : /usr/share/gx_head 
Guitarix pixmaps directory                                      : /usr/share/pixmaps 
Install library                                                 : /usr/lib 
Install font roboto condensed                                   : /usr/share/fonts/truetype 
Update Font config cache                                        : yes 
Install lv2                                                     : /usr/lib/lv2 
Some small questions/suggestions:
- Are you deliberately passing "--cxxflags-release" without a value? It's set to "-O3 -DNDEBUG" by default.
- "--optimize" doesn't exist, I think you meant "--optimization"? I haven't tried that option though.
- I think you can just depend on https://www.archlinux.org/packages/comm ... tf-roboto/ instead of installing the fonts from the guitarix sources
- In case you're interested, this is how we build it https://github.com/gentoo-audio/audio-o ... ebuild#L59

Re: Guitarix release 0.36.0

Posted: Thu Jan 25, 2018 1:31 pm
by gimmeapill
Thanks for the pointers, this wscript is giving me headaches ;-)

I forgot to include the configure log, but this was pretty much what I expected:

Code: Select all

==================                     
GUITARIX II 0.36.1

OS                                       : linux
C++ flags                                : -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall --optimize -std=c++11
Link flags                             
Compiler ['/usr/bin/g++'] version        : 7.2.1
Parallel build jobs                      : 4
Use prebuild faust files                 : yes
Use faust precision                      : double
Use prebuild gperf files                 : no
Use prebuild gresouce file               : yes
Avahi service discovery                  : yes
Bluetooth rfcomm                         : yes
Use internal zita-resampler              : no
Use internal zita-convolver              : no
Build standalone application             : yes
Jack Session Support                     : yes
Build LADSPA plugins                     : no
Build new LADSPA plugins                 : yes
Build LV2 plugins                        : yes
Build LV2 plugin GUI's                   : yes
Build MOD LV2 plugin GUI's               : no
SSE2 support found                       : yes
SSE2 support disabled                    : no
skip Python Library Wrapper              : yes
use prebuild C++ Library Wrapper         : yes
skip building shared lib                 : no
skip install lib-dev                     : yes
run ldconfig tool                        : yes
update desktop database                  : yes
Localization  (intltool)                 : yes
skip glade support                       : yes
Install prefix                           : /usr
Install standalone binary                : /usr/bin
Guitarix shared files directory          : /usr/share/gx_head
Guitarix pixmaps directory               : /usr/share/pixmaps
Install library                          : /usr/lib
Install font roboto condensed            : /usr/share/fonts/truetype
Update Font config cache                 : yes
Install lv2                              : /usr/lib/lv2 
- Are you deliberately passing "--cxxflags-release" without a value? It's set to "-O3 -DNDEBUG" by default.
Yes, as I'm not exactly hot on compiler flags, I just trusted the default would do fine.
Looking at the configure log, the flags are the defaults from makepkg.conf (normal since i'm building in a chroot) with "-Wall --optimize -std=c++11" appended - this seems to be the optimize part.
So the --cxxflags-release was just ignored, no?
if so I'll add '-O3 -DNDEBUG' explicitly (unless if O3 caused issues), but it looks then that the default value is not working.
- "--optimize" doesn't exist, I think you meant "--optimization"? I haven't tried that option though.
"--optimization" was not recognized. The wscript error message suggested to use optimize instead, which I did...and it apparently worked.
- I think you can just depend on https://www.archlinux.org/packages/comm ... tf-roboto/ instead of installing the fonts from the guitarix sources
Good point, thanks.
The roboto package was not available in the official repos at the time I picked up the pkgbuild, and I didn't want to depend on another AUR package (actually I did for a while and got some user complaints), so I ended up using the internal version.
So yes, it can now be changed to an external dependency and I guess I should also add "--no-font-cache-update" to the flags.
- In case you're interested, this is how we build it https://github.com/gentoo-audio/audio-o ... ebuild#L59
Thanks, I will just add
--no-ldconfig
--no-desktop-update
and that should be it.

Re: Guitarix release 0.36.0

Posted: Thu Jan 25, 2018 7:30 pm
by gimmeapill
ok, another try: there's still something fishy here.

Here are the flags I used:

Code: Select all

  python2 waf configure --prefix=/usr \
						--cxxflags-release="-O3 -DNDEBUG" \
						--optimization \
						--new-ladspa \
						--no-ldconfig \
						--no-desktop-update \
						--no-font-cache-update
and the outcome:

Code: Select all

==================                      
GUITARIX II 0.36.1

OS                                       : linux 
CPU version                              : Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz 
C++ flags                                : -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -O3 -DNDEBUG -march=native -mmmx -msse4.2 -mfpmath=sse -fomit-frame-pointer -ftree-loop-linear -ffinite-math-only -fno-math-errno -fno-signed-zeros -fstrength-reduce -pipe -std=c++11 
Link flags                              
Compiler ['/usr/bin/g++'] version        : 7.2.1 
Parallel build jobs                      : 4 
Use prebuild faust files                 : yes 
Use faust precision                      : double 
Use prebuild gperf files                 : no 
Use prebuild gresouce file               : yes 
Avahi service discovery                  : yes 
Bluetooth rfcomm                         : yes 
Use internal zita-resampler              : no 
Use internal zita-convolver              : no 
Build standalone application             : yes 
Jack Session Support                     : yes 
Build LADSPA plugins                     : no 
Build new LADSPA plugins                 : yes 
Build LV2 plugins                        : yes 
Build LV2 plugin GUI's                   : yes 
Build MOD LV2 plugin GUI's               : no 
SSE2 support found                       : yes 
SSE2 support disabled                    : no 
skip Python Library Wrapper              : yes 
use prebuild C++ Library Wrapper         : yes 
skip building shared lib                 : no 
skip install lib-dev                     : yes 
run ldconfig tool                        : no 
update desktop database                  : no 
Localization  (intltool)                 : yes 
skip glade support                       : yes 
Install prefix                           : /usr 
Install standalone binary                : /usr/bin 
Guitarix shared files directory          : /usr/share/gx_head 
Guitarix pixmaps directory               : /usr/share/pixmaps 
Install library                          : /usr/lib 
Install lv2                              : /usr/lib/lv2 
This brings 2 comments:
1 - "--optimization" vs "--optimize": not sure what I did wrong 2days ago but now it works as it should. nevermind.
2 - The C++ flags look rather messy: having "-O2", "-O3", and "-march=native" in the same line doesn't look quite ok isn't it?
It's as if there were 3 set of flags appended...

Cheers,

LX

Re: Guitarix release 0.36.0

Posted: Thu Jan 25, 2018 9:00 pm
by simonvanderveldt
gimmeapill wrote:This brings 2 comments:
1 - "--optimization" vs "--optimize": not sure what I did wrong 2days ago but now it works as it should. nevermind.
2 - The C++ flags look rather messy: having "-O2", "-O3", and "-march=native" in the same line doesn't look quite ok isn't it?
It's as if there were 3 set of flags appended...

Cheers,

LX
1. Good to know, I was already scratching my head how it could be different :D

2. Yeah, the C++ flags are a bit difficult. For starters the value you set "--cxxflags-release" to is appended to the existing list of cxxflags, it doesn't replace it. So that's probably the reason you're seeing both -O2 and -O3.
Also when I said the default for "--cxxflags-release" is "-O3 -DNDEBUG", I meant that it's configured like that by default in the wscript. You don't need to pass anything for that if those are the settings you want. When you pass "-cxxflags-release" without a value you're effectively removing that default.

Many of the other options, including -march=native seem to be coming from enabling "--optimization", which sets several flags based on what it can find /proc/cpuinfo. We don't use these automatic optimization features in gentoo since we expect the user to set his chosen C(XX)FLAGS himself so I have no real experience with it.

And finally there are some flags which I don't know where they are coming from. "-fstack-protector-strong" for example is not in the wscript. Is it something that is being set/passed by the package manager?

Re: Guitarix release 0.36.0

Posted: Fri Jan 26, 2018 8:44 am
by gimmeapill
2. Yeah, the C++ flags are a bit difficult. For starters the value you set "--cxxflags-release" to is appended to the existing list of cxxflags, it doesn't replace it. So that's probably the reason you're seeing both -O2 and -O3.
Also when I said the default for "--cxxflags-release" is "-O3 -DNDEBUG", I meant that it's configured like that by default in the wscript. You don't need to pass anything for that if those are the settings you want. When you pass "-cxxflags-release" without a value you're effectively removing that default.
OK, the wscript comment finally made it through my thick skull - I was indeed doing it the opposite way ;-)
So, instead of adding problems where there aren't any, I'll just skip the "--cxxflags-release" flags altogether and stick with just --optimize (no change from before). And it looks like we're good:

Code: Select all

  python2 waf configure --prefix=/usr \
					     --optimization \
					     --new-ladspa \
					     --no-ldconfig \
					     --no-desktop-update \
					     --no-font-cache-update
And finally there are some flags which I don't know where they are coming from. "-fstack-protector-strong" for example is not in the wscript. Is it something that is being set/passed by the package manager?
Correct, those are the default on Arch:
https://git.archlinux.org/svntogit/pack ... ges/pacman

Code: Select all

CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
CXXFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
Thanks again for taking the time to explain ;-)

Cheers,

LX

Re: Guitarix release 0.36.0

Posted: Fri Jan 26, 2018 11:32 am
by simonvanderveldt
gimmeapill wrote:Thanks again for taking the time to explain ;-)

Cheers,

LX
No problem at all. If you have any more questions just ask!
And have fun with guitarix! :)

Re: Guitarix release 0.36.0

Posted: Thu Dec 27, 2018 9:01 pm
by dalezjc
I apologize if this isn't correct thread for this question, but here goes.

I just installed Guitarix on a Linux Mint and it installed just fine. However, I'm using a Focusrite 18i8 interface and I'm not getting any sound through the interface. Any suggestions?

Thanks!
Dale

Re: Guitarix release 0.36.0

Posted: Sat Dec 29, 2018 1:46 am
by glowrak guy
Plugin or standalone?
Reaper new-track-with-plugin defaults to midi,
I (too often) forget the track is midi, rather than audio. Then silence whispers :shock:

alsamixergui might reveal a muted output, the default sometimes on
new setups. Or there may be multiple motherboard soundchip entries,
and one of those was chosen as default, so try the other headphone
or line-out jacks. For good thorough info,

http://libremusicproduction.com/article ... arted-jack


If you have both jackd and pulseaudio, there is an app for that, in synaptic, called

pulseaudio-module-jack

which sends pulseaudio sound to the jackd i/o ports, it will appear
in the qjackctl audio tab when installed.

pavucontrol is a sound-levels gui that may be useful.

Assuming you have kxstudio repository installed. If not,
a quick google will reveal four commands to copy/paste.
kxstudio has been a staple resource for current or new software
for many many moons.
Cheers

Re: Guitarix release 0.36.0

Posted: Fri Jan 11, 2019 9:39 pm
by dalezjc
Thanks for the reply!

Questions if you don't mind:

1. Plugin or standalone? Plugin (or at least trying).
2. Reaper new-track-with-plugin defaults to midi. Are you saying i should select MIDI? Even though I'm not using MIDI?
3. Assuming you have kxstudio repository installed. I do have it installed.

Do I select my Scarlett in the Qjackctrl setup dialog?

Thanks,
Dale

Re: Guitarix release 0.36.0

Posted: Fri Jan 18, 2019 6:17 pm
by ohli
dalezjc wrote:Thanks for the reply!

Questions if you don't mind:

1. Plugin or standalone? Plugin (or at least trying).
Ok, so first try getting any sound IN/OUT Reaper, then try it with the plugin.
2. Reaper new-track-with-plugin defaults to midi. Are you saying i should select MIDI? Even though I'm not using MIDI?
No, just make sure you change the track type to audio.
Do I select my Scarlett in the Qjackctrl setup dialog?
Yes, sometimes you have to experiment, with USB subclasses, like USB:[2:0] and USB[2:1], you can use

Code: Select all

aplay -l
to get an overview about the ids of the sound cards in your system.