Giter Site home page Giter Site logo

cadence's Introduction

--- 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:

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

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

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

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.

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.

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

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.

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).

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.

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.

cadence's People

Contributors

aekaisato avatar alextsits avatar clarking avatar dsonck92 avatar falktx avatar francescortiz avatar fsantini avatar gerion0 avatar jacalz avatar jawsper avatar markus-wa avatar net147 avatar oe1rsa avatar ratijas avatar simonvanderveldt avatar t-mw avatar terencode avatar trebmuh avatar

Stargazers

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

Watchers

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

cadence's Issues

request: remember which tab was open in config window

I basically never change the Engine settings, but I do change the Driver settings. It would be ideal to minimize the steps to access the Driver settings. As we discussed, perhaps the easiest is simply to remember that the last time I pressed "configure" I used that tab, so return to that next time.

Obviously this should be consistent whether getting to the configure window from Claudia or Cadence or elsewhere

cloning projects

it'd be convenient if there were a 'clone project' function within claudia itself that does that (right now the "save project as" function in claudia only saves a new ladish-project.xml, it doesn't clone the entire project). This would be useful for making project templates and such.

Is translation possible?

Hello, could I translate the cadence suite (in french) and how? Is it ok if I translate the UI files?

carla doesn't start when linked to liblinuxsampler.so.3 on Arch Linux

When built with linuxsampler present at build time on Arch, attempting to start carla yields:

Traceback (most recent call last):
  File "/usr/share/cadence/src/carla.py", line 2057, in <module>
    Carla.host = Host(libPrefix)
   File "/usr/share/cadence/src/carla_backend.py", line 809, in __init__
    self.lib = cdll.LoadLibrary(carla_library_path)
  File "/usr/lib/python3.3/ctypes/__init__.py", line 431, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.3/ctypes/__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: liblinuxsampler.so.3: cannot open shared object file: No such file or directory

even though linuxsampler is properly installed (/usr/lib/linuxsampler/liblinuxsampler.so.3 -> liblinuxsampler.so.3.0.0)

request: integrated scriptings

Some way to help users set up scripts so that loading a studio in Claudio could run scripts that might do things like turn off networking, set cpufreq governors, adjust desktop effects, or whatever else that would maximize the system for audio use. Some functions will vary depending on system and on users goals, so just a script-builder and automatic running of scripts along with studio.

turning off duplex mode not working right

I couldn't just uncheck duplex mode and then choose a device from the regular menu. It wouldn't engage. I couldn't get it to work until I turned duplex mode on again, then chose "none" for both duplex options. Even then, it failed if I then unchecked duplex. I had to leave duplex checked even with the "none" selected, then switch master, then I could go back and uncheck duplex and it works to ignore that.

If I do anything else, even entering none for duplex options but then unchecking duplex before doing switch master, it can appear that duplex is off, but actually the duplex settings are being used and the regular device choice is ignored.

[Feature request] Easier connection editing, and mass-connection editing, in Catia and Claudia

It'd be nice to be able to just click on output port and then click on input port to connect, instead of the current drag-release system. Would be significantly faster.

And something to make mass-connections easier would be quite nice. For instance, the user should be able to select many ports with Ctrl+Click, and then click another port to connect them all to that port.

Selecting ports by using the drag-box, as well as excluding a port from the selection with Ctrl+Click, would also be cool, and would make things faster.

Thanks!

Tray icons: popup inactive window when it is just hidden

Currently click to tray icon in such case results causes window to popup and instantly close, forcing to click icon again.

This bug affects all cadence tools using it: cadence itself, claudia, someone asked to have it for Jack Render.

Imho, click handler should detect, does window have focus. If not — just do what is expected.

Finally, to hide window ultimately — 2nd mouse button may be used.

XY Controller wish: absolute trackpad info vs relative

Don't know if this is possible, but ideally, a laptop trackpad could be mapped so that an absolute position on the trackpad corresponds to an absolute position in XY Controller. Currently, touching the trackpad moves relative to current cursor location.

Clearly there would need to be some keyboard command to enter and exit from this mode, although maybe it could just be automatic when using XY Controller

Obviously, future is more touch-screen but still…

PulseAudio start and bridging to Jack at login feature not working

Pulseaudio should auto start and bridge to Jack at login if the feature is enabled, however this does not happen. If PulseAudio is started manually using Cadence after Jack session auto starts, PulseAudio bridges to Jack and works correctly (ALSA Audio is set on ALSA -> PulseAudio -> JACK (Plugin)).

[Usability] handling the List of Audio Interfaces

Currently the list of audiointerfaces in the jack configuration has a few flaws:

No reloading:
The list seems static and only lists the interfaces that were present since boot, which means that adding or removing external devices like USB/Firewire devices will result in issues. When addin a Device, it won't show up in the List, when removing a device and Selecting it, it may result in a crash, when starting jack, since it's no longer physically present.

Scrambling of the Device List:
When new devices are added the whole list seems to get refreshed, this is a problem especially on my system, since cadence may select a invalid device as the default device (nvidia card in my case) and trys to start jack with a invalid configuration -> Crash/Lockup of Cadence.

I'd recommend the following features as a workaround:
Remeber the selected Device even if the List changes and do not launch jack automatically if this device is not present.
A function to refresh the device list.

Jack Render not connecting when using USB audio

I'm guessing this is a Jack Render backend issue and not a Cadence issue, but mentioning it here first anyway. When I render, connections are automatically made for my internal device, but not when I use my external USB interface.

Allow to set font for patch view

Last time i worked with a project in gladish, than started claudia. All objects look much bigger even without placing in/out ports widely.
Compare:
claudia-classic
gladish

Claudia: weird buttons on "add new" -window

When adding a new program, "Add New" -window has weird buttons: OK and Close. OK should close window and add program. "Close" should be "Cancel" and adding program without closing window should be done by double clicking program name. Current behaviour is unexpected.

linker error with glibc (on current arch linux testing)

On a current installation of Arch Linux (testing repo enabled), a simple make results in the following linker error:
(relevant part of build log excerpted)

g++ carla-discovery.cpp ../carla-lilv/carla_lilv.a -O2 -ffast-math -fomit-frame-pointer -mtune=generic -msse -mfpmath=sse -Wall -I../carla-backend -I../carla-includes -std=c++0x -march=native -mtune=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DQT_SHARED -I/usr/include/QtCore   -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM -DQT_NO_DEBUG_OUTPUT  -DVESTIGE_HEADER  -DBUILD_NATIVE   -DWANT_FLUIDSYNTH   -DWANT_LINUXSAMPLER -lQtCore   -Wl,-O1,--sort-common,--as-needed,-z,relro -lfluidsynth   -L/usr/lib/linuxsampler -llinuxsampler   -o carla-discovery-native && strip carla-discovery-native
g++ carla_bridge_toolkit-gtk2.cpp -O0 -g -std=c++0x -march=native -mtune=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I. -I../carla-includes -DQT_SHARED -I/usr/include/QtCore   -DBUILD_BRIDGE -DDEBUG -DVESTIGE_HEADER  -DBUILD_BRIDGE_UI -DBRIDGE_LV2 -DBRIDGE_LV2_GTK2 -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15   -c -o carla_bridge_toolkit-gtk2__lv2-gtk2.o
g++ carla_bridge_osc.cpp -O0 -g -std=c++0x -march=native -mtune=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I. -I../carla-includes -DQT_SHARED -I/usr/include/QtCore   -DBUILD_BRIDGE -DDEBUG -DVESTIGE_HEADER  -DBUILD_BRIDGE_UI -DBRIDGE_LV2 -DBRIDGE_LV2_GTK2 -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15   -c -o carla_bridge_osc__lv2-gtk2.o
g++ carla_bridge_ui-lv2.cpp -O0 -g -std=c++0x -march=native -mtune=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I. -I../carla-includes -DQT_SHARED -I/usr/include/QtCore   -DBUILD_BRIDGE -DDEBUG -DVESTIGE_HEADER  -DBUILD_BRIDGE_UI -DBRIDGE_LV2 -DBRIDGE_LV2_GTK3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng15   -c -o carla_bridge_ui-lv2__lv2-gtk3.o
g++ carla_bridge_toolkit-gtk3.cpp -O0 -g -std=c++0x -march=native -mtune=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I. -I../carla-includes -DQT_SHARED -I/usr/include/QtCore   -DBUILD_BRIDGE -DDEBUG -DVESTIGE_HEADER  -DBUILD_BRIDGE_UI -DBRIDGE_LV2 -DBRIDGE_LV2_GTK3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng15   -c -o carla_bridge_toolkit-gtk3__lv2-gtk3.o
g++ carla_bridge_osc.cpp -O0 -g -std=c++0x -march=native -mtune=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I. -I../carla-includes -DQT_SHARED -I/usr/include/QtCore   -DBUILD_BRIDGE -DDEBUG -DVESTIGE_HEADER  -DBUILD_BRIDGE_UI -DBRIDGE_LV2 -DBRIDGE_LV2_GTK3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng15   -c -o carla_bridge_osc__lv2-gtk3.o
g++ carla_bridge_ui-lv2.cpp -O0 -g -std=c++0x -march=native -mtune=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I. -I../carla-includes -DQT_SHARED -I/usr/include/QtCore   -DBUILD_BRIDGE -DDEBUG -DVESTIGE_HEADER  -DBUILD_BRIDGE_UI -DBRIDGE_LV2 -DBRIDGE_LV2_QT4 -DQT_SHARED -I/usr/include/QtGui -I/usr/include/QtCore   -c -o carla_bridge_ui-lv2__lv2-qt4.o
/usr/bin/ld: /tmp/cckeMTqx.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/bin/ld: note: 'dlclose@@GLIBC_2.2.5' is defined in DSO /usr/lib/libdl.so.2 so try adding it to the linker command line
/usr/lib/libdl.so.2: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[1]: *** [carla-discovery-native] Error 1
make[1]: Leaving directory `/var/abs/local/cadence-git/src/cadence-build/c++/carla-discovery'
make: *** [carla_discovery] Error 2

May have to do with Arch using version 2.16 of glibc?

KXStudio dark theme troubles

I just installed LibreOffice on my KXStudio install, and damn. The page background is BLACK and the text is white - and this was the other way round when I wrote it on another distro in LibreOffice. Changing background color does not fix it in a satisfactory way.

Also, as I write this issue in Firefox...this text (in the form) is coming up in an ultra light (unreadable) gray too. I thought it was only Facebook that had this issue (as it has done so earlier, on other distros as well), but apparently some other sites are affected too.

This is an Ubuntu Studio 12.04.1 + KXStudio (XFCE) system.

Thank you.

Jack Render: tray Icon

Render should have tray icon, that would show recording state and allow easy control: at least start/stop.

Change CPU-governors within Cadence

It would be nice to have a centralized way of changing the CPU-governors in KXstudio, that's regardless of DE used. For example Gnome has a good applet, KDE aswell I think, but XFCE don't have one.
Issues are it might require root, which then makes it a big no-no, but there should be a way around that really.

Jack Render without transport

Jack render tool should work also without transport and allow recording as long as needed. Just add checkbox next to "Time" section header. Un-checking that would grey the whole 'time' section.

'Time' and 'Encoding' sections could be swapped other way round: 'time' to the right. Then 'optional' functionality would be after 'mandatory'. I'm not really sure about this, though.

Too coarse detection of runing instance

For now it lists all processes in system and searches in their command lines for path to file cadence.py. This is too coarse and blocks using of cadence under several users (i'm using it to switch between alsa and dummy backends before to switch to another user).

For now i have one solution, which i hope, should be ultimate (unlike two previous, i proposed on irc channel).
Detection should be made by pid and command line, retreived from actual process properties by ps (assume, that it may change after start - hardest case, where it is still possible to have actual command line after). Command line is necessary for case, when cadence crashes due to unexpected reboot (or you do reboot after crash), and some new process later could get same pid.

Simple command "ps -o cmd " prints full command line of given process (updated this text due to formatting mess)

Carla linuxsampler and sustain controller

Hello

When I add a sfz file to carla, I connect it with my M Audio Keystation, it works greatly except the foot controller for sustain. It works correctly on Qsampler.

Adding an option to collapse clients.

The idea is that when you right-clik a client in Catia and select 'collapse', all ports of that client would collapse into one, making catia and workflow more comfortable when using apps with big amounts of ports (ardour, oom etc).

Cadence: abrupt JACK device removal issue

(copy/pasted from original LM forum posting)

THE PROBLEM

I am happily running Cadence on an external (in this case USB) sound device then someone (in this case evil danboid) removes said device without adjusting Cadence or thinking to switch device properly first.

RESULT

Cadence stops responding and doesn't let you switch to a new device like the onboard audio. Trying to start Cadence from the command line in this state says:

dan@dan-SR700:~$ cadence
Using Tray Engine 'Qt'
ERROR:dbus.proxies:Introspect error on :1.95:/org/jackaudio/Controller: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Traceback (most recent call last):
File "/usr/share/cadence/src/cadence.py", line 2296, in
gui = CadenceMainW()
File "/usr/share/cadence/src/cadence.py", line 1189, in init
self.DBusReconnect()
File "/usr/share/cadence/src/cadence.py", line 1211, in DBusReconnect
if gDBus.jack.IsStarted():
File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 70, in call
return self._proxy_method(_args, *_keywords)
File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 145, in call
**keywords)
File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

CURRENT SOLUTION

Kill Cadence, run 'cadence-session-start -s', reopen Cadence and all is well

DESIRED FIX

It would be nice if Cadence could detect when this has happened and restart the cadence session daemon automatically.

Claudia Patchbay only recognizes one instance of Jsampler/LinuxSampler

I downloaded Claudia 0.8, in the Cadence package, supplied by falkTX for my Ubuntu 12.04 system. When I'm running Jsampler 0.9, open up more than one Channel, and provide each one with its own inputs and outputs, the Patch bay only sees the first sampler. If I open up Patchage right next to it, I can see both channels with their own boxes with ins and outs. In other words, if I open a Piano sample in one channel and a Bass Guitar in another channel, I'll only see the Piano's box, where in Patchage, I would see a box for the Piano and a box for the Bass with their respective ins and outs for each.

Jack Render: mode should go under Transport section

While Use Transport is not checked, users should not be allowed to choose freewheel mode. So, the Realtime/Freewheel option should be inside the Use Transport section and should be greyed out when Use Transport isn't checked.

Jack Render: save settings

Jack Render should remember its settings in session. Now I have to change everything every time I want to do render of my project/session.

Maybe also some kind of settings saving function, that would allow creating recording templates (path, filename, format etc)?

Claudia: drag and drop programs

User should be able to drag and drop programs in left hand list to get them another order.
Maybe (inactive) and [L0] could be replaced with icons to save space and to give user session overview at a clance.

Make "ok" button in configure Jack Settings window just do switch master

  1. Make the OK button initiate switch master! Nobody is going to choose JACK Settings, click OK and not want those settings. Why not save a step and automatically do "switch master" in the background every time someone clicks OK to close the settings window?
  2. Like other windows, you could add an "Apply" button to do the same thing without closing the dialog. This would be like including the switch master button on the drivers tab, as we discussed, but even better or more clear.

This will be much easier for everyone, especially new folks, to understand, it will work in the standard way for these dialogs, and it will solve all the confusion people have about engaging JACK settings!

Fix detection of own processes, search only under other user.

For now it lists all processes in system and searches in their command lines for path to file cadence.py. This is too coarse and blocks using of cadence under several users (i'm using it to switch between alsa and dummy backends before to switch to another user).

For now i have one solution, which i hope, should be ultimate (unlike two previous, i proposed on irc channel).
Detection should be made by pid and command line, retreived from actual process properties by ps (assume, that it may change after start - hardest case, where it is still possible to have actual command line after). Command line is necessary for case, when cadence crashes due to unexpected reboot (or you do reboot after crash), and some new process later could get same pid.

Simple command "ps -o cmd " prints full command line of given process.

Jack Render: meterbridge support

Empty space top right could have meterbridge checkbox, that would open meterbridge window "always on top" -mode when recording. There could be also radio buttons for selecting meter type from two options. (Digital peak, analog VU).

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.