Skip to content

Commit

Permalink
Merge pull request #3 from chris-hld/mxe
Browse files Browse the repository at this point in the history
Prepare new release (with SSR 0.5.0)
  • Loading branch information
Chris Hold authored Nov 19, 2018
2 parents c97a635 + cd85190 commit f30eb57
Show file tree
Hide file tree
Showing 38 changed files with 319 additions and 183 deletions.
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,13 @@ bin
*_moc.cpp
src/config.h
*.exe
Makefile.in
aclocal.m4
autom4te.cache/
autotools/
configure
data/MacOSX/Makefile.in
data/Makefile.in
man/Makefile.in
src/Makefile.in
src/config.h.in
6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ matrix:
before_install:
- eval "${MATRIX_EVAL}"
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sudo rm /usr/local/include/c++; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi

install:
Expand All @@ -99,9 +98,9 @@ before_script:
- autoreconf -vfi

script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./configure --enable-app-bundle; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./configure; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./configure --prefix='/usr'; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then make dmg; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then make; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then make && sudo make install; fi

after_failure:
Expand All @@ -113,6 +112,7 @@ branches:
- master
- travis-integration
- ssr-windows
- mxe

notifications:
email: false
Expand Down
30 changes: 14 additions & 16 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,6 @@ set(SOURCE_FILES
src/xmlparser.cpp
)

set(MAIN_SOURCE_FILES
src/ssr_binaural
src/ssr_brs
src/ssr_generic
src/ssr_nfc_hoa
src/ssr_vbap
src/ssr_wfs
)

# Libraries
# Add libraries to LINKLIBS
set(LINKLIBS)
Expand Down Expand Up @@ -193,7 +184,7 @@ if(GUI)
find_package(Freetype REQUIRED)
list(APPEND QT5PLATFORMSUPPORT_LIBS ${FREETYPE_LIBRARIES})

message(STATUS "Found Qt5PlatformSupport :" ${QT5PLATFORMSUPPORT_LIBS})
message(STATUS "Found Qt5PlatformSupport: " ${QT5PLATFORMSUPPORT_LIBS})
endif(WIN32)

# OpenGL
Expand Down Expand Up @@ -259,20 +250,29 @@ configure_file (

# Compiler flags
# Add a few for release builds (MAKE_BUILD_TYPE=RELEASE)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -pipe -Wall -fomit-frame-pointer -ffast-math -funroll-loops -march=native -mmmx -m3dnow -msse -msse2 -msse3 -mfpmath=sse")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -pipe -Wall -fomit-frame-pointer -ffast-math -funroll-loops -march=x86-64 -mmmx -msse -msse2 -mfpmath=sse")
message(STATUS "CMAKE Release Flags: " ${CMAKE_CXX_FLAGS_RELEASE})
# And for debug builds (MAKE_BUILD_TYPE=DEBUG)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pipe -Wall -ffast-math -march=x86-64 -mmmx -msse -msse2 -mfpmath=sse -Weffc++")
message(STATUS "CMAKE Debug Flags: " ${CMAKE_CXX_FLAGS_DEBUG})

# Compile executables
set(EXECUTABLES
ssr-binaural
ssr-brs
ssr-generic
ssr-vbap
ssr-wfs
ssr-aap
ssr-dca
ssr-generic
)
add_executable(ssr-binaural src/ssr_binaural.cpp ${SOURCE_FILES})
add_executable(ssr-brs src/ssr_brs.cpp ${SOURCE_FILES})
add_executable(ssr-generic src/ssr_generic.cpp ${SOURCE_FILES})
add_executable(ssr-vbap src/ssr_vbap.cpp ${SOURCE_FILES})
add_executable(ssr-wfs src/ssr_wfs.cpp ${SOURCE_FILES})
add_executable(ssr-aap src/ssr_aap.cpp ${SOURCE_FILES})
add_executable(ssr-dca src/ssr_dca.cpp ${SOURCE_FILES})
add_executable(ssr-generic src/ssr_generic.cpp ${SOURCE_FILES})


# Link
Expand All @@ -283,10 +283,8 @@ endif(WIN32)
message(STATUS "Linking: " ${LINKLIBS} ${QT5PLATFORMSUPPORT_LIBS})

foreach(executable ${EXECUTABLES})
target_link_libraries(${executable} Threads::Threads ${LINKLIBS})
target_link_libraries(${executable} Threads::Threads ${LINKLIBS})
if(GUI)
target_link_libraries(${executable} Qt5::Gui Qt5::Core Qt5::Widgets Qt5::OpenGL ${QT5PLATFORMSUPPORT_LIBS})
target_link_libraries(${executable} Qt5::Gui Qt5::Core Qt5::Widgets Qt5::OpenGL ${QT5PLATFORMSUPPORT_LIBS})
endif(GUI)
endforeach(executable ${EXECUTABLES})
endforeach(executable ${EXECUTABLES})
2 changes: 1 addition & 1 deletion MXE-settings.mk
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ override MXE_PLUGIN_DIRS += plugins/gcc8
#LOCAL_PKG_LIST := boost curl file flac lzo pthreads vorbis wxwidgets
#.DEFAULT_GOAL := local-pkg-list
#local-pkg-list: $(LOCAL_PKG_LIST)
LOCAL_PKG_LIST := cc cmake pthreads fftw libsndfile jack libxml2 qt5
LOCAL_PKG_LIST := cc cmake pthreads fftw libsndfile libxml2 qtbase
.DEFAULT_GOAL := local-pkg-list
local-pkg-list: $(LOCAL_PKG_LIST)
21 changes: 17 additions & 4 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -35,32 +35,39 @@ dist_noinst_DATA = \
doc/manual/images/ssr_logo_mac_30px.png \
doc/manual/images/screenshot_spd.png \
doc/manual/images/screenshot.png \
doc/manual/images/distance_attenuation.png \
doc/manual/images/hrir_comp_filters.png \
mex/README.md \
mex/COPYING \
mex/DESCRIPTION \
mex/Makefile \
mex/ssr_mex.h \
mex/ssr_aap.cpp \
mex/ssr_binaural.cpp \
mex/ssr_nfc_hoa.cpp \
mex/ssr_brs.cpp \
mex/ssr_dca.cpp \
mex/ssr_generic.cpp \
mex/ssr_vbap.cpp \
mex/ssr_wfs.cpp \
mex/ssr_helper.m \
mex/test_ssr.m \
flext/README.md \
flext/Makefile \
flext/package.txt \
flext/ssr_flext.h \
flext/ssr_aap.cpp \
flext/ssr_binaural.cpp \
flext/ssr_nfc_hoa.cpp \
flext/ssr_dca.cpp \
flext/ssr_vbap.cpp \
flext/ssr_wfs.cpp \
flext/ssr_messages.pd \
flext/ssr_aap~-help.pd \
flext/ssr_binaural~-help.pd \
flext/ssr_nfc_hoa~-help.pd \
flext/ssr_dca~-help.pd \
flext/ssr_vbap~-help.pd \
flext/ssr_wfs~-help.pd \
flext/virtual_aap.pd \
flext/virtual_dca.pd \
flext/virtual_vbap.pd \
flext/virtual_wfs.pd \
flext/8channels.asd \
Expand All @@ -69,14 +76,20 @@ dist_noinst_DATA = \
flext/hrirs_fabian_min_phase_eq.wav \
flext/hrirs_kemar.wav \
flext/hrirs_kemar_min_phase_eq.wav \
flext/wfs_prefilter_120_1500_44100.wav
flext/wfs_prefilter_120_1500_44100.wav \
pd/README.md \
pd/slaxml.lua \
pd/ssrclient-help.pd \
pd/ssrclient.pd_lua

dist_noinst_SCRIPTS = flext/startpd.sh

# these files are deleted on "make maintainer-clean":
MAINTAINERCLEANFILES = aclocal.m4 stamp-h.in \
config.log config.cache config.status

DISTCLEANFILES = $(SSR_MANUAL_DIST)

## TODO: find a way to actually use this location (see autogen.sh)
## # where we keep local rules for automake
## ACLOCAL_M4 = autotools/aclocal.m4
Expand Down
16 changes: 16 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
User-visible changes in the SoundScape Renderer. Recent changes on top.

0.5.0 (16 November 2018)

- GUI now uses Qt5

- the exponent that determines distance attenuation of the amplitude in the
virtual space can be set by the user

- significant extensions of the documentation

- the former NFC-HOA renderer is back in an experimental version now called
distance-coded Ambisonics (DCA)

- headphone-compensated HRTFs are included

- the end-of-message character in TCP messages can be selected by the user

0.4.2 (24 July 2014)

- the default number of threads is now obtained automatically (but can still be
Expand Down
14 changes: 9 additions & 5 deletions README
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
This is a fork of the SoundScape Renderer (SSR), which aims at porting the source code to Windows.
This is a fork of the SoundScape Renderer ([SSR](https://github.com/SoundScapeRenderer/ssr)), which aims at porting the source code to Windows.

The basic idea is to cross-compile on a linux machine an executable (.exe) for Windows.
We use the M cross environment ([MXE](http://mxe.cc/)), which provides cross-compilation scripts for the dependencies and the MinGW64 (GCC) compiler.

Pre-compiled binaries for Windows currently include:
`ssr-binaural.exe`, `ssr-brs.exe`, `ssr-wfs.exe` and `ssr-generic.exe`.
`ssr-binaural.exe`, `ssr-brs.exe`, `ssr-vbap.exe`, `ssr-wfs.exe`, `ssr-aap.exe`, `ssr-dca.exe` and `ssr-generic.exe`.

They should run on all x86-64 CPUs.
So far, only the Razor and Polhemus head-tracker are ported (and I can only test the recent Razor).


Getting started
Expand Down Expand Up @@ -34,7 +37,7 @@ This could look like this:

This is the source distribution of SoundScape Renderer (SSR) licensed under the
GPLv3+. Please consult the file COPYING for more information about this license.

The user manual in the doc/ directory contains relevant informations about the
SSR, including installation instructions. Additional (very detailed)
installation instructions can be found in the file INSTALL.
Expand All @@ -47,8 +50,9 @@ Documentation: http://ssr.readthedocs.io/en/latest/

Copyright (c) 2016-2018 Division of Applied Acoustics
Chalmers University of Technology

Copyright (c) 2012-2014 Institut für Nachrichtentechnik, Universität Rostock

Copyright (c) 2006-2012 Quality & Usability Lab
Deutsche Telekom Laboratories, TU Berlin
Deutsche Telekom Laboratories, TU Berlin

16 changes: 11 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
This is a fork of the SoundScape Renderer (SSR), which aims at porting the source code to Windows.
[![Build Status](https://travis-ci.com/chris-hld/ssr.svg?branch=ssr-windows)](https://travis-ci.com/chris-hld/ssr)

This is a fork of the SoundScape Renderer ([SSR](https://github.com/SoundScapeRenderer/ssr)), which aims at porting the source code to Windows.

The basic idea is to cross-compile on a linux machine an executable (.exe) for Windows.
We use the M cross environment ([MXE](http://mxe.cc/)), which provides cross-compilation scripts for the dependencies and the MinGW64 (GCC) compiler.

Pre-compiled binaries for Windows currently include:
`ssr-binaural.exe`, `ssr-brs.exe`, `ssr-wfs.exe` and `ssr-generic.exe`.
`ssr-binaural.exe`, `ssr-brs.exe`, `ssr-vbap.exe`, `ssr-wfs.exe`, `ssr-aap.exe`, `ssr-dca.exe` and `ssr-generic.exe`.

They should run on all x86-64 CPUs.
So far, only the Razor and Polhemus head-tracker are ported (and I can only test the recent Razor).


Getting started
Expand Down Expand Up @@ -34,7 +39,7 @@ This could look like this:

This is the source distribution of SoundScape Renderer (SSR) licensed under the
GPLv3+. Please consult the file COPYING for more information about this license.

The user manual in the doc/ directory contains relevant informations about the
SSR, including installation instructions. Additional (very detailed)
installation instructions can be found in the file INSTALL.
Expand All @@ -47,8 +52,9 @@ Documentation: http://ssr.readthedocs.io/en/latest/

Copyright (c) 2016-2018 Division of Applied Acoustics
Chalmers University of Technology

Copyright (c) 2012-2014 Institut für Nachrichtentechnik, Universität Rostock

Copyright (c) 2006-2012 Quality & Usability Lab
Deutsche Telekom Laboratories, TU Berlin
Deutsche Telekom Laboratories, TU Berlin

11 changes: 11 additions & 0 deletions apf/apf/mextools.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,17 @@ bool convert(const mxArray* in, int& out)
return true;
}

/// Convert @c mxArray to <tt>long int</tt>
bool convert(const mxArray* in, long int& out)
{
if (!mxIsDouble(in) || mxIsComplex(in)) return false;
if (mxGetNumberOfElements(in) != 1) return false;
double temp = mxGetScalar(in);
if (temp != std::floor(temp)) return false;
out = temp;
return true;
}

/// Convert @c mxArray to @c bool
bool convert(const mxArray* in, bool& out)
{
Expand Down
2 changes: 1 addition & 1 deletion apf/performance_tests/biquad_count_denormals.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ int main()
benign_flt.a1 = 0.5f; benign_dbl.a1 = 0.5;
benign_flt.a2 = 0.2f; benign_dbl.a2 = 0.2;

// HPF similar to the one used in HOA algorithm
// HPF similar to the one used in DCA algorithm
malignant_flt.b0 = 0.98f; malignant_dbl.b0 = 0.98;
malignant_flt.b1 = -1.9f; malignant_dbl.b1 = -1.9;
malignant_flt.b2 = 0.93f; malignant_dbl.b2 = 0.93;
Expand Down
2 changes: 1 addition & 1 deletion apf/performance_tests/biquad_denormals.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ int main()
benign_flt.a1 = 0.5f; benign_dbl.a1 = 0.5;
benign_flt.a2 = 0.2f; benign_dbl.a2 = 0.2;

// HPF similar to the one used in NFC-HOA algorithm
// HPF similar to the one used in DCA algorithm
malignant_flt.b0 = 0.98f; malignant_dbl.b0 = 0.98;
malignant_flt.b1 = -1.9f; malignant_dbl.b1 = -1.9;
malignant_flt.b2 = 0.93f; malignant_dbl.b2 = 0.93;
Expand Down
4 changes: 1 addition & 3 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ mkdir -p _build && cd _build
#cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw64.cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
x86_64-w64-mingw32.static.posix-cmake ... -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
make -j8
#mv ../bin/ssr-binaural.exe ../bin/ssr-binaural-release.exe

#x86_64-w64-mingw32.static.posix-cmake ... -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
#make -j8
#mv ../bin/ssr-binaural.exe ../bin/ssr-binaural-debug.exe
#make

cd ..
11 changes: 6 additions & 5 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -175,10 +175,10 @@ ENABLE_AUTO([generic], [generic renderer],
[SSR_executables="$SSR_executables ssr-generic"])
])

ENABLE_AUTO([nfc-hoa],[Near-Field-Compensated Higher-Order-Ambisonics renderer],
ENABLE_AUTO([dca],[Distance-coded Ambisonics renderer],
[
AS_IF([test x$enable_nfc_hoa = xyes -o x$have_all = xyes],
[SSR_executables="$SSR_executables ssr-nfc-hoa"])
AS_IF([test x$enable_dca = xyes -o x$have_all = xyes],
[SSR_executables="$SSR_executables ssr-dca"])
])

dnl Note: For what happens with SSR_executables see src/Makefile.am
Expand Down Expand Up @@ -250,7 +250,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
])

dnl NOTE: -pthread works on GCC, other compilers may need differnt flags!
AS_IF([test x$GCC = xyes -a x$usercxxflags = xno],
AS_IF([test x$GCC = xyes],
[CXXFLAGS="$CXXFLAGS -pthread"])

ENABLE_AUTO([optimization], [code optimization],
Expand Down Expand Up @@ -515,7 +515,7 @@ AS_IF([test x$have_gui = xyes],
AC_SUBST(MOCFLAGS)
])

ENABLE_FORCED([ip-interface], [network (TCP/IP) interface],
ENABLE_FORCED([ip-interface], [network (TCP/IP) interface (needs Asio, https://think-async.com/)],
[
CPPFLAGS="$CPPFLAGS -DASIO_STANDALONE"
AC_CHECK_HEADER([asio.hpp], , [have_ip_interface=no])
Expand Down Expand Up @@ -581,6 +581,7 @@ ENABLE_AUTO([vrpn], [VRPN tracker support],
AC_MSG_CHECKING([various header files for VRPN tracker support])
AC_MSG_RESULT([see below])
AC_CHECK_HEADER([vrpn_Tracker.h], , [have_vrpn=no])
AC_SEARCH_LIBS([q_from_axis_angle], [quat], , [have_vrpn=no])
AC_SEARCH_LIBS([vrpn_MAGIC], [vrpn], , [have_vrpn=no])
AC_MSG_CHECKING([VRPN tracker support])
AC_MSG_RESULT([$have_vrpn])
Expand Down
4 changes: 4 additions & 0 deletions data/MacOSX/Info.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@

<plist version="1.0">
<dict>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
<key>CFBundleExecutable</key>
<string>run-ssr.sh</string>
<key>CFBundleIconFile</key>
Expand Down
Loading

0 comments on commit f30eb57

Please sign in to comment.