Giter Site home page Giter Site logo

progwolff / performer Goto Github PK

View Code? Open in Web Editor NEW
14.0 4.0 1.0 3.3 MB

Live performance audio session manager using Carla

License: GNU General Public License v3.0

CMake 12.43% Shell 0.99% C++ 84.41% QML 0.58% Python 1.58%
audio music instruments midi vst lv2 host sfz jack qt5

performer's Introduction

Performer

Important

This project is currently unmaintained.

Live performance audio session manager using Carla

Screenshot

Build Status

Performer lets you manage all the songs in your setlist as individual carla patches and loads each of them when you need it. Additionally Performer uses Okular or QWebEngine to display notes and chords of your songs.

Features

  • Loads carla patches for songs and connects them when they are active
  • Displays notes or chords for songs
  • Detects crashed instances of Carla or the Jack server and restarts them
  • MIDI controllable
  • Qt style selectable

Dependencies

  • Carla
  • python
  • qt5-base
  • qt5-declarative
  • qt5-tools (make)
  • extra-cmake-modules (make, optional: KDE integration)
  • kdebase-runtime (optional: KDE integration)
  • kparts (optional: display notes or chords with okular)
  • okular (optional: display notes or chords)
  • qt5-webengine (optional: display notes or chords without okular)
  • jackman (optional: automatically restart unresponsive jack server)

Install

Arch Linux

Install performer-git from AUR

AV Linux / Debian Testing

A prebuilt package can be found at https://github.com/progwolff/performer/releases/download/v1.0.2/Performer-1.0.2-AVLinux.deb

To build Performer from git run:

$ sudo apt-get update
$ sudo apt-get install qtwebengine5-dev 
$ git clone https://github.com/progwolff/performer.git
$ cd performer
$ mkdir build && cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
$ make
$ sudo make install

KXStudio / Ubuntu 14.04

A prebuilt package can be found at https://github.com/progwolff/performer/releases/download/v1.0.2/Performer-1.0.2-KXStudio.deb

This build has no document viewer enabled.

To build Performer with a document viewer on KXStudio or Ubuntu 14 run:

$ sudo apt-get install build-essential
$ sudo apt-get install git
$ sudo apt-get install cmake
$ sudo apt-get install libjack-jackd2-dev
$ wget http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7.0.run
$ chmod +x qt-opensource-linux-x64-5.7.0.run
$ ./qt-opensource-linux-x64-5.7.0.run

Install Qt to ~/Qt5.7.0, skip login, make sure to install Qt WebEngine

Build and install Performer (replacing by your actual user name):

$ git clone https://github.com/progwolff/performer.git
$ cd performer
$ mkdir build && cd build
$ export PATH="/home/<username>/Qt5.7.0/5.7/gcc_64/bin/:$PATH"
$ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_DATADIR=/usr/share -DQt5_DIR=~/Qt5.7.0/5.7/gcc_64/lib/cmake/Qt5 -DJACK_LIBRARIES=/usr/lib/x86_64-linux-gnu/libjack.so -DJACK_INCLUDEDIR=/usr/include ..
$ make
$ sudo make install

Other Linux Distros

$ mkdir build && cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
$ make
# make install

Windows [Experimental]

Install Qt5 with QWebEngine.

Install Jack2

Install Carla and run it

In cmd.exe type:

mkdir build
cd build
cmake -CMAKE_INSTALL_BINDIR=bin -DWITH_QWEBENGINE=1 -DQt5_DIR=C:\Qt\5.8\msvc2015\lib\cmake\Qt5 -DQt5WebEngine_DIR=C:\Qt\5.8\msvc2015\lib\cmake\Qt5WebEngine -DJACK_INCLUDEDIR="C:\Program Files (x86)\Jack\includes" -DJACK_LIBRARIES="C:\Program Files (x86)\Jack\lib\libjack.lib" -G"Visual Studio 14 2015" ..
cmake --build . --config Release --target package

Use the generated installer to install Performer

Android [Experimental]

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_ROOT=arm-linux-androideabi -DANDROID_ABI="armeabi-v7a" -DCMAKE_FIND_ROOT_PATH="/opt/android-qt5;/opt/android-qt5/5.7.0/armeabi-v7a/lib/cmake/Qt5" -DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-4.9 -DANDROID_TOOLCHAIN_MACHINE_NAME=arm-linux-androideabi -DANDROID_COMPILER_VERSION=4.9 -DWITH_JACK=0 ..
cmake --build .

Install the apk in src/bin/ to your android device.

Usage

Start Performer.

Using command line tools or a jack patchbay like Catia connect the ports of Performer to the appropriate system ports or to the ports of other jack clients.

Patchbay

The Carla instances created by Performer will connect to the same ports Performer is connected to.

Connect the events-in port to a MIDI input device. Ports connected to events-in will act as MIDI input for Carla instances created by Performer.

Connect the control_gui-in port to a MIDI input device that you want to use to control the GUI of Performer.

Click the "Add" button. Change the name of the song to the name of a song you want to have in your setlist. Add a Carla patch file (.carxp) for this song. Add notes or chords (.pdf, .txt, .png, ...) for this song. They will be displayed when the song is active or when you click on it's entry in the setlist.

Add

Right click the song's entry in the setlist. Choose "Play now". If you assigned a Carla patch to this song, a new instance of Carla will be created, loading the patch file. It's ports will be connected to the same ports Performer is connected to, allowing you to play this song.

Add some more songs to your setlist.

Save the setlist (File -> Save).

Click "Next". A Carla instance for the next song in your setlist will be created. The Carla instances of the previous and of the next song are still preloaded, allowing you to quickly switch to one of these songs, but only the active song is connected to your system ports.

Right click a GUI element like the "Next" button or the document viewer's scrollbar. In the shown MIDI learn context menu choose "Learn MIDI CC". Move a control of a MIDI device connected to the control_gui-in port. This control will be assigned to the GUI element, allowing you to control Performer's GUI with your MIDI device.

performer's People

Contributors

progwolff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

fraugdib

performer's Issues

Project still active?

Hi there. I didn't know any way to contact you, so I thought I'd ask here.

With Ubuntu Studio transitioning to KDE Plasma, and with the KDE integration this application has, I figured it would be a perfect fit to be included in Ubuntu Studio. There are a number of people who use Ubuntu Studio professionally in both live and recorded performances, so something like this would be a perfect fit.

However, I noticed your last release is over 3 years old. Is this project abandoned? Reason for the question is that it's incredibly difficult to package an application and distribute it when there's no upstream support. When new versions of the underlying structure change (KDE Frameworks updates, Carla updates, etc.) bugs can get introduced.

My question is if you have any interest in updating this project further? To me, it seems like it has a lot of potential, and I'd rather not see something like this die. I'm not a programmer and have a lot on my plate already, so adopting a project like this is out of the question for me, but I wanted to see where you were at to gauge whether or not I should attempt packaging in Ubuntu.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.