Request for porting traverso - very impressive audio editor

I am starting on this. Wavpack.h can be found but vorbisfile.h cannot even after the CMakeLists.txt is edited.
 
It appears that at the time of the last build, vorbisfile.h was in the ogg_$PATH directory. Currently both ogg and vorbis are separate ports. Traverso uses cmake to build. What I am doing is modifying the environment- hacking the CMakeLists.txt file- so that the application can build without passing arguments. That means "Deet doot!" the port Makefile will be simple. Of course, I'll spazz out as usual.
 
Since the original maintainers of Traverso can not be contacted, is there anyone here that is familiar with cmake? Yes, I am asking the cmake mailing lists for help.
 
In the CMakeLists.txt, I have had to comment out the sections with vorbisfile.h and asoundlib.h. In /usr/ports/audio/jack/Makefile you must set the value to
Code:
USE_GCC= any
because jack will not build with clang at the present moment.
 
I have to build jack2 - There are no file tags for reason that it is probably a suite. The source is at http://www.jackaudio.org in the downloads section - to provide development headers.

Currently, test.cpp in $JACK2/ finds an error with the FreeBSD version and the Audacity source version of samplerate.h.

http://forums.freebsd.org/showthread.php?t=41470 may be necessary in this case. This is a suggestion for anyone following along and trying the building process.
 
Hi @sossego. Did you finally fixed that?

I'm trying to build this without JACK, ALSA, PULSEAUDIO and... but I've encountered a different error message with the following Makefile:

Code:
# $FreeBSD$

PORTNAME=	traverso
PORTVERSION=	0.49.2
CATEGORIES=	audio
MASTER_SITES=	SF/traversodaw.mirror/

LIB_DEPENDS=	slv2:${PORTSDIR}/audio/slv2 \
		wavpack:${PORTSDIR}/audio/wavpack \
		vorbis:${PORTSDIR}/audio/libvorbis

OPTIONS_DEFINE=	ALSA JACK PORTAUDIO PULSEAUDIO

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MALSA}
LIB_DEPENDS+=	asound:${PORTSDIR}/audio/alsa-lib
.else
CMAKE_ARGS+=	-DWANT_ALSA=OFF
.endif

.if ${PORT_OPTIONS:MJACK}
LIB_DEPENDS+=	jack:${PORTSDIR}/audio/jack
.else
CMAKE_ARGS+=	-DWANT_JACK=OFF
.endif

.if ${PORT_OPTIONS:MPORTAUDIO}
BUILD_DEPENDS+= portaudio:${PORTSDIR}/audio/portaudio2
RUN_DEPENDS+=   portaudio:${PORTSDIR}/audio/portaudio2
CMAKE_ARGS+=    -DWANT_PORTAUDIO=ON
.else
CMAKE_ARGS+=	-DWANT_PORTAUDIO=OFF
.endif

.if ${PORT_OPTIONS:MPULSEAUDIO}
LIB_DEPENDS+=   pulse:${PORTSDIR}/audio/pulseaudio
CMAKE_ARGS+=	-DWANT_PULSEAUDIO=ON
.else
CMAKE_ARGS+=	-DWANT_PULSEAUDIO=OFF
.endif

CFLAGS+=	-I${LOCALBASE}/include

MAKE_JOBS_UNSAFE=	yes
CMAKE_ARGS+=	-DDETECT_HOST_CPU_FEATURES=OFF

USES= cmake
USE_QT4=       # partial, this should be filled after a successful build.

.include <bsd.port.mk>

The error message:
Code:
-- Build files have been written to: /usr/ports/obj/root/traverso/work/traverso-0.49.2
===>  Building for traverso-0.49.2
[  0%] Generating moc_AudioBus.cxx
[  0%] Generating moc_AudioDevice.cxx
[  0%] Generating moc_Client.cxx
Scanning dependencies of target traversoaudiobackend
[  1%] Building CXX object src/engine/CMakeFiles/traversoaudiobackend.dir/AudioBus.o
[  1%] Building CXX object src/engine/CMakeFiles/traversoaudiobackend.dir/AudioChannel.o
[  1%] Building CXX object src/engine/CMakeFiles/traversoaudiobackend.dir/AudioDevice.o
[  1%] Building CXX object src/engine/CMakeFiles/traversoaudiobackend.dir/AudioDeviceThread.o
/usr/ports/obj/root/traverso/work/traverso-0.49.2/src/engine/AudioDeviceThread.cpp:151: error: 'cpu_set_t' has not been declared
/usr/ports/obj/root/traverso/work/traverso-0.49.2/src/engine/AudioDeviceThread.cpp: In member function 'void AudioDeviceThread::run_on_cpu(int)':
/usr/ports/obj/root/traverso/work/traverso-0.49.2/src/engine/AudioDeviceThread.cpp:163: error: 'cpu_set_t' was not declared in this scope
/usr/ports/obj/root/traverso/work/traverso-0.49.2/src/engine/AudioDeviceThread.cpp:163: error: expected `;' before 'mask'
/usr/ports/obj/root/traverso/work/traverso-0.49.2/src/engine/AudioDeviceThread.cpp:164: error: 'mask' was not declared in this scope
/usr/ports/obj/root/traverso/work/traverso-0.49.2/src/engine/AudioDeviceThread.cpp:164: error: 'CPU_ZERO' was not declared in this scope
/usr/ports/obj/root/traverso/work/traverso-0.49.2/src/engine/AudioDeviceThread.cpp:165: error: 'CPU_SET' was not declared in this scope
*** [src/engine/CMakeFiles/traversoaudiobackend.dir/AudioDeviceThread.o] Error code 1

Stop in /usr/ports/obj/root/traverso/work/traverso-0.49.2.
*** [src/engine/CMakeFiles/traversoaudiobackend.dir/all] Error code 1

Stop in /usr/ports/obj/root/traverso/work/traverso-0.49.2.
*** [all] Error code 1

Stop in /usr/ports/obj/root/traverso/work/traverso-0.49.2.
*** [do-build] Error code 1

Stop in /root/traverso.
*** [build] Error code 1

Stop in /root/traverso.
root@minootux:~/traverso # make clean

Does anyone know that what package provides those CPU_* and cpu_set_t macros? I found nothing in the README and INSTALL and also googling doesn't help.

Those macros are part of: http://man7.org/linux/man-pages/man3/CPU_SET.3.html

But, are they available for FreeBSD?
 
Last edited by a moderator:
@bkouhi, I am still trying to contact on of the original traverso maintainers. I am not using a Makefile; however, I will try yours along with building it from source to see what the differences are.

The other traverso site is at http://savannah.nongnu.org/projects/traverso/. You may want to add this to the sources list.

Code:
MASTER_SITES= http://traverso-daw.org/previous-releases.html&d=source/traverso-0.49.1.tar.gz
 
Last edited by a moderator:
Hi @sossego.

Thank you for working on this. Unfortunately I'm a bit busy right now and don't have time to work on this, but I finally managed to get this just working. But it needs much more work to become a complete port. Please don't use that Makefile. If you have time and want to work on this, you might use this new shar file, it contains the new Makefile and some patches. But I think some dependencies are missing in the Makefile and it does not contain a pkg-plist, so please don't use this on a production system: http://codepad.org/kOJcCoqq

I also changed some files under /usr/local/include (but please note that ports must not change files outside of their WRKDIR): http://forums.freebsd.org/showthread.php?t=41872

Here is a build log, a screenshot and the output of ldd (can be used for tracking dependencies).

Good luck!
 
Last edited by a moderator:
Code:
/usr/local/include/librdf.h:198: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'librdf_node'

/usr/local/include/librdf.h
Code:
typedef raptor_term librdf_node;
  
/**
 * librdf_statement:
 * 
 * Redland statement class.
 */
typedef raptor_statement librdf_statement;

Et al.

I'm using /usr/local/bin/cmake to do the dirty work.


For me it is to forego the pulseaudio and portaudio2 options in the make config options. This is only for 10.0 on i386.


Mr- If you're not a Mr. I'm sorry- @bkouhi gave me some information I didn't see beforehand to help with this project.
 
Last edited by a moderator:
The librdf errors can be removed by editing work/traverso-0.49.2/CMakeLists.txt to "OFF" at the LV2 option. I enabled SLV2_* to "ON" for system slv2 . The current error is with libsamplerate.

Code:
[  5%] Built target traversoaudiobackend
[  8%] Built target traversoaudiofileio
[ 35%] Built target traversocore
[ 44%] Built target traversocommands
[ 44%] Built target tcp_traversocommands
[ 51%] Built target traversoplugins
[ 67%] Built target traversosheetcanvas
Linking CXX executable ../../bin/traverso
/usr/bin/ld: cannot find -lsamplerate
1 error
 
Please install audio/libsamplerate and add these lines into LIB_DEPENDS in the Makefile:

Code:
samplerate:${PORTSDIR}/audio/libsamplerate \
icudata:${PORTSDIR}/devel/icu \
yajl:${PORTSDIR}/devel/yajl \
sndfile:${PORTSDIR}/audio/libsndfile \
ogg:${PORTSDIR}/audio/libogg \
rdf:${PORTSDIR}/textproc/redland \
SM:${PORTSDIR}/x11/libSM \
ICE:${PORTSDIR}/x11/libICE
 
bkouhi said:
Dear @sossego, are you using a Makefile? I use the Makefile that is included in this shar file and it builds fine on my 9.2-PRERELEASE (without any modification). Could you please try that?

I'm using 10.0 from about March/April. CLang is the standard unless
Code:
USE_GCC
and
Code:
CXX=$PATH/g++
are stated in the Makefile.


I've done your shell archive with extraction. LV2 needs to be added to the options along with using the systems SLV2 libraries. These have been edited in the CMakeLists text file. Running make -k continues the build.

When I am back on the FreeBSD disk, I'll create a LIB_DEPENDS section.

Cmake doesn't leave enough files. Everything builds quite well for alpha porting. It is the linker that messes up.

Mister @bkouhi, Check the mailing lists.
 
Last edited by a moderator:
@bkouhi, I'm asking for help on the cmake mailing lists because it is a build problem.
 
Last edited by a moderator:
Code:
-- Configuring done
You have changed variables that require your cache to be deleted.
Configure will be re-run and you may have to reset some variables.
The following variables have changed:
CMAKE_C_COMPILER= gcc46
CMAKE_CXX_COMPILER= g++46

It loops after that message.
 
I searched through CMakeLists for the problem and changed "compat/linux/proc/cpuinfo" to "/var/log/dmesg.today" Setting the compiler and compiler preprocessor does no different. Thanks for working with me through this.
 
@sossego, sorry for the delayed reply. I've installed 10.0-ALPHA4/amd64 on VirtualBox and right now, I'm trying to build traverso. But since its a virtual machine and has only 1 GB RAM, it will be completed tomorrow. I hope I find the problem.
 
Last edited by a moderator:
That's odd. traverso builds fine on my 10.0-ALPHA4/amd64. I just added:

Code:
USE_GCC=    yes
LDFLAGS+=   -L${LOCALBASE}/lib

into the Makefile and I also turned off LV2 option in CMakeLists.txt.

Did you run a make clean? Or do you have anything in make.conf?

EDIT:
It also builds fine without this line:
Code:
LDFLAGS+=   -L${LOCALBASE}/lib
 
The downloaded file ends up with a set of X's on the left hand margin and a number value of ^M - yes, but it only shows on vi - on the right hand margin. vi doesn't seem to have a "Mark all and delete that sucker" option. I've moved to $WORK_DIRECTORY/traverso-0.49.2/CMakeFiles/2.10.8.2 and began editing the compiler to use CLang in place of gcc. I'm waiting for the reply to see if a version number is really necessary for building.
 
Back
Top