Collection of tools useful for audio production

Related tags

Audio Cadence
Overview

--- README for Cadence ---

Cadence is a set of tools useful for audio production.
It's being developed by falkTX, using Python3 and Qt5 (and some C++ where needed).

The tools share the same base source code, so most of them look quite similar (which is intentional).
Also, lots of custom widgets were coded when needed (like pixmapdial, pixmapkeyboard, patchcanvas and systray).
They can be re-used in other projects. Contact the author if you need help on that.

===== DESCRIPTIONS =====

Here's a brief description of the main tools:

Cadence

The main app. It performs system checks, manages JACK, calls other tools and make system tweaks.

Cadence-JackMeter

Digital peak meter for JACK.
It automatically connects itself to all application JACK output ports that are also connected to the system output.

Cadence-JackSettings

Simple and easy-to-use configure dialog for jackdbus.
It can configure JACK's driver and engine parameters, and it also supports LADISH studios.

Cadence-Logs

Small tool that shows JACK, A2J, LASH and LADISH logs in a multi-tab window.
The logs are viewed in a text box, making it easy to browse and extract status messages using copy and paste commands.

Cadence-Render

Tool to record (or 'render') a JACK project using jack-capture, controlled by JACK Transport.
It supports a vast number of file types and can render in both realtime and freewheel modes.

Cadence-XY Controller

Simple XY widget that sends and receives data from Jack MIDI.
It can send data through specific channels and has a MIDI Keyboard too.

Catarina

A Patchbay test app, created while the patchcanvas module was being developed.
It allows the user to experiment with the patchbay, without using ALSA, JACK or LADISH.
You can save & load patchbay configurations too.

Catia

JACK Patchbay, with some neat features like A2J bridge support and JACK Transport.
It's supposed to be as simple as possible (there's Claudia for advanced things), so it can work nicely on Windows and Mac too.
Currently has ALSA-MIDI support in experimental stage (it doesn't automatically refresh the canvas when changes happen externally).

Claudia

LADISH frontend; just like Catia, but focused at session management through LADISH.
It has a bit more features than the official LADISH GUI, with a nice preview of the main canvas in the bottom-left.
It also implements the 'Claudia-Launcher' add-application style for LADISH.

Claudia-Launcher

A multimedia application launcher with LADISH support.
It searches for installed packages (not binaries), and displays the respective content as a launcher.
The content is got through an hardcoded database, created and/or modified to suit the target distribution.
Currently supports Debian and ArchLinux based distros.

Issues
  • Unset executable bits & remove !#shebang

    Unset executable bits & remove !#shebang

    Patch 1/3

    I'm not an expert, but those XMLs do not look like any kind of normally executable scripts. And even if they were -- XML syntax does not allow shebangs, as far as standard1 is concerned.

    Patch 2/3

    Drop unused global var WINEASIO_PREFIX

    It was mis-formatted anyway. Looks like a copy-paste from wineasio which is broken in the exact same way1.

    1 https://github.com/wineasio/wineasio/blob/638ce56a7f872e8556b45949f7dfa734f4bd366c/gui/settings.py#L41

    Patch 3/3

    Unset executable bit & remove !#shebang

    Unset executable bit from all python sources upon installation, and remove shebang from all python modules w/o if __name__ == '__main__'.

    There are corresponding wrappers provided in the $(PREFIX)/bin/ for each python script (not ui_*.py), so there should be no need to call these source files directly as commands. Even those python sources which do not have a script in $(PREFIX)/bin/ -- they are just being imported into other modules, and their __name__ == '__main__' exists simply for debugging purposes.

    Also, restricting to only single valid entry point adheres to

    The Zen of Python

    There should be one-- and preferably only one --obvious way to do it.

    Fixes #240

    opened by ratijas 12
  • fix linux alsa card detection in jacksettings

    fix linux alsa card detection in jacksettings

    Wrong card/device detection under linux. I've rewrite JackSettingsW.getAlsaDeviceList to get more reliable information and split capture/playback device detection.

    opened by RushOnline 12
  • Use procfs to get list of ALSA PCM devices

    Use procfs to get list of ALSA PCM devices

    The device selection drop-down list in the JACK configuration dialog was always empty on my system.

    The reason is that JackSettingsW.getAlsaDeviceList() failed, because env LANG=C aplay -l on my system still returns German localized output (the correct command would be env LC_ALL=C aplay -l).

    But relying on an external command to get the list of ALSA PCM devices seems like a bad idea to me anyway, it is too fragile. Querying aplay also doesn't take into account that for the input device configuration we only want a list of capture devices.

    I implemented a Python module alsainfo, which reads the device info from /proc/asound/cards and /proc/asound/pcm and used this in getAlsaDeviceList(). The list is also filtered by device type (playback, capture) for the input and output selection lists.

    opened by SpotlightKid 9
  • In Cadence, if PyQt4 is not installed LV2_PATH is set to empty

    In Cadence, if PyQt4 is not installed LV2_PATH is set to empty

    I installed Cadence on fedora 21 64 bits from git repo. PyQt4 was not installed on my system. When I started qtractor, it was not able to locate LV2 plugins because LV2_PATH was set to empty at startup by the script data/21cadence-session-inject.

    The command "$INSTALL_PREFIX/bin/cadence-session-start --printLADSPA_PATH" in the script 21cadence-session-inject hangs with a message related to missing PyQt4 python package and then LV2_PATH is set to empty (and the same happens for the other environment variables).

    opened by ycollet 9
  • Cadence not displaying xruns properly

    Cadence not displaying xruns properly

    Instead of xruns displaying the actual xruns count, I am now getting dbus.UInt32(0). I'm not quite sure when this started, but I am running the latest cadence-git version from aur/Arch Linux and community/jack2. Kernel version: 5.2.21-rt13-1-rt

    opened by kflak 7
  • Cannot start Cadence, loadlocale.c related error

    Cannot start Cadence, loadlocale.c related error

    Hi Filipe, Yesterday I wanted to install the current Linux 64 version of Cadence (Cadence-0.8.1-linux64.tar.xz if you did not update it in the last 12 hours), but I got a locale error that looked very similar to https://github.com/falkTX/Carla/issues/623. Do you expect indeed the same error? It was late yesterday and I closed down the laptop before doing the bug report. If you do not expect the same error, I will check tonight when back to my Linux laptop what the error message exactly is and paste it here.

    opened by Spleenico 7
  • Add RPM based distro support to claudia_launcher

    Add RPM based distro support to claudia_launcher

    Provides the ability to use the built in application database on RPM based distributions like OpenSUSE and Fedora.

    Has been tested on OpenSUSE Leap 42.1 and OpenSUSE Tumbleweed

    opened by dsonck92 7
  • [bug] cadence-session-start

    [bug] cadence-session-start

    cadence-session-start does not work with parameter --maybe-system-start.

    line 23:

    if [ "$CADENCE_AUTO_STARTED"x == ""x ]; then
    

    should be:

    if [ "$CADENCE_AUTO_STARTED"x == "true"x ]; then
    
    opened by stemuedendron 7
  • Can't start JACK when switching to another user.

    Can't start JACK when switching to another user.

    Ubuntu Studio 18.04.4 - Cadence

    It seems that Jack doesn't stop when I disconnect from an user. I can't start jack in another user because the sound card is unavailable. I disconnect from 'user A' with jack server started, and then I connect to 'user B' and try to start jack via Cadence. Here's the log :

    Fri Feb  7 10:15:15 2020: Starting jack server...
    Fri Feb  7 10:15:15 2020: JACK server starting in realtime mode with priority 10
    Fri Feb  7 10:15:15 2020: self-connect-mode is "Don't restrict self connect requests"
    Fri Feb  7 10:15:15 2020: ERROR: cannot open DB environment: Permission denied
    Fri Feb  7 10:15:15 2020: Acquired audio card Audio0
    Fri Feb  7 10:15:15 2020: creating alsa driver ... hw:PCH,0|hw:PCH,0|512|2|44100|0|0|nomon|swmeter|-|32bit
    Fri Feb  7 10:15:15 2020: ERROR: 
    
    ATTENTION: The playback device "hw:PCH,0" is already in use. Please stop the application using it and run JACK again
    Fri Feb  7 10:15:15 2020: Released audio card Audio0
    Fri Feb  7 10:15:15 2020: ERROR: Cannot initialize driver
    Fri Feb  7 10:15:15 2020: ERROR: JackServer::Open failed with -1
    Fri Feb  7 10:15:15 2020: ERROR: Failed to open server
    
    opened by moonshaadow 6
  • Refine #256

    Refine #256

    • ~~Disable 'Export HW port' when JACK is not running~~
    • Fix 'Export HW port' tray option not working and incorrect state
    • Disable 'Export HW port' when ports are already exported and notify it with the button text
    • Do not start A2JMIDI after exporting ports
    • Stop A2JMIDI before stopping JACK

    ~~Reasoning:~~

    • ~~It doesn't make sense to only export ports while not starting A2J: Either you don't want to export the ports at all if for example your soundcard crashes A2J when exporting its ports, or you want your ports exported which means it starts A2J as well.~~
    • ~~If you plug a new hw, just export hw ports again and it will stop/start A2J if needed~~.
    opened by terencode 6
  • Port to Qt5

    Port to Qt5

    Qt4 is no longer supported and does not even receive security fixes. Do you have plans to port Cadence to Qt5? If not, would you be willing to accept patches that ported Cadence to Qt5?

    opened by rekado 5
  • setMinimumSize : unexpected type 'float'

    setMinimumSize : unexpected type 'float'

    Hi. With the last versions of Claudia and Ubuntu 22 TLS, I get this error when lauching Claudia :

    [email protected]:~$ claudia
    Using Tray Engine 'Qt'
    Traceback (most recent call last):
      File "/usr/share/cadence/src/claudia.py", line 2768, in <module>
        gui = ClaudiaMainW()
      File "/usr/share/cadence/src/claudia.py", line 786, in __init__
        self.ui.miniCanvasPreview.init(self.scene, DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT)
      File "/usr/share/cadence/src/canvaspreviewframe.py", line 76, in init
        self.setMinimumSize(self.fFakeWidth+padding,   self.fFakeHeight+padding)
    TypeError: arguments did not match any overloaded call:
      setMinimumSize(self, int, int): argument 1 has unexpected type 'float'
      setMinimumSize(self, QSize): argument 1 has unexpected type 'float'
    
    opened by AnasGhrab 6
  • Provide option to not automatically connect the pulseaudio sink with system

    Provide option to not automatically connect the pulseaudio sink with system

    So that I can have my equalizer inbetween.

    image

    The collection between pulseaudio JACK Sink and system is added automatically each time.

    But as far as I can tell I can't even load stuff into carla automatically on login, so it probably doesn't actually matter. I was hoping to be able to load my room calibration parameters automatically, since pulseeffects causes clicking nosies.

    opened by sezanzeb 0
  • Claudia won't start - complains DBUS is missing

    Claudia won't start - complains DBUS is missing

    Launching Claudia from either the Cadence panel or from terminal produces an error message

    "DBus is not available, Claudia cannot start without it!"

    But DBus is installed, as far as I can tell:

    [email protected]  $ pacman -Qs dbus
    local/bluez-qt 5.90.0-1 (kf5)
        Qt wrapper for Bluez 5 DBus API
    local/dbus 1.12.20-1
        Freedesktop.org message bus system
    local/dbus-c++ 0.9.0-9
        A C++ API for D-BUS
    local/dbus-glib 0.112-2
        GLib bindings for DBUS
    local/jack2-dbus 1.9.19-2
        The JACK low-latency audio server (dbus integration)
    local/kdbusaddons 5.90.0-1 (kf5)
        Addons to QtDBus
    local/lib32-dbus 1.12.20-1
        Freedesktop.org message bus system (32-bit)
    local/lib32-libdbusmenu-glib 16.04.0-4
        Library for passing menus over DBus (32-bit)
    local/lib32-libdbusmenu-gtk2 16.04.0-4
        Library for passing menus over DBus (32-bit) (GTK+ 2 library)
    local/libcloudproviders 0.3.1-2
        DBus API that allows cloud storage sync clients to expose their services
    local/libdbusmenu-glib 16.04.0-4
        Library for passing menus over DBus
    local/libdbusmenu-gtk2 16.04.0-4
        Library for passing menus over DBus (GTK+ 2 library)
    local/libdbusmenu-gtk3 16.04.0-4
        Library for passing menus over DBus (GTK+ 3 library)
    local/libdbusmenu-qt4 0.9.3+16.04.20160218-2
        A library that provides a Qt4 implementation of the DBusMenu spec
    local/libdbusmenu-qt5 0.9.3+16.04.20160218-6
        A library that provides a Qt implementation of the DBusMenu spec
    local/libmm-qt 1.0.1-2
        Qt-only wrapper for ModemManager DBus API
    local/libnm-qt4 0.9.8.4-1
        Qt4-only wrapper for NetworkManager DBus API
    local/modemmanager-qt 5.90.0-1 (kf5)
        Qt wrapper for ModemManager DBus API
    local/python-dbus 1.2.16-3
        Python bindings for DBUS
    local/python-dbus-common 1.2.16-3
        Common dbus-python files shared between python-dbus and python2-dbus
    local/python-jeepney 0.7.1-3
        Low-level, pure Python DBus protocol wrapper
    local/python2-dbus 1.2.16-3
        Python2 bindings for DBUS
    local/xdg-dbus-proxy 0.1.2-3
    

    What else am I missing?

    opened by cleinias 2
  • Question/Feature Request: Sync master volume between PulseAudio server & JACK server while using bridge

    Question/Feature Request: Sync master volume between PulseAudio server & JACK server while using bridge

    Using the ALSA backend with JACK & the PulseAudio bridge, is there a way to mix JACK's master volume to match that of PulseAudio's? Currently, this is the only thing stopping the JACK/Pulse experience from being completely seamless for me. I'd like to be able to use my DE's PulseAudio applet to control the volume of the entire audio stack, because that's how it worked for me when I was only using Pulse.

    opened by EwanGreen4 0
Releases(v0.9.2)
  • v0.9.2(Jun 18, 2022)

    Change systray tooltip from HTML to plaintext Fallback to GLib DBus if Qt DBus is not available Fix build with Qt 5.15+ Fix compatibility with Python 3.10

    Source code(tar.gz)
    Source code(zip)
  • v0.9.1(Dec 4, 2019)

    Fix DBus casting issues triggered in Python 3.8 Fix ALSA capture device list on Linux Add RPM-based distribution support to Claudia-Launcher Don't set SSE flags in the Makefile Simplify UI regarding ALSA-MIDI bridge Other small miscellaneous fixes

    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Apr 2, 2018)

Owner
Filipe Coelho
Filipe Coelho
PortAudio is a portable audio I/O library designed for cross-platform support of audio

PortAudio is a cross-platform, open-source C language library for real-time audio input and output.

PortAudio 668 Aug 2, 2022
Strawberry is a music player and music collection organizer.

Strawberry is a music player and music collection organizer. It is a fork of Clementine released in 2018 aimed at music collectors and audiophiles. It's written in C++ using the Qt toolkit.

Strawberry Music Player 1.6k Aug 10, 2022
A simple C++ library for reading and writing audio files.

AudioFile A simple header-only C++ library for reading and writing audio files. Current supported formats: WAV AIFF Author AudioFile is written and ma

Adam Stark 615 Aug 2, 2022
A C library for reading and writing sound files containing sampled audio data.

libsndfile libsndfile is a C library for reading and writing files containing sampled audio data. Authors The libsndfile project was originally develo

null 1k Aug 4, 2022
C library for cross-platform real-time audio input and output

libsoundio C library providing cross-platform audio input and output. The API is suitable for real-time software such as digital audio workstations as

Andrew Kelley 1.6k Aug 7, 2022
C++ Audio and Music DSP Library

_____ _____ ___ __ _ _____ __ __ __ ____ ____ / \\_ \\ \/ / |/ \| | | | \_ \/ \ | Y Y \/ /_ \> <| | Y Y \ | |_|

Mick Grierson 1.3k Aug 3, 2022
Single file audio playback and capture library written in C.

A single file library for audio playback and capture. Example - Documentation - Supported Platforms - Backends - Major Features - Building - Unofficia

David Reid 2.4k Aug 10, 2022
SimplE Lossless Audio

SELA SimplE Lossless Audio A lossless audio codec which aims to be as simple as possible while still having good enough compression ratios. Code Quali

Ratul Saha 206 May 11, 2022
Easy and efficient audio synthesis in C++

Tonic Fast and easy audio synthesis in C++. Prefer coding to patching? Love clean syntax? Care about performance? That's how we feel too, and why we m

null 466 Aug 9, 2022
An audio mixer that supports various file formats for Simple Directmedia Layer.

An audio mixer that supports various file formats for Simple Directmedia Layer.

Simple Directmedia Layer 143 Aug 9, 2022
Explore fractals in an audio-visual sandbox

Fractal Sound Explorer Explore fractals in an audio-visual sandbox Download executable on my itch.io page: https://codeparade.itch.io/fractal-sound-ex

null 945 Aug 5, 2022
Audio out with an FTDI UART cable

Audio out with an FTDI UART cable This encodes audio as either PDM (using a first order sigma-delta stage), 32-bits PWM or 64-bits PWM and sends it as

Konrad Beckmann 42 Jun 23, 2022
Sexy, audio-responsive effects on LED strips.

Striptease Sexy, audio-responsive effects on LED strips. For Teensy 4 with Audio Adapter Board, by PJRC. Quick demo Shooting video of LEDs is very tri

Luca Paolini 35 Jun 19, 2022
audio monitor filter for OBS Studio

Audio Monitor dock and filter for OBS Studio Plugin for OBS Studio to add Audio Monitor dock and filter. It allows you to put the audio of a OBS sourc

Exeldro 187 Jul 30, 2022
Lightweight Embedded Audio Framework

LEAF (Lightweight Embedded Audio Framework) is a C library for audio synthesis and processing created by Jeff Snyder, Mike Mulshine, and Matt Wang at Princeton University's New Instrument Research Lab. It was originally called OOPS when we started writing it in 2017, so you may see references to it under that name as well.

Jeff Snyder 103 Jul 26, 2022
An Audio Steganography Tool, written in C++

HiddenWave Hide your personal Data inside The Audio wav file Written in C++ by Gaurav Raj [TheHackersBrain] Hiddenwave is an audio steganography tool

Gaurav Raj 48 Jun 20, 2022
C++ audio time-stretching implementation

Time Stretcher C++ audio time-stretching implementation, based on the algorithms presented in: Audio Time Stretching with an Adaptive Phase Vocoder, N

null 46 Jul 30, 2022
Block all ads in vídeo, áudio, banner, anti-skip

NoAdSpotify Block spotify ad This is an updated and simplified version of the project: BlockTheSpot Last updated: 6th June 2021 Last tested version: 1

null 13 Apr 7, 2022