/wahjam

Wahjam online music collaboration

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Wahjam client and server (http://wahjam.org/)
---------------------------------------------

This software allows musicians to play music together over the internet.  It is
compatible with and based on NINJAM (http://ninjam.com/).

This code is licensed GPL v2 or later:

  http://www.gnu.org/licenses/gpl-2.0.html

Source tree layout
------------------

  common/         Core code
  qtclient/       GUI client using Qt framework
  server/         Server
  WDL/            Cockos common library, see www.cockos.com/wdl/

How to build the Qt client
--------------------------

Install the Qt5 cross-platform application and UI toolkit from http://qt.nokia.com/.

Install Ogg and Vorbis audio codec libraries from http://xiph.org/.

Then run the following commands:

  qmake
  make

On Windows the recommended build environment for libogg and libvorbis is MinGW
and MSYS from http://www.mingw.org/.  Build libogg and libvorbis inside MSYS,
then use the Qt build environment to compile qtclient.  You may need to add the
MSYS include/ and lib/ paths as QMAKE_CXXFLAGS -I and LIBS -L flags in
qtclient/qtclient.pro.

Cross-compiling the Qt client for Windows
-----------------------------------------

The MinGW compiler can be used as a cross-compiler to build Windows executables
from a Linux host.  This allows us to set up a Linux build server capable of
building Windows executables.

The mxe project provides a cross-compiler and many popular libraries, including
Wahjam's dependencies on ogg, vorbis, the Qt framework, and PortAudio.

1. Clone mxe:

  git clone https://github.com/mxe/mxe.git

1. Build the cross-compiler and dependencies:

  cd mxe
  make gcc ogg vorbis qt5 portaudio portmidi

1. If you encounter any build errors try reducing optional dependencies.

For example, try disabling SQL drivers and DBUS on the ./configure line in
mxe/src/qt.mk.

NINJAM fork information:

The original source trees were taken from http://www.ninjam.com/.  The files
were:

  ninjam_winclient_0.06.zip
  ninjam_osxclient_0.02a.tar.gz
  cclient_src_v0.01a.tar.gz
  ninjam_server_0.06.tar.gz