Update script names and aloop-daemon code

This commit is contained in:
falkTX 2012-09-09 11:49:36 +01:00
parent 147833d8ae
commit bd9f4c043a
13 changed files with 150 additions and 214 deletions

8
.gitignore vendored
View File

@ -36,11 +36,12 @@ carla-discovery-native
carla-discovery-posix32
carla-discovery-posix64
c++/jackmeter/cadence-jackmeter
c++/xycontroller/cadence-xycontroller
c++/carla-backend/doxygen/
c++/carla-bridge/doxygen/
c++/carla-includes/vst/
c++/jackmeter/cadence_jackmeter
c++/xycontroller/cadence_xycontroller
*-build-*Debug/
*-build-*Release/
@ -57,5 +58,8 @@ c++/carla-backend/carla-dynamic.lv2/
c++/carla-backend/carla_backend_lv2.cpp
c++/carla-backend/carla_backend_vst.cpp
c++/carla-bridge/qt-plugin/
c++/carla-bridge/qtcreator/Makefile
c++/carla-jackbridge/jack
c++/flmixer/
c++/widgets/ledbutton.*
src/ui/carla_driver.ui

View File

@ -230,10 +230,11 @@ install:
# Install script files and binaries
install -m 755 \
data/cadence \
data/cadence_jacksettings \
data/cadence_logs \
data/cadence_pulse2jack \
data/cadence_render \
data/cadence-aloop-daemon \
data/cadence-jacksettings \
data/cadence-logs \
data/cadence-pulse2jack \
data/cadence-render \
data/catarina \
data/catia \
data/claudia \
@ -242,9 +243,8 @@ install:
data/carla-control \
c++/carla-bridge/carla-bridge-* \
c++/carla-discovery/carla-discovery-* \
c++/jackmeter/cadence_jackmeter \
c++/xycontroller/cadence_xycontroller \
src/cadence-aloop-daemon \
c++/jackmeter/cadence-jackmeter \
c++/xycontroller/cadence-xycontroller \
$(DESTDIR)$(PREFIX)/bin/
# Install desktop files
@ -307,10 +307,11 @@ install:
# Adjust PREFIX value in script files
sed -i "s/X-PREFIX-X/$(SED_PREFIX)/" \
$(DESTDIR)$(PREFIX)/bin/cadence \
$(DESTDIR)$(PREFIX)/bin/cadence_jacksettings \
$(DESTDIR)$(PREFIX)/bin/cadence_logs \
$(DESTDIR)$(PREFIX)/bin/cadence_pulse2jack \
$(DESTDIR)$(PREFIX)/bin/cadence_render \
$(DESTDIR)$(PREFIX)/bin/cadence-aloop-daemon \
$(DESTDIR)$(PREFIX)/bin/cadence-jacksettings \
$(DESTDIR)$(PREFIX)/bin/cadence-logs \
$(DESTDIR)$(PREFIX)/bin/cadence-pulse2jack \
$(DESTDIR)$(PREFIX)/bin/cadence-render \
$(DESTDIR)$(PREFIX)/bin/catarina \
$(DESTDIR)$(PREFIX)/bin/catia \
$(DESTDIR)$(PREFIX)/bin/claudia \

View File

@ -474,8 +474,8 @@ enum ProcessModeType {
typedef void (*CallbackFunc)(void* ptr, CallbackType action, unsigned short pluginId, int value1, int value2, double value3);
struct midi_program_t {
quint32 bank;
quint32 program;
uint32_t bank;
uint32_t program;
const char* name;
midi_program_t()
@ -486,11 +486,11 @@ struct midi_program_t {
struct ParameterData {
ParameterType type;
qint32 index;
qint32 rindex;
qint32 hints;
quint8 midiChannel;
qint16 midiCC;
int32_t index;
int32_t rindex;
int32_t hints;
uint8_t midiChannel;
int16_t midiCC;
ParameterData()
: type(PARAMETER_UNKNOWN),

View File

@ -25,12 +25,12 @@ OBJS = jackmeter.o \
# --------------------------------------------------------------
all: cadence_jackmeter
all: cadence-jackmeter
cadence_jackmeter: $(OBJS)
cadence-jackmeter: $(OBJS)
$(CXX) $^ $(LINK_FLAGS) -o $@ && strip $@
cadence_jackmeter.exe: $(OBJS)
cadence-jackmeter.exe: $(OBJS)
$(CXX) $^ -static -mwindows $(LINK_FLAGS) -o $@ && strip $@
# --------------------------------------------------------------

View File

@ -38,12 +38,12 @@ OBJS = xycontroller.o \
# --------------------------------------------------------------
all: cadence_xycontroller
all: cadence-xycontroller
cadence_xycontroller: $(FILES) $(OBJS)
cadence-xycontroller: $(FILES) $(OBJS)
$(CXX) $(OBJS) $(LINK_FLAGS) -o $@ && strip $@
cadence_xycontroller.exe: $(FILES) $(OBJS) icon.o
cadence-xycontroller.exe: $(FILES) $(OBJS) icon.o
$(CXX) $(OBJS) icon.o -static -mwindows $(LINK_FLAGS) -o $@ && strip $@
# --------------------------------------------------------------

10
data/cadence-aloop-daemon Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f /usr/bin/python3 ]; then
PYTHON=/usr/bin/python3
else
PYTHON=python
fi
INSTALL_PREFIX="X-PREFIX-X"
exec $PYTHON $INSTALL_PREFIX/share/cadence/src/cadence_aloop_daemon.py "$@"

View File

@ -1,181 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Imports (Global)
from ctypes import *
from os import system
from sys import version_info
from signal import signal, SIGINT, SIGTERM
from time import sleep
# --------------------------------------------------
# Test for python 3.x
if (version_info >= (3,0)):
PYTHON3 = True
else:
PYTHON3 = False
# --------------------------------------------------
# Global loop check
global doLoop, doRunNow
doLoop = True
doRunNow = True
# --------------------------------------------------
# Global JACK variables
global sample_rate, buffer_size
sample_rate = 44100
buffer_size = 1024
# --------------------------------------------------
# JACK ctypes implementation
jacklib = cdll.LoadLibrary("libjack.so.0")
class jack_client_t(Structure):
_fields_ = []
jack_nframes_t = c_uint32
JackBufferSizeCallback = CFUNCTYPE(c_int, jack_nframes_t, c_void_p)
JackShutdownCallback = CFUNCTYPE(None, c_void_p)
jacklib.jack_client_open.argtypes = [c_char_p, c_int, POINTER(c_int)]
jacklib.jack_client_open.restype = POINTER(jack_client_t)
jacklib.jack_client_close.argtypes = [POINTER(jack_client_t)]
jacklib.jack_client_close.restype = c_int
jacklib.jack_activate.argtypes = [POINTER(jack_client_t)]
jacklib.jack_activate.restype = c_int
jacklib.jack_deactivate.argtypes = [POINTER(jack_client_t)]
jacklib.jack_deactivate.restype = c_int
jacklib.jack_connect.argtypes = [POINTER(jack_client_t), c_char_p, c_char_p]
jacklib.jack_connect.restype = c_int
jacklib.jack_get_sample_rate.argtypes = [POINTER(jack_client_t)]
jacklib.jack_get_sample_rate.restype = jack_nframes_t
jacklib.jack_get_buffer_size.argtypes = [POINTER(jack_client_t)]
jacklib.jack_get_buffer_size.restype = jack_nframes_t
jacklib.jack_on_shutdown.argtypes = [POINTER(jack_client_t), JackShutdownCallback, c_void_p]
jacklib.jack_on_shutdown.restype = None
jacklib.jack_set_buffer_size_callback.argtypes = [POINTER(jack_client_t), JackBufferSizeCallback, c_void_p]
jacklib.jack_set_buffer_size_callback.restype = c_int
def jack_client_open(client_name, options, status):
if (PYTHON3): client_name = client_name.encode("ascii")
return jacklib.jack_client_open(client_name, options, status)
def jack_client_close(client):
return jacklib.jack_client_close(client)
def jack_activate(client):
return jacklib.jack_activate(client)
def jack_deactivate(client):
return jacklib.jack_deactivate(client)
def jack_connect(client, source_port, destination_port):
if (PYTHON3): source_port = source_port.encode("ascii")
if (PYTHON3): destination_port = destination_port.encode("ascii")
return jacklib.jack_connect(client, source_port, destination_port)
def jack_get_sample_rate(client):
return jacklib.jack_get_sample_rate(client)
def jack_get_buffer_size(client):
return jacklib.jack_get_buffer_size(client)
def jack_on_shutdown(client, shutdown_callback, arg):
global _shutdown_callback
_shutdown_callback = JackShutdownCallback(shutdown_callback)
jacklib.jack_on_shutdown(client, _shutdown_callback, arg)
def jack_set_buffer_size_callback(client, bufsize_callback, arg):
global _bufsize_callback
_bufsize_callback = JackBufferSizeCallback(bufsize_callback)
return jacklib.jack_set_buffer_size_callback(client, _bufsize_callback, arg)
# --------------------------------------------------
# quit on SIGINT or SIGTERM
def signal_handler(sig, frame=0):
global doLoop
doLoop = False
# --------------------------------------------------
# listen to jack buffer size changes
def buffer_size_callback(new_buffer_size, arg):
global doRunNow, buffer_size
buffer_size = new_buffer_size
doRunNow = True
return 0
# --------------------------------------------------
# listen to jack shutdown
def shutdown_callback(arg):
global doLoop
doLoop = False
# --------------------------------------------------
# run alsa_in and alsa_out
def run_alsa_bridge():
global sample_rate, buffer_size
system("killall alsa_in alsa_out zita-a2j zita-j2a pulseaudio")
#if (False):
system("env JACK_SAMPLE_RATE=%i JACK_PERIOD_SIZE=%i alsa_in -j alsa2jack -d cloop -q 1 2>&1 1> /dev/null &" % (sample_rate, buffer_size))
system("env JACK_SAMPLE_RATE=%i JACK_PERIOD_SIZE=%i alsa_out -j jack2alsa -d ploop -q 1 2>&1 1> /dev/null &" % (sample_rate, buffer_size))
#else:
#system("env JACK_SAMPLE_RATE=%i JACK_PERIOD_SIZE=%i zita-a2j -j alsa2jack -d hw:Loopback,1,0 -r 44100 &" % (sample_rate, buffer_size))
#system("env JACK_SAMPLE_RATE=%i JACK_PERIOD_SIZE=%i zita-j2a -j jack2alsa -d hw:Loopback,1,1 -r 44100 &" % (sample_rate, buffer_size))
# Pause it for a bit, and connect to the system ports
sleep(1)
jack_connect(client, "alsa2jack:capture_1", "system:playback_1")
jack_connect(client, "alsa2jack:capture_2", "system:playback_2")
jack_connect(client, "system:capture_1", "jack2alsa:playback_1")
jack_connect(client, "system:capture_2", "jack2alsa:playback_2")
#--------------- main ------------------
if __name__ == '__main__':
# Init JACK client
client = jack_client_open("jack-aloop-daemon", 0, None)
if (not client):
quit()
jack_set_buffer_size_callback(client, buffer_size_callback, None)
jack_on_shutdown(client, shutdown_callback, None)
jack_activate(client)
# Quit when requested
signal(SIGINT, signal_handler)
signal(SIGTERM, signal_handler)
# Get initial values
sample_rate = jack_get_sample_rate(client)
buffer_size = jack_get_buffer_size(client)
# Keep running until told otherwise
while (doLoop):
if (doRunNow):
doRunNow = False
run_alsa_bridge()
sleep(1)
# Close JACK client
jack_deactivate(client)
jack_client_close(client)

View File

@ -616,16 +616,16 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW):
self.connect(self.act_tools_catia, SIGNAL("triggered()"), lambda tool="catia": self.func_start_tool(tool))
self.connect(self.act_tools_claudia, SIGNAL("triggered()"), lambda tool="claudia": self.func_start_tool(tool))
self.connect(self.act_tools_carla, SIGNAL("triggered()"), lambda tool="carla": self.func_start_tool(tool))
self.connect(self.act_tools_logs, SIGNAL("triggered()"), lambda tool="cadence_logs": self.func_start_tool(tool))
self.connect(self.act_tools_meter, SIGNAL("triggered()"), lambda tool="cadence_jackmeter": self.func_start_tool(tool))
self.connect(self.act_tools_render, SIGNAL("triggered()"), lambda tool="cadence_render": self.func_start_tool(tool))
self.connect(self.act_tools_xycontroller, SIGNAL("triggered()"), lambda tool="cadence_xycontroller": self.func_start_tool(tool))
self.connect(self.act_tools_logs, SIGNAL("triggered()"), lambda tool="cadence-logs": self.func_start_tool(tool))
self.connect(self.act_tools_meter, SIGNAL("triggered()"), lambda tool="cadence-jackmeter": self.func_start_tool(tool))
self.connect(self.act_tools_render, SIGNAL("triggered()"), lambda tool="cadence-render": self.func_start_tool(tool))
self.connect(self.act_tools_xycontroller, SIGNAL("triggered()"), lambda tool="cadence-xycontroller": self.func_start_tool(tool))
self.connect(self.pic_catia, SIGNAL("clicked()"), lambda tool="catia": self.func_start_tool(tool))
self.connect(self.pic_claudia, SIGNAL("clicked()"), lambda tool="claudia": self.func_start_tool(tool))
self.connect(self.pic_carla, SIGNAL("clicked()"), lambda tool="carla": self.func_start_tool(tool))
self.connect(self.pic_logs, SIGNAL("clicked()"), lambda tool="cadence_logs": self.func_start_tool(tool))
self.connect(self.pic_render, SIGNAL("clicked()"), lambda tool="cadence_render": self.func_start_tool(tool))
self.connect(self.pic_xycontroller, SIGNAL("clicked()"), lambda tool="cadence_xycontroller": self.func_start_tool(tool))
self.connect(self.pic_logs, SIGNAL("clicked()"), lambda tool="cadence-logs": self.func_start_tool(tool))
self.connect(self.pic_render, SIGNAL("clicked()"), lambda tool="cadence-render": self.func_start_tool(tool))
self.connect(self.pic_xycontroller, SIGNAL("clicked()"), lambda tool="cadence-xycontroller": self.func_start_tool(tool))
self.connect(self.b_tweaks_apply_now, SIGNAL("clicked()"), SLOT("slot_tweaksApply()"))

102
src/cadence_aloop_daemon.py Executable file
View File

@ -0,0 +1,102 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Imports (Global)
from ctypes import *
from os import system
from sys import version_info
from signal import signal, SIGINT, SIGTERM
from time import sleep
# Imports (Custom Stuff)
import jacklib
# --------------------------------------------------
# Global loop check
global doLoop, doRunNow
doLoop = True
doRunNow = True
# --------------------------------------------------
# Global JACK variables
global bufferSize, sampleRate
bufferSize = 1024
sampleRate = 44100
# --------------------------------------------------
# quit on SIGINT or SIGTERM
def signal_handler(sig, frame=0):
global doLoop
doLoop = False
# --------------------------------------------------
# listen to jack buffer size changes
def buffer_size_callback(newBufferSize, arg):
global doRunNow, bufferSize
bufferSize = newBufferSize
doRunNow = True
return 0
# --------------------------------------------------
# listen to jack shutdown
def shutdown_callback(arg):
global doLoop
doLoop = False
# --------------------------------------------------
# run alsa_in and alsa_out
def run_alsa_bridge():
global sample_rate, buffer_size
system("killall alsa_in alsa_out zita-a2j zita-j2a pulseaudio")
#if (False):
system("env JACK_SAMPLE_RATE=%i JACK_PERIOD_SIZE=%i alsa_in -j alsa2jack -d cloop -q 1 2>&1 1> /dev/null &" % (sampleRate, bufferSize))
system("env JACK_SAMPLE_RATE=%i JACK_PERIOD_SIZE=%i alsa_out -j jack2alsa -d ploop -q 1 2>&1 1> /dev/null &" % (sampleRate, bufferSize))
#else:
#system("env JACK_SAMPLE_RATE=%i JACK_PERIOD_SIZE=%i zita-a2j -j alsa2jack -d hw:Loopback,1,0 -r 44100 &" % (sample_rate, buffer_size))
#system("env JACK_SAMPLE_RATE=%i JACK_PERIOD_SIZE=%i zita-j2a -j jack2alsa -d hw:Loopback,1,1 -r 44100 &" % (sample_rate, buffer_size))
# Pause it for a bit, and connect to the system ports
sleep(1)
jacklib.connect(client, "alsa2jack:capture_1", "system:playback_1")
jacklib.connect(client, "alsa2jack:capture_2", "system:playback_2")
jacklib.connect(client, "system:capture_1", "jack2alsa:playback_1")
jacklib.connect(client, "system:capture_2", "jack2alsa:playback_2")
#--------------- main ------------------
if __name__ == '__main__':
# Init JACK client
client = jacklib.client_open("jack-aloop-daemon", 0, None)
if not client:
quit()
jacklib.set_buffer_size_callback(client, buffer_size_callback, None)
jacklib.on_shutdown(client, shutdown_callback, None)
jacklib.activate(client)
# Quit when requested
signal(SIGINT, signal_handler)
signal(SIGTERM, signal_handler)
# Get initial values
sampleRate = jacklib.get_sample_rate(client)
bufferSize = jacklib.get_buffer_size(client)
# Keep running until told otherwise
while doLoop:
if doRunNow:
doRunNow = False
run_alsa_bridge()
sleep(1)
# Close JACK client
jacklib.deactivate(client)
jacklib.client_close(client)