Browse Source

Update script names and aloop-daemon code

tags/v0.9.0
falkTX 10 years ago
parent
commit
bd9f4c043a
13 changed files with 150 additions and 214 deletions
  1. +6
    -2
      .gitignore
  2. +12
    -11
      Makefile
  3. +7
    -7
      c++/carla-backend/carla_backend.h
  4. +3
    -3
      c++/jackmeter/Makefile
  5. +3
    -3
      c++/xycontroller/Makefile
  6. +10
    -0
      data/cadence-aloop-daemon
  7. +0
    -0
      data/cadence-jacksettings
  8. +0
    -0
      data/cadence-logs
  9. +0
    -0
      data/cadence-pulse2jack
  10. +0
    -0
      data/cadence-render
  11. +0
    -181
      src/cadence-aloop-daemon
  12. +7
    -7
      src/cadence.py
  13. +102
    -0
      src/cadence_aloop_daemon.py

+ 6
- 2
.gitignore 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

+ 12
- 11
Makefile 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 \


+ 7
- 7
c++/carla-backend/carla_backend.h 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),


+ 3
- 3
c++/jackmeter/Makefile 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 $@

# --------------------------------------------------------------


+ 3
- 3
c++/xycontroller/Makefile 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
- 0
data/cadence-aloop-daemon 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 "$@"

data/cadence_jacksettings → data/cadence-jacksettings View File


data/cadence_logs → data/cadence-logs View File


data/cadence_pulse2jack → data/cadence-pulse2jack View File


data/cadence_render → data/cadence-render View File


+ 0
- 181
src/cadence-aloop-daemon 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)

+ 7
- 7
src/cadence.py 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
- 0
src/cadence_aloop_daemon.py 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)

Loading…
Cancel
Save