Welcome to Ardour 3 Beta 5 for FreeBSD

Marcel Bonnet marcelbonnet at gmail.com
Tue Dec 18 14:19:22 UTC 2012

Hi, folks.

== Welcome to Ardour 3 Beta 5 for FreeBSD ==

I'm announcing a port for Ardour 3 Beta 5 (revision 13072), the last
beta before the 3.0-RELEASE.

First, thanks to Juergen Lock for his Ardour 3 Beta 1 port. I evolved on
the same Makefile and patches.

== Notes ==

Before proceding, a few notes:

- Is this a port? In fact yes, but not "that port" because we must
remember we're playing with a Beta application and because my goal was
to build a functional preview of Ardour 3 and use the MIDI capabilities
during my vacations over the next days! And now that it works, I wanna
share my experience with you.
- During Beta 1 phase the Ardour team was not supporting instalation, as
mentioned by Juergen. I didn't check its status by now. So, we don't
have a pkg-plist.
- Because I made several tests before get it building, I removed the
BUILD and LIB DEPENDS from the Makefile. Follow the instructions below
if you miss something, but if you have Ardour 2 installed you shall
probably have all dependencies.
- You'll have to install the new ports below, wich are out of the ports
tree at this time. None of them we're completed tested as described
here: http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/porting-testing.html
but I made several "make install" and "make deinstall" on a production
system and everything is ok until now!
- You are recommended TO NOT TRY TO INSTALL this port because I don't
know what may happen. Run it from the work directory after compilation.
- All ports provided *may need some clean up* (Makefile, a pkg-plist
verification would be nice, but I think they are OK) and maybe a BUILD
DEPENDS list for the Makefile.

Because I spent one week trying to port ardour 3 (I'm not a C/C++/port
experienced, I'm newbie) and because I had so much problems with the
waf's wscript I also tryied the base gcc (4.2.1), gcc 4.6 and clang.

This port is configured to build with clang! My machine and clang:
$ uname -a
FreeBSD machine.STUDIO 9.0-STABLE FreeBSD 9.0-STABLE #0 r230443M: Sun
Jan 22 18:46:00 BRST 2012
root at machine.STUDIO:/usr/obj/usr/stable9/sys/MACHINE-9.0  i386
$ clang --version
FreeBSD clang version 3.0 (tags/RELEASE_30/final 145349) 20111210
Target: i386-unknown-freebsd9.0
Thread model: posix

It seems that 64bit machines have SSE support enabled by default. If
you running FreeBSD 64, you must have no problems.
But the waf script (if I'm not wrong) was not telling the compiler that
my *i386* has all SSE Features. That's why you can see that my
wscript patch forces the script to set this features.
It also seems that Ardour refuses to build without SSE.

Juergen also noticed that we need a fix so the Makefile CFLAGS and
CXXFLAGS are set by waf and then passed to the compiler.

If you are more experienced, I invite you to test these ports and evolve
them, so we must have a fresh Ardour 3.0 as soon as the ardour team
release it.

QUESTION: Would it be a nice moment for me to open some PRs to create
this new ports? Should we test it a little more before ? I'm talking
about the dependencies for ardour 3.0.

== Dependencies ==

Juergen made ports for LILV, SERD and SORD, but Ardour 3 b5 forced me
to update them.

Note that the ports tree provides a lv2-core package. Well, I said I'm
not a C or Audio experienced programmer, but I realized that the
lv2-core is just one part of the whole "lv2", wich includes the UI
support. That's why I deinstalled my lv2-core from the system, ported a
lv2 and installed. Even my Ardour 2.x is loading LV2 plugins now (but
without LV2 UI). Ardour 3 is loading LV2 UIs.

So I recommend you do the same: deinstall lv2-core befeore installing lv2
because they install files in the same place.

QUESTION: don't you think we could remove the lv2-core from the ports
and replace it by the whole "lv2" ? It's the same, but with more features.

Follow this order while installing these new ports.

- serd-0-0.18.0       lightweight C library for RDF syntax
- sord-0-0.10.4       lightweight C library for storing RDF data in memory
- lv2-1.2.0           An extensible audio plugin interface
- lilv-0.14.4         LV2 Plugin Support Library
- suil-0.6.6 [1]          A lightweight C library for loading and
wrapping LV2 plugin

[1] If you tried to use the last suil-0.6.6 I mentioned a few days,
replace it by this new one because there was an error with a pc file
 (pkg-config) and ardour 3 would not find this package installed.

And here are the links to those ports at one of my home pages:

- www.linuxhomestudio.com.br/freebsd/ports/serd-0.shar
- www.linuxhomestudio.com.br/freebsd/ports/sord-0.shar
- www.linuxhomestudio.com.br/freebsd/ports/lv2.shar
- www.linuxhomestudio.com.br/freebsd/ports/lilv-0.shar
- www.linuxhomestudio.com.br/freebsd/ports/suil-0.shar
- www.linuxhomestudio.com.br/freebsd/ports/ardour3b5.shar

And finally, BUILD, DON'T INSTALL, Ardour 3 Beta 5.

$ cd the directory you extracted the port
$ make DISTDIR=/tmp configure
	To make sure this phase encounters everything it needs. If not, try
	to change the waf's wscript or something else. Ensure it finds
	lilv, lv2 and suil to build it with LV2 and LV2 UI support.
$ make

== Running ==

$ cd yout port's path
$ work/ardour-3.0-beta5-r13072/gtk2_ardour/ardev
Ardour3.0beta5 (built using ['13072'] and GCC version 4.2.1 Compatible
FreeBSD Clang 3.0 (tags/RELEASE_30/final 145349))
[and the GUI is launched]

== New Toys ==

Install the audio/calf (calf plugins) now that you have LV2 and LV2 UI
CALF provides good lv2 plugins, wonderful user interfaces inside ardour
and even instrments (like a mono synth and more)

== A Few Results ==

I played my MIDI keyboard with a LV2 synth. It was possible to edit the
midi track in a piano roll. I need to test linuxsampler as a plugin yet.

I think Juergen said the tha Beta 1 was not loading LV2 UIs. Well, I'm
happy to say that this version load 'em all! Try the CALF Plugins
yourself (compressor, reverb ...).

I posted a few screenshots. The UIs looks really cool, works well.

LV2 plugins sounds even better than the old LADSPA.

I didn't test all plugins, but the CALF compressor, reverb and mono synth
are very good. The CALF organ crashed with Segmentation Fault. I had
no time to investigate (it passed just a few hours since I finished
this port!).

== What if it doesn't work ==

Then I'm so sorry. I have the same problem before. At least try to
install the lv2 port above and recompile Ardour 2. You'll find your
ardour2 loading CALF plugins (without the LV2 UI) :D

== Related Resources ==

- Juergen Lock's Ardour 3 Beta 1:

- SCREENSHOTS: http://linuxhomestudio.com.br/freebsd/articles/ardour3b5/ardour3b5.html

Marcel Bonnet

More information about the freebsd-multimedia mailing list