Rename Luppp to Loopp

main
Georg Krause 2019-06-09 10:41:19 +02:00
parent a748de09ed
commit e592d5dea4
86 changed files with 499 additions and 499 deletions

4
.gitignore vendored
View File

@ -2,7 +2,7 @@
planning/*
src/*.o
luppp
loopp
*.zip
*.orig
@ -14,7 +14,7 @@ buildTest/*
/doc
/Makefile
/src/cmake_install.cmake
/src/liblibluppp.a
/src/liblibloopp.a
/src/Makefile
CMakeFiles/*
src/CMakeFiles/*

View File

@ -51,7 +51,7 @@ test:
- build-test
script:
- ninja -C buildDir test
- gcovr -b -e buildDir/luppp@exe/catch.hpp -e buildDir/luppp@exe/test_ <&1 | tee buildDir/coverage.txt
- gcovr -b -e buildDir/loopp@exe/catch.hpp -e buildDir/loopp@exe/test_ <&1 | tee buildDir/coverage.txt
artifacts:
paths:
- buildDir/coverage.txt
@ -74,4 +74,4 @@ package-AppImage:
untracked: false
expire_in: 30 days
paths:
- Luppp-*.AppImage*
- Loopp-*.AppImage*

View File

@ -38,7 +38,7 @@ script:
- ./linuxdeployqt-continuous-x86_64.AppImage build/appdir/usr/share/applications/*.desktop -appimage
after_success:
- wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
- bash upload.sh Luppp*.AppImage*
- bash upload.sh Loopp*.AppImage*
branches:
except:
#- Do not build tags that we create when we upload to GitHub Releases

View File

@ -15,7 +15,7 @@
## Features:
* Print version number with `luppp --version`
* Print version number with `loopp --version`
## Improvements:
@ -69,7 +69,7 @@
# 1.1: Saturday 24th December 2016
## Features:
* Added saveDirectory option to set the save dir for Luppp sessions
* Added saveDirectory option to set the save dir for Loopp sessions
* Added possibility to enable metronom on startup and set volume
* Added possibility to save clips
* Added per track outputs

View File

@ -1,13 +1,13 @@
cmake_minimum_required (VERSION 2.6)
project (LUPPP)
project (LOOPP)
set(LUPPP_VERSION_MAJOR "1")
set(LUPPP_VERSION_MINOR "2")
set(LUPPP_VERSION_PATCH "0")
set(LOOPP_VERSION_MAJOR "1")
set(LOOPP_VERSION_MINOR "2")
set(LOOPP_VERSION_PATCH "0")
set(LUPPP_VERSION "${LUPPP_VERSION_MAJOR}.${LUPPP_VERSION_MINOR}.${LUPPP_VERSION_PATCH}")
set(LOOPP_VERSION "${LOOPP_VERSION_MAJOR}.${LOOPP_VERSION_MINOR}.${LOOPP_VERSION_PATCH}")
option(BUILD_TESTS "Build test version" OFF)
option(WITH_ASAN "Build address sanitized version" OFF)

View File

@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
PROJECT_NAME = "openAV - Luppp"
PROJECT_NAME = "openAV - Loopp"
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
@ -51,7 +51,7 @@ PROJECT_BRIEF =
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.
PROJECT_LOGO = resources/icons/luppp.svg
PROJECT_LOGO = resources/icons/loopp.svg
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is

View File

@ -1,5 +1,5 @@
Thanks for looking into packaging Luppp:
Thanks for looking into packaging Loopp:
OpenAV couldn't possibly package for every distro,
your work is apprecatied!
@ -10,10 +10,10 @@ Notes for packaging:
=== Controllers directory
Install controllers directory (and contents) to
/usr/share/luppp/controllers
/usr/share/loopp/controllers
Result: dir: /usr/share/luppp/controllers/
files: /usr/share/luppp/controllers/<filename>.ctlr
Result: dir: /usr/share/loopp/controllers/
files: /usr/share/loopp/controllers/<filename>.ctlr
=== Questions

View File

@ -1,4 +1,4 @@
#!/bin/bash
./version.sh
git archive HEAD --prefix=luppp-beta/ --format=zip > lupppGit_`date +"%d-%m-%Y"`_`git log --pretty=format:"%h" | head -n1`.zip
git archive HEAD --prefix=loopp-beta/ --format=zip > looppGit_`date +"%d-%m-%Y"`_`git log --pretty=format:"%h" | head -n1`.zip

View File

@ -1,4 +1,4 @@
project( 'openav_luppp', ['c','cpp'],
project( 'openav_loopp', ['c','cpp'],
default_options : [
'cpp_std=c++11',
])
@ -18,7 +18,7 @@ add_project_arguments('-Wno-sign-compare', language : 'cpp')
cc = meson.get_compiler('c')
cpp = meson.get_compiler('cpp')
luppp_src = []
loopp_src = []
subdir('src')
@ -38,7 +38,7 @@ foreach dep : dep_names
endforeach
# compile the main project
exe = executable('luppp', luppp_src + [version_hxx],
exe = executable('loopp', loopp_src + [version_hxx],
install: true,
dependencies: deps)
@ -46,6 +46,6 @@ if get_option('unitTests')
test('Unit Tests', exe, args : ['-r junit', '-o junit.xml'])
endif
install_data('resources/metadata/luppp.desktop', install_dir: 'share/applications')
install_data('resources/metadata/luppp.appdata.xml', install_dir: 'share/appdata')
install_data('resources/icons/luppp.png', install_dir: 'share/pixmaps')
install_data('resources/metadata/loopp.desktop', install_dir: 'share/applications')
install_data('resources/metadata/loopp.appdata.xml', install_dir: 'share/appdata')
install_data('resources/icons/loopp.png', install_dir: 'share/pixmaps')

View File

@ -1,11 +1,11 @@
/* GIMP RGBA C-Source image dump (luppp.c) */
/* GIMP RGBA C-Source image dump (LOOPP.c) */
static const struct {
unsigned int width;
unsigned int height;
unsigned int bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */
unsigned char pixel_data[130 * 36 * 4 + 1];
} lupppImg = {
} looppImg = {
130, 36, 4,
"(((\377(((\377(((\377(((\377(((\377(((\377(((\377(((\377(((\377(((\377(("
"(\377(((\377(()\377(((\377)((\377)((\377(((\377(((\377(((\377(((\377(((\377"

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -16,7 +16,7 @@
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="luppp.svg">
sodipodi:docname="loopp.svg">
<defs
id="defs2">
<linearGradient

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<application>
<id type="desktop">luppp.desktop</id>
<id type="desktop">loopp.desktop</id>
<licence>CC0</licence>
<name>OpenAV Luppp</name>
<name>OpenAV Loopp</name>
<description>
<p>
Luppp is a music creation tool, intended for live use. It
Loopp is a music creation tool, intended for live use. It
focuses on real time processing and a fast intuitive
workflow. It has been developed since December 2011, and many
iterations of development have been completed. Luppp
iterations of development have been completed. Loopp
uses jack for audio output.
</p>
<p xml:lang="fr">
Luppp est un outil de création musicale pensé pour une
Loopp est un outil de création musicale pensé pour une
utilisation live. Il se concentre sur l'utilisation en
temps-réel et une expérience utilisateur intuitive et
rapide. Il est en développement depuis Décembre 2011, et
@ -22,8 +22,8 @@
</description>
<screenshots>
<!-- the width and height are optional, but suggested -->
<screenshot type="default" width="1110" height="650">https://raw.github.com/harryhaaren/openAV-Luppp/master/resources/screenshots/1.0.png</screenshot>
<screenshot type="default" width="1110" height="650">https://raw.github.com/harryhaaren/openAV-Loopp/master/resources/screenshots/1.0.png</screenshot>
</screenshots>
<url type="homepage">http://openavproductions.com/luppp</url>
<url type="homepage">http://openavproductions.com/loopp</url>
<updatecontact>zbyszek@in.waw.pl</updatecontact>
</application>

View File

@ -1,13 +1,13 @@
[Desktop Entry]
Name=Luppp
Name=Loopp
GenericName=Live performance mixing tool
GenericName[fr]=Outil de mixage pour performance live
Comment=Create music by recording, playing, and mixing samples
Comment[fr]=Créer de la musique en enregistrant, jouant, et mixant des échantillons
Type=Application
Categories=Audio;AudioVideo;
Exec=luppp
Exec=loopp
Terminal=false
StartupNotify=true
Icon=luppp
Icon=loopp
X-NSM-capable=true

View File

@ -68,29 +68,29 @@ endif()
FILE(GLOB sources *.cxx avtk/*.cxx cjson/*.c controller/*.cxx dsp/*.cxx observer/*.cxx state/*.cxx tests/*.cxx)
# Compile binary
add_executable (luppp version.hxx ${sources} )
add_executable (loopp version.hxx ${sources} )
# require a C++11 compiler
set_target_properties(luppp PROPERTIES
set_target_properties(loopp PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO
)
# Linking
target_link_libraries( luppp ${JACK_LIBRARIES} )
target_link_libraries( luppp ${LIBLO_LIBRARIES} )
target_link_libraries( luppp ${NTK_LIBRARIES} )
target_link_libraries( luppp ${CAIRO_LIBRARIES} )
target_link_libraries( luppp ${SNDFILE_LIBRARIES} )
target_link_libraries( luppp ${SAMPLERATE_LIBRARIES} )
target_link_libraries( luppp ${X11_LIBRARIES} )
target_link_libraries( loopp ${JACK_LIBRARIES} )
target_link_libraries( loopp ${LIBLO_LIBRARIES} )
target_link_libraries( loopp ${NTK_LIBRARIES} )
target_link_libraries( loopp ${CAIRO_LIBRARIES} )
target_link_libraries( loopp ${SNDFILE_LIBRARIES} )
target_link_libraries( loopp ${SAMPLERATE_LIBRARIES} )
target_link_libraries( loopp ${X11_LIBRARIES} )
# Check build type, linking with gcov for code analysis if needed
IF(BUILD_TESTS)
target_link_libraries(luppp gcov)
target_link_libraries(loopp gcov)
ENDIF(BUILD_TESTS)
# add the install targets
install (TARGETS luppp DESTINATION bin)
install (TARGETS loopp DESTINATION bin)

View File

@ -108,7 +108,7 @@ long AudioBuffer::getAudioFrames()
long AudioBuffer::getSize()
{
if(bufferL.size() != bufferR.size()) {
LUPPP_WARN("left and right channels of audio buffer have different size: %i vs %i", bufferL.size(), bufferR.size() );
LOOPP_WARN("left and right channels of audio buffer have different size: %i vs %i", bufferL.size(), bufferR.size() );
}
return std::min(bufferL.size(), bufferR.size());
}

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_AUDIOBUFFER_H
#define LUPPP_AUDIOBUFFER_H
#ifndef LOOPP_AUDIOBUFFER_H
#define LOOPP_AUDIOBUFFER_H
#include <vector>
#include <string>

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_AUDIO_PROCESSOR_H
#define LUPPP_AUDIO_PROCESSOR_H
#ifndef LOOPP_AUDIO_PROCESSOR_H
#define LOOPP_AUDIO_PROCESSOR_H
#include <stdio.h>
@ -49,5 +49,5 @@ public:
virtual ~AudioProcessor() {};
};
#endif // LUPPP_AUDIO_PROCESSOR_H
#endif // LOOPP_AUDIO_PROCESSOR_H

View File

@ -1 +1 @@
luppp_src += files( 'bindings.cxx', 'volume.cxx', 'clipselector.cxx')
loopp_src += files( 'bindings.cxx', 'volume.cxx', 'clipselector.cxx')

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_BUFFERS_H
#define LUPPP_BUFFERS_H
#ifndef LOOPP_BUFFERS_H
#define LOOPP_BUFFERS_H
#include <cstring>
#include <jack/transport.h>
@ -151,5 +151,5 @@ public:
};
#endif // LUPPP_BUFFERS_H
#endif // LOOPP_BUFFERS_H

View File

@ -1 +1 @@
luppp_src += files('cJSON.c')
loopp_src += files('cJSON.c')

View File

@ -16,12 +16,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_CONFIG_H
#define LUPPP_CONFIG_H
#ifndef LOOPP_CONFIG_H
#define LOOPP_CONFIG_H
/// PROGAM WIDE DEFINES
#define NAME "Luppp"
#define NAME "Loopp"
#pragma GCC diagnostic ignored "-Wunused-parameter"
@ -65,9 +65,9 @@
#define LOOPER_SAMPLES_BEFORE_REQUEST 44100
#define LOOPER_SAMPLES_UPDATE_SIZE 44100
#define LUPPP_RETURN_OK 0
#define LUPPP_RETURN_WARNING 1
#define LUPPP_RETURN_ERROR 2
#define LOOPP_RETURN_OK 0
#define LOOPP_RETURN_WARNING 1
#define LOOPP_RETURN_ERROR 2
// Smoothing value
#define SMOOTHING_CONST 0.005
@ -76,5 +76,5 @@
#include "debug.hxx"
#endif // LUPPP_CONFIG_H
#endif // LOOPP_CONFIG_H

View File

@ -17,13 +17,13 @@
*/
#ifndef LUPPP_BINDING_H
#define LUPPP_BINDING_H
#ifndef LOOPP_BINDING_H
#define LOOPP_BINDING_H
#include <map>
/// a LupppAction represents the Event type, as from Event.hxx
typedef int LupppAction;
/// a LooppAction represents the Event type, as from Event.hxx
typedef int LooppAction;
class Binding
{
@ -41,7 +41,7 @@ public:
/// the action this binding relates to: this is an integer based on the
/// event.hxx enumeration of event types
LupppAction action;
LooppAction action;
/// arguments to the event: track number, scene number etc
int active;

View File

@ -17,15 +17,15 @@
*/
#ifndef LUPPP_CONTROLLER_H
#define LUPPP_CONTROLLER_H
#ifndef LOOPP_CONTROLLER_H
#define LOOPP_CONTROLLER_H
#include <string>
#include "../gridlogic.hxx"
/** Controller
* This is the base class for any device that interacts with Luppp.
* This is the base class for any device that interacts with Loopp.
* Overriding the virtual functions allows the subclass to be notified about
* that event type. To provide input, #include gridlogic.hxx and logic.hxx
**/
@ -100,5 +100,5 @@ private:
int ID;
};
#endif // LUPPP_CONTROLLER_H
#endif // LOOPP_CONTROLLER_H

View File

@ -38,7 +38,7 @@ GenericMIDI::GenericMIDI(int waste, std::string n) :
Controller(),
MidiIO()
{
LUPPP_NOTE("Adding GenericMIDI %s", n.c_str() );
LOOPP_NOTE("Adding GenericMIDI %s", n.c_str() );
name = n;
registerMidiPorts( name );
stat = CONTROLLER_OK;
@ -49,7 +49,7 @@ GenericMIDI::GenericMIDI(int waste, std::string n) :
void GenericMIDI::setFootswitchToNextScene(int v)
{
LUPPP_NOTE("Set Footswitch to %i", v );
LOOPP_NOTE("Set Footswitch to %i", v );
if ( v == 0 ) {
footswitchNextScene = false;
footswitchPrevScene = false;
@ -77,12 +77,12 @@ GenericMIDI::GenericMIDI(std::string file) :
// load the JSON config file
int result = loadController( file );
if ( result == LUPPP_RETURN_OK ) {
LUPPP_NOTE("GenericMIDI registering ports: %s", name.c_str() );
if ( result == LOOPP_RETURN_OK ) {
LOOPP_NOTE("GenericMIDI registering ports: %s", name.c_str() );
registerMidiPorts( name );
stat = CONTROLLER_OK;
} else {
LUPPP_ERROR("Error in loading controller map!" );
LOOPP_ERROR("Error in loading controller map!" );
stat = CONTROLLER_ERROR;
}
}
@ -106,7 +106,7 @@ int GenericMIDI::registerComponents()
jack->registerMidiIO( m );
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
std::string GenericMIDI::getName()
@ -212,7 +212,7 @@ void GenericMIDI::midi(unsigned char* midi)
// create new MIDI binding?
if ( jack->bindingEventRecordEnable ) {
//LUPPP_NOTE("making binding from: %i %i %f", status, data, value );
//LOOPP_NOTE("making binding from: %i %i %f", status, data, value );
setupBinding( jack->bindingEventType, status, data,
jack->bindingTrack,
jack->bindingScene,
@ -247,7 +247,7 @@ void GenericMIDI::midi(unsigned char* midi)
Binding* b = midiToAction.at(i);
if ( b->status == status && b->data == data ) {
//LUPPP_NOTE("Executing action %s, send %i value %f, b->active %i", Event::getPrettyName(b->action), b->send, value, int(b->active) );
//LOOPP_NOTE("Executing action %s, send %i value %f, b->active %i", Event::getPrettyName(b->action), b->send, value, int(b->active) );
switch( b->action ) {
case Event::TRACK_VOLUME:
@ -308,11 +308,11 @@ void GenericMIDI::midi(unsigned char* midi)
jack->getLogic()->masterInputVol( value );
break;
case Event::MASTER_INPUT_TO:
//LUPPP_NOTE("GenMidi event INPUT_TO %i", b->send );
//LOOPP_NOTE("GenMidi event INPUT_TO %i", b->send );
jack->getLogic()->masterInputTo( b->send, value );
break;
case Event::MASTER_INPUT_TO_ACTIVE:
//LUPPP_NOTE("GenMidi event INPUT_TO_ACTIVE %i", b->send );
//LOOPP_NOTE("GenMidi event INPUT_TO_ACTIVE %i", b->send );
jack->getLogic()->masterInputToActive( b->send, b->active );
break;
@ -360,7 +360,7 @@ void GenericMIDI::setSceneState(int t, int scene, GridLogic::State s)
data[1] = b->data;
data[2] = it->second;
//LUPPP_NOTE("GenericMIDI::sceneState() writing event %i, %i, %i", data[0],data[1],data[2] );
//LOOPP_NOTE("GenericMIDI::sceneState() writing event %i, %i, %i", data[0],data[1],data[2] );
writeMidi( data );
}
}
@ -396,7 +396,7 @@ void GenericMIDI::launchScene( int scene )
data[1] = b->data;
data[2] = (i == scene) * 127;
//LUPPP_NOTE("this = %i GenericMIDI::launchScene()", this );
//LOOPP_NOTE("this = %i GenericMIDI::launchScene()", this );
writeMidi( data );
}
}
@ -409,7 +409,7 @@ int GenericMIDI::loadController( std::string file )
/// open and read whole file
#ifdef DEBUG_CONTROLLER
LUPPP_NOTE("%s%s","Loading controller : ", file.c_str() );
LOOPP_NOTE("%s%s","Loading controller : ", file.c_str() );
#endif
std::ifstream sampleFile( file.c_str(), std::ios_base::in|std::ios_base::ate);
long file_length = sampleFile.tellg();
@ -427,37 +427,37 @@ int GenericMIDI::loadController( std::string file )
std::string line;
std::getline( ss, line );
LUPPP_ERROR("%s %s","Error in JSON *before*: ", line.c_str() );
LOOPP_ERROR("%s %s","Error in JSON *before*: ", line.c_str() );
for(int i = 0; i < 5; i++) {
std::getline( ss, line );
LUPPP_ERROR("%s %s","Error in JSON : ", line.c_str() );
LOOPP_ERROR("%s %s","Error in JSON : ", line.c_str() );
}
return LUPPP_RETURN_ERROR;
return LOOPP_RETURN_ERROR;
}
cJSON* nameJson = cJSON_GetObjectItem( controllerJson, "name" );
if ( nameJson ) {
name = nameJson->valuestring;
LUPPP_NOTE("Device %s", name.c_str() );
LOOPP_NOTE("Device %s", name.c_str() );
} else {
LUPPP_NOTE("Has no name field");
LOOPP_NOTE("Has no name field");
}
cJSON* authorJson = cJSON_GetObjectItem( controllerJson, "author" );
if ( authorJson ) {
author = authorJson->valuestring;
LUPPP_NOTE("Author %s", author.c_str() );
LOOPP_NOTE("Author %s", author.c_str() );
} else {
LUPPP_NOTE("Has no author field");
LOOPP_NOTE("Has no author field");
}
cJSON* linkJson = cJSON_GetObjectItem( controllerJson, "link" );
if ( linkJson ) {
email = linkJson->valuestring;
LUPPP_NOTE("Link %s", email.c_str() );
LOOPP_NOTE("Link %s", email.c_str() );
} else {
LUPPP_NOTE("Has no link field");
LOOPP_NOTE("Has no link field");
}
@ -474,12 +474,12 @@ int GenericMIDI::loadController( std::string file )
nInputBindings++;
}
} else {
LUPPP_WARN("No input bindings array in .ctlr map." );
LOOPP_WARN("No input bindings array in .ctlr map." );
nInputBindings++; // hack to avoid 2 prints
}
if ( nInputBindings == 0 ) {
LUPPP_NOTE("Zero input bindings present in .ctlr map.");
LOOPP_NOTE("Zero input bindings present in .ctlr map.");
}
@ -494,35 +494,35 @@ int GenericMIDI::loadController( std::string file )
actionToMidi.push_back( tmp );
nOutputBindings++;
//LUPPP_NOTE("Binding from %s to %i %i", actionJ->valuestring, statusJson->valueint, dataJson->valueint );
//LOOPP_NOTE("Binding from %s to %i %i", actionJ->valuestring, statusJson->valueint, dataJson->valueint );
}
} else {
LUPPP_NOTE("No output bindings array in .ctlr map." );
LOOPP_NOTE("No output bindings array in .ctlr map." );
nOutputBindings++; // hack to avoid 2 prints
}
if ( nOutputBindings == 0 ) {
LUPPP_NOTE("Zero output bindings present in .ctlr map." );
LOOPP_NOTE("Zero output bindings present in .ctlr map." );
}
cJSON_Delete( controllerJson );
delete[] sampleString;
} else {
LUPPP_WARN("%s %s","No controller file found at ", file.c_str() );
return LUPPP_RETURN_WARNING;
LOOPP_WARN("%s %s","No controller file found at ", file.c_str() );
return LOOPP_RETURN_WARNING;
}
LUPPP_NOTE("Controller loading complete." );
LOOPP_NOTE("Controller loading complete." );
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
void GenericMIDI::removeBinding( int bindingID )
{
for(unsigned int i = 0; i < midiToAction.size(); i++) {
if ( midiToAction.at(i)->ID == bindingID ) {
//LUPPP_NOTE("MIDI binding REMOVED with bindingID %i\n", bindingID );
//LOOPP_NOTE("MIDI binding REMOVED with bindingID %i\n", bindingID );
Binding* tmp = midiToAction.at(i);
midiToAction.erase( midiToAction.begin()+i );
@ -534,9 +534,9 @@ void GenericMIDI::removeBinding( int bindingID )
}
}
void GenericMIDI::setupBinding( LupppAction eventType, int midiStatus, int midiData, int track, int scene, int send, int active )
void GenericMIDI::setupBinding( LooppAction eventType, int midiStatus, int midiData, int track, int scene, int send, int active )
{
LUPPP_NOTE("MIDI binding, track %d, send %d from eventType %d to %d, %d", track, send, eventType, midiStatus, midiData );
LOOPP_NOTE("MIDI binding, track %d, send %d from eventType %d to %d, %d", track, send, eventType, midiStatus, midiData );
// FIXME: NON-RT Have stack of Bindings() available, or push in GUI thread?
Binding* tmp = new Binding();
@ -564,7 +564,7 @@ Binding* GenericMIDI::setupBinding( cJSON* binding )
cJSON* actionJson = cJSON_GetObjectItem( binding, "action" );
if ( !actionJson ) {
LUPPP_WARN("Binding doesn't have action field: fix .ctlr file");
LOOPP_WARN("Binding doesn't have action field: fix .ctlr file");
delete tmp;
return 0;
}
@ -572,7 +572,7 @@ Binding* GenericMIDI::setupBinding( cJSON* binding )
cJSON* statusJson = cJSON_GetObjectItem( binding, "status" );
cJSON* dataJson = cJSON_GetObjectItem( binding, "data" );
if ( !statusJson || !dataJson ) {
LUPPP_WARN("Binding w Action:%s doesn't have status / data field: fix .ctlr file", actionJson->valuestring);
LOOPP_WARN("Binding w Action:%s doesn't have status / data field: fix .ctlr file", actionJson->valuestring);
delete tmp;
return 0;
}
@ -645,12 +645,12 @@ Binding* GenericMIDI::setupBinding( cJSON* binding )
tmp->action = Event::MASTER_VOL;
} else if ( strcmp( actionJson->valuestring, "metronome:active" ) == 0 ) {
tmp->action = Event::METRONOME_ACTIVE;
LUPPP_NOTE("binding metro active event, tmp->active == %i", tmp->active );
LOOPP_NOTE("binding metro active event, tmp->active == %i", tmp->active );
}
// check for valid event: otherwise pass
if ( tmp->action != Event::EVENT_NULL ) {
//LUPPP_NOTE("Binding from %i %i %s", statusJson->valueint, dataJson->valueint, actionJson->valuestring);
//LOOPP_NOTE("Binding from %i %i %s", statusJson->valueint, dataJson->valueint, actionJson->valuestring);
cJSON* track = cJSON_GetObjectItem( binding, "track" );
cJSON* scene = cJSON_GetObjectItem( binding, "scene" );
@ -665,7 +665,7 @@ Binding* GenericMIDI::setupBinding( cJSON* binding )
return tmp;
} else {
LUPPP_WARN("Binding action not recognized: %s", actionJson->valuestring );
LOOPP_WARN("Binding action not recognized: %s", actionJson->valuestring );
}
delete tmp;

View File

@ -17,8 +17,8 @@
*/
#ifndef LUPPP_GENERIC_MIDI_H
#define LUPPP_GENERIC_MIDI_H
#ifndef LOOPP_GENERIC_MIDI_H
#define LOOPP_GENERIC_MIDI_H
#include "controller.hxx"
@ -83,7 +83,7 @@ public:
const std::vector<Binding*>& getMidiToAction();
// for adding bindings from MIDI / GUI event pair
void setupBinding( LupppAction eventType, int midiStatus, int midiData, int track, int scene, int send, int active );
void setupBinding( LooppAction eventType, int midiStatus, int midiData, int track, int scene, int send, int active );
void removeBinding( int bindingID );
private:
@ -117,5 +117,5 @@ private:
*/
};
#endif // LUPPP_GENERIC_MIDI_H
#endif // LOOPP_GENERIC_MIDI_H

View File

@ -29,126 +29,126 @@
extern Jack* jack;
LupppGUI::LupppGUI() :
LooppGUI::LooppGUI() :
Controller()
{
}
void LupppGUI::masterInputVol(float f)
void LooppGUI::masterInputVol(float f)
{
EventMasterInputVol e( f );
writeToGuiRingbuffer( &e );
}
void LupppGUI::masterInputTo(int to,float f)
void LooppGUI::masterInputTo(int to,float f)
{
EventMasterInputTo e( (Event::INPUT_TO)to, f );
writeToGuiRingbuffer( &e );
}
void LupppGUI::masterInputToActive(int to,float f)
void LooppGUI::masterInputToActive(int to,float f)
{
EventMasterInputToActive e( (Event::INPUT_TO)to, f );
writeToGuiRingbuffer( &e );
}
void LupppGUI::masterVolume(float f)
void LooppGUI::masterVolume(float f)
{
EventMasterVol e( f );
writeToGuiRingbuffer( &e );
}
void LupppGUI::masterReturnVolume(float f)
void LooppGUI::masterReturnVolume(float f)
{
printf(" return %f ", f );
EventMasterReturn e( RETURN_MAIN, f );
writeToGuiRingbuffer( &e );
}
void LupppGUI::metronomeEnable(bool r)
void LooppGUI::metronomeEnable(bool r)
{
EventMetronomeActive e( r );
writeToGuiRingbuffer( &e );
}
void LupppGUI::recordArm(int t, bool r)
void LooppGUI::recordArm(int t, bool r)
{
EventTrackRecordArm e( t, r );
writeToGuiRingbuffer( &e );
}
void LupppGUI::trackSend(int t, int send, float r)
void LooppGUI::trackSend(int t, int send, float r)
{
EventTrackSend e( t, static_cast<Event::SEND_TYPE>(send), r );
writeToGuiRingbuffer( &e );
}
void LupppGUI::specialScene(int t, int s)
void LooppGUI::specialScene(int t, int s)
{
EventGridSelectNewChosen e( t, s );
writeToGuiRingbuffer( &e );
}
void LupppGUI::trackSendActive(int t, int send, bool a)
void LooppGUI::trackSendActive(int t, int send, bool a)
{
EventTrackSendActive e( t, static_cast<Event::SEND_TYPE>(send), a );
writeToGuiRingbuffer( &e );
}
void LupppGUI::trackJackSend(int t, float v)
void LooppGUI::trackJackSend(int t, float v)
{
EventTrackJackSend e(t,v);
writeToGuiRingbuffer(&e);
}
void LupppGUI::trackJackSendActivate(int t, bool a)
void LooppGUI::trackJackSendActivate(int t, bool a)
{
EventTrackJackSendActivate e(t,a);
writeToGuiRingbuffer(&e);
}
void LupppGUI::setSceneState(int t, int clip, GridLogic::State s)
void LooppGUI::setSceneState(int t, int clip, GridLogic::State s)
{
EventGridState e( t, clip, s );
writeToGuiRingbuffer( &e );
}
void LupppGUI::launchScene( int scene )
void LooppGUI::launchScene( int scene )
{
EventGridLaunchScene e( scene );
writeToGuiRingbuffer( &e );
}
void LupppGUI::mute(int t, bool b)
void LooppGUI::mute(int t, bool b)
{
}
void LupppGUI::tapTempo( bool b )
void LooppGUI::tapTempo( bool b )
{
EventTimeTempoTap e(b);
writeToGuiRingbuffer( &e );
}
void LupppGUI::bpm(float bpm)
void LooppGUI::bpm(float bpm)
{
EventTimeBPM e(bpm);
writeToGuiRingbuffer( &e );
}
void LupppGUI::volume(int t, float f)
void LooppGUI::volume(int t, float f)
{
EventTrackVol e( t, f );
writeToGuiRingbuffer( &e );
}
void LupppGUI::pan(int t, float p)
void LooppGUI::pan(int t, float p)
{
EventTrackPan e( t, p );
writeToGuiRingbuffer( &e );
}
void LupppGUI::progress(int t, int s, float f)
void LooppGUI::progress(int t, int s, float f)
{
EventLooperProgress e( t, f );
writeToGuiRingbuffer( &e );

View File

@ -17,21 +17,21 @@
*/
#ifndef LUPPP_CONTROLLER_GUI_H
#define LUPPP_CONTROLLER_GUI_H
#ifndef LOOPP_CONTROLLER_GUI_H
#define LOOPP_CONTROLLER_GUI_H
#include "controller.hxx"
#include "../observer/midi.hxx"
class LupppGUI : public Controller
class LooppGUI : public Controller
{
public:
LupppGUI();
LooppGUI();
std::string getName()
{
return "Luppp GUI";
return "Loopp GUI";
}
void masterVolume(float f);
@ -63,5 +63,5 @@ public:
};
#endif // LUPPP_CONTROLLER_GUI_H
#endif // LOOPP_CONTROLLER_GUI_H

View File

@ -1,4 +1,4 @@
luppp_src += files(
loopp_src += files(
'controller.cxx',
'genericmidi.cxx',
'guicontroller.cxx',

View File

@ -40,7 +40,7 @@ void NonSeq::launchScene( int scene )
data[1] = 20;
data[2] = scene;
//LUPPP_NOTE("NonSeq::launchScene() %i, %i, %i\n", data[0],data[1],data[2] );
//LOOPP_NOTE("NonSeq::launchScene() %i, %i, %i\n", data[0],data[1],data[2] );
writeMidi( data );
}
@ -58,13 +58,13 @@ void NonSeq::setSceneState(int track, int scene, GridLogic::State s)
// check *actual* value of playing: *NOT* GridState::s, because it could be queued
// for something else, but we want the *actual* here, not "queued". This is a unique
// use case because were trying to control non-seq as if it were part of Luppp.
// use case because were trying to control non-seq as if it were part of Loopp.
if( jack->getLooper( track )->getClip( scene )->playing() )
data[1] = 21;
data[2] = track;
//LUPPP_NOTE("NonSeq::setSceneState() %i, %i, %i\n", data[0],data[1],data[2] );
//LOOPP_NOTE("NonSeq::setSceneState() %i, %i, %i\n", data[0],data[1],data[2] );
writeMidi( data );
}
@ -77,5 +77,5 @@ int NonSeq::registerComponents()
jack->registerMidiIO( m );
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}

View File

@ -17,14 +17,14 @@
*/
#ifndef LUPPP_NON_SEQ_H
#define LUPPP_NON_SEQ_H
#ifndef LOOPP_NON_SEQ_H
#define LOOPP_NON_SEQ_H
#include "../observer/midi.hxx"
#include "controller.hxx"
/** NonSeq
* A class for integrating the NonSeq sequencer with Luppp, providing scene
* A class for integrating the NonSeq sequencer with Loopp, providing scene
* on / off MIDI events to NonSeq
**/
class NonSeq : public Controller, public MidiIO
@ -42,4 +42,4 @@ public:
void setSceneState(int track, int scene, GridLogic::State s);
};
#endif // LUPPP_NON_SEQ_H
#endif // LOOPP_NON_SEQ_H

View File

@ -29,11 +29,11 @@ ControllerUpdater::ControllerUpdater()
void ControllerUpdater::registerController( Controller* controller )
{
if (!controller) {
LUPPP_ERROR("Register Controller passed NULL controller!");
LOOPP_ERROR("Register Controller passed NULL controller!");
return;
}
//LUPPP_NOTE("Registering controller %s", controller->getName().c_str() );
//LOOPP_NOTE("Registering controller %s", controller->getName().c_str() );
// store the controller instance
c.push_back( controller );
@ -67,7 +67,7 @@ Controller* ControllerUpdater::getController(int id)
// search controllers for ID, if found return a pointer to it
for( unsigned int i = 0; i < c.size(); i++) {
if ( c.at(i)->getID() == id ) {
LUPPP_NOTE("getController target ID: %i, found ID: %i, returning %s", id, i, c.at(i)->getName().c_str() );
LOOPP_NOTE("getController target ID: %i, found ID: %i, returning %s", id, i, c.at(i)->getName().c_str() );
return c.at(i);
}
}

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_CONTROLLER_UPDATER_H
#define LUPPP_CONTROLLER_UPDATER_H
#ifndef LOOPP_CONTROLLER_UPDATER_H
#define LOOPP_CONTROLLER_UPDATER_H
#include <vector>
#include <iostream>
@ -37,7 +37,7 @@ using namespace std;
* This class does no scheduling, it passes the events to the Controllers
* immidiatly.
*
* The Logic class is the opposite of this: it takes input and Luppp processes
* The Logic class is the opposite of this: it takes input and Loopp processes
* it, pushing the relevant updates in state through ControllerUpdater to each
* registered device.
**/
@ -91,5 +91,5 @@ private:
std::vector<Controller*> c;
};
#endif // LUPPP_CONTROLLER_UPDATER_H
#endif // LOOPP_CONTROLLER_UPDATER_H

View File

@ -21,7 +21,7 @@
#include <cassert>
void luppp_debug( int warnLevel, const char* name, const char* file, const char* func, int line,
void loopp_debug( int warnLevel, const char* name, const char* file, const char* func, int line,
const char* format, ... )
{
if ( warnLevel == DEBUG_LEVEL_ERROR ) {

View File

@ -16,16 +16,16 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_DEBUG_HXX
#define LUPPP_DEBUG_HXX
#ifndef LOOPP_DEBUG_HXX
#define LOOPP_DEBUG_HXX
#include <stdio.h>
#include <stdarg.h>
/* Example usage
LUPPP_NOTE( "%s", "MessageHere" );
LUPPP_WARN( "%s", "MessageHere" );
LUPPP_KILL( "%s", "MessageHere" );
LOOPP_NOTE( "%s", "MessageHere" );
LOOPP_WARN( "%s", "MessageHere" );
LOOPP_KILL( "%s", "MessageHere" );
*/
enum DEBUG_LEVEL {
@ -35,18 +35,18 @@ enum DEBUG_LEVEL {
DEBUG_LEVEL_TEST
};
void luppp_debug( int warnLevel, const char* name, const char* file, const char* func, int line,
void loopp_debug( int warnLevel, const char* name, const char* file, const char* func, int line,
const char* format = 0, ... );
#define LUPPP_DSP( format, args... ) luppp_debug( DEBUG_LEVEL_NOTE, " DSP ", "", "", 0, format, ## args )
#define LOOPP_DSP( format, args... ) loopp_debug( DEBUG_LEVEL_NOTE, " DSP ", "", "", 0, format, ## args )
#define LUPPP_NOTE( format, args... ) luppp_debug( DEBUG_LEVEL_NOTE, NAME, __FILE__, __FUNCTION__, __LINE__, format, ## args )
#define LUPPP_WARN( format, args... ) luppp_debug( DEBUG_LEVEL_WARN, NAME, __FILE__, __FUNCTION__, __LINE__, format, ## args )
#define LUPPP_ERROR( format, args... ) luppp_debug( DEBUG_LEVEL_ERROR, NAME, __FILE__, __FUNCTION__, __LINE__, format, ## args )
#define LOOPP_NOTE( format, args... ) loopp_debug( DEBUG_LEVEL_NOTE, NAME, __FILE__, __FUNCTION__, __LINE__, format, ## args )
#define LOOPP_WARN( format, args... ) loopp_debug( DEBUG_LEVEL_WARN, NAME, __FILE__, __FUNCTION__, __LINE__, format, ## args )
#define LOOPP_ERROR( format, args... ) loopp_debug( DEBUG_LEVEL_ERROR, NAME, __FILE__, __FUNCTION__, __LINE__, format, ## args )
// only gets printed if #definde BUILD_TESTS
#define LUPPP_PRINT_TEST( format, args... ) luppp_debug( DEBUG_LEVEL_DEBUG_ONLY, NAME, __FILE__, __FUNCTION__, __LINE__, format, ## args )
#define LOOPP_PRINT_TEST( format, args... ) loopp_debug( DEBUG_LEVEL_DEBUG_ONLY, NAME, __FILE__, __FUNCTION__, __LINE__, format, ## args )
#endif

View File

@ -15,8 +15,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_DENORMALS_H
#define LUPPP_DENORMALS_H
#ifndef LOOPP_DENORMALS_H
#define LOOPP_DENORMALS_H
#include <iostream>
@ -29,7 +29,7 @@
#include <pmmintrin.h>
inline void AVOIDDENORMALS()
{
//LUPPP_NOTE("Denormals: FZ DAZ using SSE3");
//LOOPP_NOTE("Denormals: FZ DAZ using SSE3");
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
_MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
}
@ -37,7 +37,7 @@ inline void AVOIDDENORMALS()
#include <xmmintrin.h>
inline void AVOIDDENORMALS()
{
//LUPPP_NOTE("Denormals: FZ");
//LOOPP_NOTE("Denormals: FZ");
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
}
#endif //__SSE3__
@ -45,9 +45,9 @@ inline void AVOIDDENORMALS()
#else
inline void AVOIDDENORMALS()
{
LUPPP_NOTE( "Denormals: Warning! No protection" );
LOOPP_NOTE( "Denormals: Warning! No protection" );
}
#endif //__SSE__
#endif // LUPPP_DENORMALS_H
#endif // LOOPP_DENORMALS_H

View File

@ -52,7 +52,7 @@ DiskReader::DiskReader()
int DiskReader::loadPreferences()
{
stringstream s;
s << getenv("HOME") << "/.config/openAV/luppp/luppp.prfs";
s << getenv("HOME") << "/.config/openAV/loopp/loopp.prfs";
std::ifstream sampleFile( s.str().c_str(), std::ios_base::in|std::ios_base::ate);
long file_length = sampleFile.tellg();
@ -64,8 +64,8 @@ int DiskReader::loadPreferences()
cJSON* preferencesJson = cJSON_Parse( sampleString );
if (!preferencesJson) {
LUPPP_WARN("Preferences JSON not valid");
return LUPPP_RETURN_ERROR;
LOOPP_WARN("Preferences JSON not valid");
return LOOPP_RETURN_ERROR;
}
@ -73,7 +73,7 @@ int DiskReader::loadPreferences()
if ( resample ) {
resampleQuality = resample->valueint;
if ( resampleQuality == 0 ) {
LUPPP_NOTE("Using Linear resampling, may reduce quality. Check .config/openAV/luppp/luppp.prfs");
LOOPP_NOTE("Using Linear resampling, may reduce quality. Check .config/openAV/loopp/loopp.prfs");
}
}
cJSON* ctlrs = cJSON_GetObjectItem( preferencesJson, "defaultControllers" );
@ -83,14 +83,14 @@ int DiskReader::loadPreferences()
for(int i = 0; i < nCtlrs; i++ ) {
cJSON* ctlr = cJSON_GetArrayItem( ctlrs, i );
if( ctlr ) {
LUPPP_NOTE("Loading controller %s", ctlr->valuestring);
LOOPP_NOTE("Loading controller %s", ctlr->valuestring);
stringstream s;
s << getenv("HOME") << "/.config/openAV/luppp/controllers/" << ctlr->valuestring;
s << getenv("HOME") << "/.config/openAV/loopp/controllers/" << ctlr->valuestring;
gui->addMidiControllerToSetup( s.str() );
}
}
} else {
LUPPP_NOTE("No default controllers active.");
LOOPP_NOTE("No default controllers active.");
}
@ -108,7 +108,7 @@ int DiskReader::loadPreferences()
if(jackPerTrackOutput) {
gui->enablePerTrackOutput=jackPerTrackOutput->valueint;
if(gui->enablePerTrackOutput)
LUPPP_NOTE("Enabling per track output ports");
LOOPP_NOTE("Enabling per track output ports");
}
//Metronome on by default?
@ -131,15 +131,15 @@ int DiskReader::loadPreferences()
delete[] sampleString;
} else {
// empty file / file no exists:
LUPPP_WARN("Preferences, file doesn't exist: ~/.config/openAV/luppp/luppp.prefs");
LOOPP_WARN("Preferences, file doesn't exist: ~/.config/openAV/loopp/loopp.prefs");
// so write default file
gui->getDiskWriter()->writeDefaultConfigToUserHome();
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
int DiskReader::showAudioEditor(AudioBuffer* ab)
@ -152,11 +152,11 @@ int DiskReader::showAudioEditor(AudioBuffer* ab)
// handle "cancel" return
if ( ab->getBeats() == -1 ) {
return LUPPP_RETURN_ERROR;
return LOOPP_RETURN_ERROR;
}
}
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
@ -170,11 +170,11 @@ int DiskReader::loadSample( int track, int scene, string path )
float frameBuf[ chnls ];
if ( infile.error() ) {
LUPPP_ERROR("File %s, Error %s", path.c_str(), infile.strError() );
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("File %s, Error %s", path.c_str(), infile.strError() );
return LOOPP_RETURN_ERROR;
}
LUPPP_NOTE("Loading file with %i chnls, frames %i, bufferL size %i bufferR size %i", infile.channels(), infile.frames(), bufL.size(), bufR.size() );
LOOPP_NOTE("Loading file with %i chnls, frames %i, bufferL size %i bufferR size %i", infile.channels(), infile.frames(), bufL.size(), bufR.size() );
// Read data
for(int f=0; f<infile.frames(); f++) {
@ -196,7 +196,7 @@ int DiskReader::loadSample( int track, int scene, string path )
/// resample?
if ( infile.samplerate() != gui->samplerate ) {
LUPPP_NOTE("%s%i%s%i", "Resampling from ", infile.samplerate(), " to ", gui->samplerate);
LOOPP_NOTE("%s%i%s%i", "Resampling from ", infile.samplerate(), " to ", gui->samplerate);
float resampleRatio = float(gui->samplerate) / infile.samplerate();
std::vector<float> resampledL( infile.frames() / chnls * resampleRatio );
@ -237,14 +237,14 @@ int DiskReader::loadSample( int track, int scene, string path )
// resample quality taken from config file,
int ret = src_simple ( &dataL, q, 1 );
if ( ret == 0 )
LUPPP_NOTE("%s%i%s%i", "Resampling L finished, from ", dataL.input_frames_used, " to ", dataL.output_frames_gen );
LOOPP_NOTE("%s%i%s%i", "Resampling L finished, from ", dataL.input_frames_used, " to ", dataL.output_frames_gen );
else
LUPPP_ERROR("%s%i%s%i", "Resampling L finished, from ", dataL.input_frames_used, " to ", dataL.output_frames_gen );
LOOPP_ERROR("%s%i%s%i", "Resampling L finished, from ", dataL.input_frames_used, " to ", dataL.output_frames_gen );
ret = src_simple ( &dataR, q, 1 );
if ( ret == 0 )
LUPPP_NOTE("%s%i%s%i", "Resampling R finished, from ", dataR.input_frames_used, " to ", dataR.output_frames_gen );
LOOPP_NOTE("%s%i%s%i", "Resampling R finished, from ", dataR.input_frames_used, " to ", dataR.output_frames_gen );
else
LUPPP_ERROR("%s%i%s%i", "Resampling R finished, from ", dataR.input_frames_used, " to ", dataR.output_frames_gen );
LOOPP_ERROR("%s%i%s%i", "Resampling R finished, from ", dataR.input_frames_used, " to ", dataR.output_frames_gen );
/// exchange buffers, so buf contains the resampled audio
bufL.swap( resampledL );
@ -291,8 +291,8 @@ int DiskReader::loadSample( int track, int scene, string path )
cJSON* audioJson = cJSON_Parse( sampleString.data() );
if (!audioJson) {
LUPPP_ERROR("%s %s","Error in Sample JSON before: ", cJSON_GetErrorPtr() );
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("%s %s","Error in Sample JSON before: ", cJSON_GetErrorPtr() );
return LOOPP_RETURN_ERROR;
}
cJSON* sample = cJSON_GetObjectItem( audioJson, baseName.c_str() );
@ -312,10 +312,10 @@ int DiskReader::loadSample( int track, int scene, string path )
// if we don't find the beats from audio.cfg, show dialog
if ( loadableBuffer == false ) {
LUPPP_NOTE("Warning: audio.cfg has no entry for beats.");
LOOPP_NOTE("Warning: audio.cfg has no entry for beats.");
int ret = showAudioEditor( ab );
if ( ret == LUPPP_RETURN_OK ) {
if ( ret == LOOPP_RETURN_OK ) {
// flag that we can load this sample OK
loadableBuffer = true;
} else {
@ -327,10 +327,10 @@ int DiskReader::loadSample( int track, int scene, string path )
} else {
// this means there's no audio.cfg file found for the sample: show the user
// the file, and ask what the intended beat number is, and load the AudioBuffer
LUPPP_WARN("%s %s","Empty or no audio.cfg found at ",base.str().c_str() );
LOOPP_WARN("%s %s","Empty or no audio.cfg found at ",base.str().c_str() );
int error = showAudioEditor( ab );
if ( error == LUPPP_RETURN_ERROR ) {
LUPPP_WARN("cancel clicked, deleting audiobuffer" );
if ( error == LOOPP_RETURN_ERROR ) {
LOOPP_WARN("cancel clicked, deleting audiobuffer" );
delete ab;
} else {
std::string name = path;
@ -338,7 +338,7 @@ int DiskReader::loadSample( int track, int scene, string path )
std::string sub = name.substr( i );
ab->setName( sub.c_str() );
LUPPP_NOTE("AudioBuffer %s set %i beats", ab->getName().c_str(), ab->getBeats() );
LOOPP_NOTE("AudioBuffer %s set %i beats", ab->getName().c_str(), ab->getBeats() );
loadableBuffer = true;
}
@ -358,11 +358,11 @@ int DiskReader::loadSample( int track, int scene, string path )
lastLoadedSamplePath = dirname( tmp );
free(tmp);
} else {
LUPPP_NOTE("AudioBuffer not loaded, missing beats info and dialog was Canceled" );
LOOPP_NOTE("AudioBuffer not loaded, missing beats info and dialog was Canceled" );
}
}
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
@ -377,7 +377,7 @@ int DiskReader::readSession( std::string path )
sessionPath = path;
stringstream s;
s << path << "/session.luppp";
s << path << "/session.loopp";
stringstream samplePath;
samplePath << path << "/audio/audio.cfg";
@ -390,8 +390,8 @@ int DiskReader::readSession( std::string path )
long file_length = file.tellg();
if ( file_length < 0 ) {
// empty file / file no exists:
LUPPP_ERROR("no session file exists!");
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("no session file exists!");
return LOOPP_RETURN_ERROR;
}
file.seekg(0, std::ios_base::beg);
@ -402,8 +402,8 @@ int DiskReader::readSession( std::string path )
// create cJSON nodes from strings
sessionJson = cJSON_Parse( sessionString );
if (!sessionJson) {
LUPPP_ERROR("%s %s", "Error in Session JSON before: ", cJSON_GetErrorPtr() );
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("%s %s", "Error in Session JSON before: ", cJSON_GetErrorPtr() );
return LOOPP_RETURN_ERROR;
}
@ -417,7 +417,7 @@ int DiskReader::readSession( std::string path )
cJSON_Delete( sessionJson );
delete[] sessionString;
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
int DiskReader::readMaster()
@ -428,7 +428,7 @@ int DiskReader::readMaster()
{
cJSON* bpm = cJSON_GetObjectItem( master, "bpm");
if ( bpm ) {
LUPPP_NOTE("%s %i","Session: BPM ",bpm->valueint);
LOOPP_NOTE("%s %i","Session: BPM ",bpm->valueint);
EventTimeBPM e( bpm->valuedouble );
writeToDspRingbuffer( &e );
}
@ -537,11 +537,11 @@ int DiskReader::readMaster()
}
} else {
LUPPP_ERROR("%s", "Error getting master from JSON" );
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("%s", "Error getting master from JSON" );
return LOOPP_RETURN_ERROR;
}
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
@ -559,7 +559,7 @@ int DiskReader::readScenes(int t, cJSON* track)
stringstream sampleFilePath;
sampleFilePath << sessionPath << "/audio/" << clip->valuestring;
#ifdef DEBUG_STATE
LUPPP_NOTE << "clip t " << t << " s " << s << " path " << sampleFilePath.str() << endl;
LOOPP_NOTE << "clip t " << t << " s " << s << " path " << sampleFilePath.str() << endl;
#endif
// load it, checking for sample.cfg, and using metadata if there
loadSample( t, s, sampleFilePath.str() );
@ -572,7 +572,7 @@ int DiskReader::readScenes(int t, cJSON* track)
} // nClips loop
}
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
int DiskReader::readTracks()
@ -584,7 +584,7 @@ int DiskReader::readTracks()
cJSON* track = cJSON_GetArrayItem( tracks, t );
if( !track ) {
LUPPP_WARN("Track %i has no name track saved.", t);
LOOPP_WARN("Track %i has no name track saved.", t);
} else {
readScenes( t, track );
@ -592,7 +592,7 @@ int DiskReader::readTracks()
{
cJSON* name = cJSON_GetObjectItem( track, "name");
if( !name ) {
LUPPP_WARN("Track %i has no name data saved.", t);
LOOPP_WARN("Track %i has no name data saved.", t);
} else {
gui->getTrack(t)->bg.copy_label( name->valuestring );
}
@ -601,7 +601,7 @@ int DiskReader::readTracks()
{
cJSON* fader = cJSON_GetObjectItem( track, "fader");
if( !fader ) {
LUPPP_WARN("Track %i has no fader data saved.", t);
LOOPP_WARN("Track %i has no fader data saved.", t);
} else {
EventTrackVol e( t, fader->valuedouble );
writeToDspRingbuffer( &e );
@ -611,11 +611,11 @@ int DiskReader::readTracks()
{
cJSON* pan = cJSON_GetObjectItem( track, "pan");
if( !pan ) {
LUPPP_WARN("Track %i has no pan data saved.", t);
LOOPP_WARN("Track %i has no pan data saved.", t);
} else {
EventTrackPan e( t, (pan->valuedouble*2)-1.f );
writeToDspRingbuffer( &e );
LUPPP_WARN("Track %i has pan %f", pan->valuedouble);
LOOPP_WARN("Track %i has pan %f", pan->valuedouble);
}
}
// sends
@ -627,7 +627,7 @@ int DiskReader::readTracks()
cJSON* keyActive = cJSON_GetObjectItem( track, "keyActive");
if( !send || !sendActive || !xside || !keyActive ) {
LUPPP_WARN("Track %i has no send data saved.", t);
LOOPP_WARN("Track %i has no send data saved.", t);
} else {
EventTrackSendActive e1( t, SEND_POSTFADER, sendActive->valueint );
EventTrackSendActive e2( t, SEND_KEY, keyActive ->valueint );
@ -655,8 +655,8 @@ int DiskReader::readTracks()
}// if track
} // nTracks loop
} else {
LUPPP_ERROR("%s", "Error getting clip" );
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("%s", "Error getting clip" );
return LOOPP_RETURN_ERROR;
}
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_DISK_READER_H
#define LUPPP_DISK_READER_H
#ifndef LOOPP_DISK_READER_H
#define LOOPP_DISK_READER_H
#include <string>
@ -26,11 +26,11 @@
class AudioBuffer;
/** DiskReader
* This class reads a previously saved session from disk, restoring Luppp's
* This class reads a previously saved session from disk, restoring Loopp's
* internal state to that of when the save took place.
*
* The directory <sessionDir> is the main point of loading. The user selects
* that directory to load the session from. <sessionDir>.luppp is the name of
* that directory to load the session from. <sessionDir>.loopp is the name of
* the session file: it contains all info about the session: Volumes, loaded
* samples etc.
*
@ -42,7 +42,7 @@ class DiskReader
public:
DiskReader();
/// loads default settings for Luppp: controller instances etc
/// loads default settings for Loopp: controller instances etc
int loadPreferences();
/// loads a sample into a new AudioBuffer, returning the buffer
@ -75,4 +75,4 @@ private:
std::string lastLoadedSamplePath;
};
#endif // LUPPP_DISK_READER_H
#endif // LOOPP_DISK_READER_H

View File

@ -55,38 +55,38 @@ DiskWriter::DiskWriter()
sessionName = "session";
foldersCreated = false;
// create .config/openAV/luppp/ directory
// create .config/openAV/loopp/ directory
stringstream dotConfig;
dotConfig << getenv("HOME") << "/.config/openAV/";
int dotConfigDir = mkdir( dotConfig.str().c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
if ( errno == EEXIST ) {
//LUPPP_NOTE("dotConfigDir exists");
//LOOPP_NOTE("dotConfigDir exists");
} else if ( dotConfigDir ) {
LUPPP_WARN("Error creating dotConfigDir: %s", strerror(errno));
LOOPP_WARN("Error creating dotConfigDir: %s", strerror(errno));
} else {
LUPPP_NOTE("Creating .config/openAV/ directory");
LOOPP_NOTE("Creating .config/openAV/ directory");
}
stringstream dotConfigLuppp;
dotConfigLuppp << getenv("HOME") << "/.config/openAV/luppp";
int dotConfigLupppDir = mkdir( dotConfigLuppp.str().c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
stringstream dotConfigLoopp;
dotConfigLoopp << getenv("HOME") << "/.config/openAV/loopp";
int dotConfigLooppDir = mkdir( dotConfigLoopp.str().c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
if ( errno == EEXIST ) {
//LUPPP_NOTE("dotConfigLupppDir exists");
} else if ( dotConfigLupppDir ) {
LUPPP_WARN("Error creating dotConfigLupppDir: %s", strerror(errno));
//LOOPP_NOTE("dotConfigLooppDir exists");
} else if ( dotConfigLooppDir ) {
LOOPP_WARN("Error creating dotConfigLooppDir: %s", strerror(errno));
} else {
LUPPP_NOTE("Creating .config/openAV/luppp directory");
LOOPP_NOTE("Creating .config/openAV/loopp directory");
}
stringstream dotConfigCtlr;
dotConfigCtlr << getenv("HOME") << "/.config/openAV/luppp/controllers/";
dotConfigCtlr << getenv("HOME") << "/.config/openAV/loopp/controllers/";
int dotConfigCtlrDir = mkdir( dotConfigCtlr.str().c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
if ( errno == EEXIST ) {
//LUPPP_NOTE("dotConfigCtlrDir exists");
//LOOPP_NOTE("dotConfigCtlrDir exists");
} else if ( dotConfigCtlrDir ) {
LUPPP_WARN("Error creating dotConfigCtlrDir: %s", strerror(errno));
LOOPP_WARN("Error creating dotConfigCtlrDir: %s", strerror(errno));
} else {
LUPPP_NOTE("Creating .config/openAV/luppp directory");
LOOPP_NOTE("Creating .config/openAV/loopp directory");
}
}
@ -106,39 +106,39 @@ void DiskWriter::initialize(std::string path, std::string name )
int projectDir = mkdir( path.c_str(),
S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
if ( errno == EEXIST ) {
//LUPPP_NOTE("project dir %s exists, this is good", path.c_str());
//LOOPP_NOTE("project dir %s exists, this is good", path.c_str());
} else if ( projectDir ) {
LUPPP_WARN("Error creating projectDir: %s", strerror(errno));
LOOPP_WARN("Error creating projectDir: %s", strerror(errno));
} else {
LUPPP_NOTE("Creating %s directory", path.c_str());
LOOPP_NOTE("Creating %s directory", path.c_str());
}
// write session.luppp JSON node to <path>/<sessionName>.luppp
// write session.loopp JSON node to <path>/<sessionName>.loopp
stringstream sessionDirStream;
sessionDirStream << path;
if ( !gui->getNsm() )
sessionDirStream << "/" << sessionName << ".luppp";
sessionDirStream << "/" << sessionName << ".loopp";
sessionDir = sessionDirStream.str();
LUPPP_NOTE( "Creating session dir %s", sessionDir.c_str() );
LOOPP_NOTE( "Creating session dir %s", sessionDir.c_str() );
int sessionDirError = mkdir( sessionDir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
if ( sessionDirError ) {
// handle by using different filename?
LUPPP_WARN("Error creating session directory. Does the path: %s exist?",path.c_str());
LOOPP_WARN("Error creating session directory. Does the path: %s exist?",path.c_str());
}
stringstream audioDirStream;
audioDirStream << sessionDir << "/audio";
audioDir = audioDirStream.str();
LUPPP_NOTE("Creating audio dir %s", audioDir.c_str() );
LOOPP_NOTE("Creating audio dir %s", audioDir.c_str() );
int audioDirError = mkdir( audioDir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
if ( audioDirError ) {
LUPPP_WARN("Error creating sample directory");
LOOPP_WARN("Error creating sample directory");
}
foldersCreated = true;
@ -162,17 +162,17 @@ void DiskWriter::writeControllerInfo( CONTROLLER_INFO c, std::string s )
int DiskWriter::writeControllerFile( Controller* c )
{
if ( c ) {
LUPPP_NOTE("DiskWriter Controller* id: %i", c->getID() );
LOOPP_NOTE("DiskWriter Controller* id: %i", c->getID() );
} else {
LUPPP_ERROR("DiskWriter Controller* passed NULL" );
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("DiskWriter Controller* passed NULL" );
return LOOPP_RETURN_ERROR;
}
// check if controller of ID is actually a GenericMIDI controller
GenericMIDI* g = dynamic_cast<GenericMIDI*>( c );
if ( g ) {
LUPPP_NOTE("Creating JSON for .ctlr file...");
LOOPP_NOTE("Creating JSON for .ctlr file...");
cJSON* controllerJson = cJSON_CreateObject();
@ -212,35 +212,35 @@ int DiskWriter::writeControllerFile( Controller* c )
if ( b.at(i)->active!= -1 )
cJSON_AddNumberToObject( binding, "active", b.at(i)->active );
LUPPP_NOTE("Creating Binding: action %i == %s!", b.at(i)->action, actionName );
LOOPP_NOTE("Creating Binding: action %i == %s!", b.at(i)->action, actionName );
} else {
LUPPP_WARN("Binding action %i has no prettyName!", b.at(i)->action );
LOOPP_WARN("Binding action %i has no prettyName!", b.at(i)->action );
}
}
// write the sample JSON node to <samplePath>/sample.cfg
stringstream controllerCfgPath;
controllerCfgPath << getenv("HOME") << "/.config/openAV/luppp/controllers/" << g->getName() << ".ctlr";
controllerCfgPath << getenv("HOME") << "/.config/openAV/loopp/controllers/" << g->getName() << ".ctlr";
ifstream infile( controllerCfgPath.str().c_str() );
if ( infile.good() ) {
// file exists: ask user overwrite or rename?
//LUPPP_WARN("Controller filename exists: prompting user to overwrite y/n?");
//LOOPP_WARN("Controller filename exists: prompting user to overwrite y/n?");
int action = fl_choice("Controller exists, action?", "Cancel", "Rename", "Overwrite");
if ( action == 0 ) {
// return OK, as user has chosen to cancel writing the file
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
} else if ( action == 1 ) {
// rename here
const char* name = fl_input("New name for .ctlr file:");
if ( name ) {
// clear the filename
controllerCfgPath.str( "" );
controllerCfgPath << getenv("HOME") << "/.config/openAV/luppp/controllers/" << name << ".ctlr";
LUPPP_NOTE( "New .ctlr filename %s", controllerCfgPath.str().c_str() );
controllerCfgPath << getenv("HOME") << "/.config/openAV/loopp/controllers/" << name << ".ctlr";
LOOPP_NOTE( "New .ctlr filename %s", controllerCfgPath.str().c_str() );
} else {
LUPPP_NOTE("No name entered for .ctlr file, canceling!");
return LUPPP_RETURN_ERROR;
LOOPP_NOTE("No name entered for .ctlr file, canceling!");
return LOOPP_RETURN_ERROR;
}
} else {
// just overwrite the file, no action
@ -249,18 +249,18 @@ int DiskWriter::writeControllerFile( Controller* c )
}
LUPPP_NOTE("Writing %s.ctlr file to disk", g->getName().c_str() );
LOOPP_NOTE("Writing %s.ctlr file to disk", g->getName().c_str() );
ofstream controllerCfgFile;
controllerCfgFile.open ( controllerCfgPath.str().c_str() );
controllerCfgFile << cJSON_Print( controllerJson );
controllerCfgFile.close();
} else {
LUPPP_WARN("Invalid Controller pointer: cannot write %s as is not a GenericMIDI controller!", c->getName().c_str() );
return LUPPP_RETURN_ERROR;
LOOPP_WARN("Invalid Controller pointer: cannot write %s as is not a GenericMIDI controller!", c->getName().c_str() );
return LOOPP_RETURN_ERROR;
}
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
int DiskWriter::writeAudioBuffer(int track, int scene, AudioBuffer* ab,
@ -291,8 +291,8 @@ int DiskWriter::writeAudioBuffer(int track, int scene, AudioBuffer* ab,
path << audioDir << "/" << filename.str();
} else {
LUPPP_WARN("%s", "Session folders not created yet, while trying to write audioBuffers.");
return LUPPP_RETURN_ERROR;
LOOPP_WARN("%s", "Session folders not created yet, while trying to write audioBuffers.");
return LOOPP_RETURN_ERROR;
}
@ -308,10 +308,10 @@ int DiskWriter::writeAudioBuffer(int track, int scene, AudioBuffer* ab,
outfile.writef( frameBuf, 1);
}
} else {
LUPPP_WARN("%s","Sample has zero samples");
LOOPP_WARN("%s","Sample has zero samples");
}
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
void DiskWriter::writeMaster()
@ -350,8 +350,8 @@ void DiskWriter::writeMaster()
int DiskWriter::writeSession()
{
if ( !foldersCreated ) {
LUPPP_WARN("%s", "Session folders not created yet, while trying to write session.");
return LUPPP_RETURN_ERROR;
LOOPP_WARN("%s", "Session folders not created yet, while trying to write session.");
return LOOPP_RETURN_ERROR;
}
// add session metadata
@ -416,11 +416,11 @@ int DiskWriter::writeSession()
stringstream sessionLuppp;
sessionLuppp << sessionDir << "/session.luppp";
stringstream sessionLoopp;
sessionLoopp << sessionDir << "/session.loopp";
//c out << "Session dir: " << sessionDir.str() << "\n" << "Sample dir : " << audioDir.str() << endl;
ofstream sessionFile;
sessionFile.open ( sessionLuppp.str().c_str() );
sessionFile.open ( sessionLoopp.str().c_str() );
sessionFile << cJSON_Print( sessionJson );
sessionFile.close();
@ -445,21 +445,21 @@ int DiskWriter::writeSession()
audioJson = cJSON_CreateObject();
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
}
void DiskWriter::writeDefaultConfigToUserHome()
{
LUPPP_NOTE("Writing default preferences file.");
LOOPP_NOTE("Writing default preferences file.");
cJSON* prfs = cJSON_CreateObject();
// "__COMMENT__" : "users home + <whatever it says here>"
// "saveDirectory" : "luppp"
// "saveDirectory" : "loopp"
cJSON_AddItemToObject ( prfs, "__COMMENT__",
cJSON_CreateString("users home + <whatever it says here>") );
cJSON_AddItemToObject ( prfs, "saveDirectory", cJSON_CreateString( "luppp" ));
cJSON_AddItemToObject ( prfs, "saveDirectory", cJSON_CreateString( "loopp" ));
// "__COMMENT__" : "0 = LINEAR, 1 = SINC_FASTEST, 2 = SINC_BEST",
@ -478,9 +478,9 @@ void DiskWriter::writeDefaultConfigToUserHome()
// cout << endl << cJSON_Print( prfs ) << endl << endl;
// write JSON to .config/openAV/luppp/luppp.prfs
// write JSON to .config/openAV/loopp/loopp.prfs
stringstream f;
f << getenv("HOME") << "/.config/openAV/luppp/luppp.prfs";
f << getenv("HOME") << "/.config/openAV/loopp/loopp.prfs";
ofstream outFile;
outFile.open ( f.str().c_str() );

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_DISK_WRITER_H
#define LUPPP_DISK_WRITER_H
#ifndef LOOPP_DISK_WRITER_H
#define LOOPP_DISK_WRITER_H
#include <string>
#include <vector>
@ -48,7 +48,7 @@ public:
/** DiskWriter
* This class writes soundfiles to disk, and keeps track of which filename was
* in which track/scene combo in the grid. This metadata is then written to the
* <sessionName>.luppp file.
* <sessionName>.loopp file.
**/
class DiskWriter
{
@ -100,4 +100,4 @@ private:
std::string controllerInfo[CONTROLLER_INFO_SIZE];
};
#endif // LUPPP_DISK_WRITER_H
#endif // LOOPP_DISK_WRITER_H

View File

@ -1 +1 @@
luppp_src += files('dsp_sidechain_gain.cxx')
loopp_src += files('dsp_sidechain_gain.cxx')

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_EVENT_H
#define LUPPP_EVENT_H
#ifndef LOOPP_EVENT_H
#define LOOPP_EVENT_H
#include <iostream>
#include <stdint.h>
@ -1264,5 +1264,5 @@ public:
};
#endif // LUPPP_EVENT_H
#endif // LOOPP_EVENT_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_EVENT_HANDLER_H
#define LUPPP_EVENT_HANDLER_H
#ifndef LOOPP_EVENT_HANDLER_H
#define LOOPP_EVENT_HANDLER_H
#include "event.hxx"
#include <jack/ringbuffer.h>
@ -36,5 +36,5 @@ extern void handleGuiEvents();
extern void writeToDspRingbuffer(EventBase* e);
extern void writeToGuiRingbuffer(EventBase* e);
#endif // LUPPP_EVENT_HANDLER_H
#endif // LOOPP_EVENT_HANDLER_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_EVENT_HANDLER_DSP_H
#define LUPPP_EVENT_HANDLER_DSP_H
#ifndef LOOPP_EVENT_HANDLER_DSP_H
#define LOOPP_EVENT_HANDLER_DSP_H
// Library
@ -244,7 +244,7 @@ void handleDspEvents()
if ( availableRead >= sizeof(EventMetronomeVolume) ) {
EventMetronomeVolume ev(false);
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMetronomeVolume) );
LUPPP_NOTE("EventDSP: MetroVol %f", ev.vol );
LOOPP_NOTE("EventDSP: MetroVol %f", ev.vol );
jack->getMetronome()->setVolume(ev.vol);
}
break;
@ -398,7 +398,7 @@ void handleDspEvents()
}
// ========= LUPPP INTERNAL =====
// ========= LOOPP INTERNAL =====
case Event::LOOPER_REQUEST_BUFFER: {
if ( availableRead >= sizeof(EventLooperClipRequestBuffer) ) {
EventLooperClipRequestBuffer ev;
@ -506,5 +506,5 @@ void writeToDspRingbuffer(EventBase* e)
}
}
#endif // LUPPP_EVENT_HANDLER_DSP_H
#endif // LOOPP_EVENT_HANDLER_DSP_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_EVENT_HANDLER_DSP_H
#define LUPPP_EVENT_HANDLER_DSP_H
#ifndef LOOPP_EVENT_HANDLER_DSP_H
#define LOOPP_EVENT_HANDLER_DSP_H
// Library
@ -57,7 +57,7 @@ void handleGuiEvents()
if ( availableRead >= sizeof(EventQuit) ) {
EventQuit ev;
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventQuit) );
LUPPP_NOTE("%s","GUI QUIT");
LOOPP_NOTE("%s","GUI QUIT");
gui->quit();
}
break;
@ -68,7 +68,7 @@ void handleGuiEvents()
EventSamplerate ev;
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventSamplerate) );
gui->samplerate = ev.samplerate;
//LUPPP_NOTE("Gui Samplerate: %i", gui->samplerate);
//LOOPP_NOTE("Gui Samplerate: %i", gui->samplerate);
}
break;
}
@ -298,7 +298,7 @@ void handleGuiEvents()
if ( availableRead >= sizeof(EventGridSelectNewChosen) ) {
EventGridSelectNewChosen ev;
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventGridSelectNewChosen) );
//LUPPP_NOTE("New special, %i, %i", ev.track, ev.scene);
//LOOPP_NOTE("New special, %i, %i", ev.track, ev.scene);
for(int i = 0; i < NTRACKS; i++) {
gui->getTrack(i)->getClipSelector()->setSpecial( i == ev.track ? ev.scene : -1 );
}
@ -365,7 +365,7 @@ void handleGuiEvents()
EventGuiPrint ev;
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventGuiPrint) );
//cout << "DSP: " << ev.getMessage() << endl;
LUPPP_DSP("%s", ev.getMessage() );
LOOPP_DSP("%s", ev.getMessage() );
}
break;
}
@ -414,7 +414,7 @@ void handleGuiEvents()
AudioBuffer* ab = new AudioBuffer(ev.bufferSize);
if ( ab ) {
//LUPPP_NOTE("Save buffer sent with t %i, s %i, ab* %i", ev.track, ev.scene, ab );
//LOOPP_NOTE("Save buffer sent with t %i, s %i, ab* %i", ev.track, ev.scene, ab );
EventRequestSaveBuffer returnEvent( ev.track, ev.scene, ab);
writeToDspRingbuffer( &returnEvent );
} else {
@ -441,7 +441,7 @@ void handleGuiEvents()
if ( c )
c->setBindEnable( ev.enable );
else
LUPPP_WARN("ControllerUI %i doesn't exist in the UI", ev.controllerID );
LOOPP_WARN("ControllerUI %i doesn't exist in the UI", ev.controllerID );
}
break;
}
@ -463,7 +463,7 @@ void handleGuiEvents()
if ( c )
c->addBinding( (Binding*)ev.binding );
else
LUPPP_WARN("ControllerUI %i doesn't exist in the UI", ev.controllerID );
LOOPP_WARN("ControllerUI %i doesn't exist in the UI", ev.controllerID );
}
break;
}
@ -484,7 +484,7 @@ void handleGuiEvents()
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventControllerInstance) );
// remove this controller from use:
Controller* c = (Controller*)ev.controller;
LUPPP_NOTE("Deleting controller %s", c->getName().c_str() );
LOOPP_NOTE("Deleting controller %s", c->getName().c_str() );
// delete will call the destructor for the Controller: this should
// clean up ports etc, all from the GUI thread as appropriate
delete c;
@ -519,5 +519,5 @@ void writeToGuiRingbuffer(EventBase* e)
}
}
#endif // LUPPP_EVENT_HANDLER_DSP_H
#endif // LOOPP_EVENT_HANDLER_DSP_H

View File

@ -100,7 +100,7 @@ void AudioEditor::show( AudioBuffer* buf, bool modal )
ab = buf;
if ( !ab ) {
LUPPP_WARN("called with ab == 0");
LOOPP_WARN("called with ab == 0");
return;
}

View File

@ -17,8 +17,8 @@
*/
#ifndef LUPPP_AUDIO_EDITOR_H
#define LUPPP_AUDIO_EDITOR_H
#ifndef LOOPP_AUDIO_EDITOR_H
#define LOOPP_AUDIO_EDITOR_H
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
@ -59,5 +59,5 @@ private:
AudioBuffer* ab;
};
#endif // LUPPP_AUDIO_EDITOR_H
#endif // LOOPP_AUDIO_EDITOR_H

View File

@ -26,7 +26,7 @@ static void gmastertrack_tempoDial_callback(Fl_Widget *w, void *data)
Avtk::Dial* b = (Avtk::Dial*)w;
float bpm = (b->value() * (float)(MAX_TEMPO - MIN_TEMPO) + MIN_TEMPO);
if(std::fabs(bpm-round(bpm))) {
LUPPP_WARN("%f",bpm);
LOOPP_WARN("%f",bpm);
}
EventTimeBPM e = EventTimeBPM( bpm );
writeToDspRingbuffer( &e );
@ -156,7 +156,7 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data)
} else
v = 0.25;
LUPPP_NOTE("metro vol = %f", v );
LOOPP_NOTE("metro vol = %f", v );
EventMetronomeVolume e( v );
writeToDspRingbuffer( &e );
@ -184,7 +184,7 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data)
writeToDspRingbuffer( &e );
}
} else {
LUPPP_WARN("Error: unknown command string");
LOOPP_WARN("Error: unknown command string");
}
}
@ -333,19 +333,19 @@ void GMasterTrack::setBpm( float b )
void GMasterTrack::setInputVol(float f)
{
//LUPPP_NOTE(" gmtrck, inputVol %f", f );
//LOOPP_NOTE(" gmtrck, inputVol %f", f );
inputVolume.value( f );
}
void GMasterTrack::setReturnVol(float f)
{
LUPPP_NOTE(" gmtrck, returnVol %f", f );
LOOPP_NOTE(" gmtrck, returnVol %f", f );
returnVol.value( f );
}
void GMasterTrack::setInputTo(int to, float f)
{
//LUPPP_NOTE(" gmtrck, inputTO %i, %f", to, f );
//LOOPP_NOTE(" gmtrck, inputTO %i, %f", to, f );
if ( to == Event::INPUT_TO_MIX )
inputToMixVol.value( f );
else if ( to == Event::INPUT_TO_SEND )
@ -356,7 +356,7 @@ void GMasterTrack::setInputTo(int to, float f)
void GMasterTrack::setInputToActive(int to, bool f)
{
//LUPPP_NOTE(" gmtrck, inputToActive %i, %i", to, int(f) );
//LOOPP_NOTE(" gmtrck, inputToActive %i, %i", to, int(f) );
if ( to == Event::INPUT_TO_MIX )
inputToMix.value( f );

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_G_MASTER_TRACK_H
#define LUPPP_G_MASTER_TRACK_H
#ifndef LOOPP_G_MASTER_TRACK_H
#define LOOPP_G_MASTER_TRACK_H
#include <iostream>
#include <sstream>
@ -122,5 +122,5 @@ private:
static int privateID;
};
#endif // LUPPP_G_MASTER_TRACK_H
#endif // LOOPP_G_MASTER_TRACK_H

View File

@ -41,7 +41,7 @@ static void addControllerUiDsp(OptionsWindow* self, GenericMIDI* c)
// store the pointer to the options window: needed to make remove button work
self->controllers.back()->optionsWindow = self;
LUPPP_NOTE("Added controller %s, ID %i", c->getName().c_str(), c->getID() );
LOOPP_NOTE("Added controller %s, ID %i", c->getName().c_str(), c->getID() );
// add widget before "add" button
self->tabs->insert( *self->controllers.back()->widget, self->addGroup );
@ -89,7 +89,7 @@ static void updateLinkCB(Fl_Widget* w, void* data)
static void writeBindEnable(Fl_Widget* w, void* data)
{
OptionsWindow* o = (OptionsWindow*) data;
//LUPPP_NOTE("MIDI bind mode");
//LOOPP_NOTE("MIDI bind mode");
Avtk::LightButton* l = (Avtk::LightButton*)w;
l->value( !l->value() );
@ -110,7 +110,7 @@ static void removeControllerCB(Fl_Widget* w, void* data)
// FIXME: confirm action here?
//LUPPP_NOTE("Removing controllerID %i", self->controllerID );
//LOOPP_NOTE("Removing controllerID %i", self->controllerID );
EventControllerInstanceRemove e( self->controllerID );
writeToDspRingbuffer( &e );
@ -120,7 +120,7 @@ static void removeControllerCB(Fl_Widget* w, void* data)
static void addNewController(Fl_Widget* w, void* ud)
{
OptionsWindow* self = (OptionsWindow*)ud;
LUPPP_NOTE("%s","ADD Controller cb");
LOOPP_NOTE("%s","ADD Controller cb");
GenericMIDI* c = 0;
@ -135,7 +135,7 @@ static void addNewController(Fl_Widget* w, void* ud)
if ( c->status() == Controller::CONTROLLER_OK ) {
addControllerUiDsp( self, c );
} else {
LUPPP_ERROR("Controller initialization failed!");
LOOPP_ERROR("Controller initialization failed!");
}
}
@ -153,7 +153,7 @@ static void selectLoadController(Fl_Widget* w, void* data)
fnfc.filter("Controllers\t*.ctlr");
stringstream s;
s << getenv("HOME") << "/.config/openAV/luppp/controllers/";
s << getenv("HOME") << "/.config/openAV/loopp/controllers/";
fnfc.directory( s.str().c_str() ); // default directory to use
// Show native chooser
switch ( fnfc.show() ) {
@ -170,13 +170,13 @@ static void selectLoadController(Fl_Widget* w, void* data)
if ( strcmp( path.c_str(), "" ) == 0 )
return;
//LUPPP_NOTE("%s","ADD Controller cb");
//LOOPP_NOTE("%s","ADD Controller cb");
GenericMIDI* c = new GenericMIDI( path );
if ( c->status() == Controller::CONTROLLER_OK ) {
addControllerUiDsp( self, c );
} else {
LUPPP_ERROR("Controller initialization failed!");
LOOPP_ERROR("Controller initialization failed!");
}
}
@ -186,7 +186,7 @@ static void writeControllerFile(Fl_Widget* w, void* data)
{
ControllerUI* c = (ControllerUI*)data;
LUPPP_NOTE("Writing controller %li, %s ID %i .ctlr to disk", c, c->name.c_str(), c->controllerID );
LOOPP_NOTE("Writing controller %li, %s ID %i .ctlr to disk", c, c->name.c_str(), c->controllerID );
// Set the Controller details in diskWriter, so it write it pretty
gui->getDiskWriter()->writeControllerInfo( CONTROLLER_NAME , c->name );
@ -205,7 +205,7 @@ static void deleteBindingFromController(Fl_Widget* w, void* ud)
s << w->label();
int tmp;
s >> tmp;
LUPPP_NOTE("CtlrID %i: Deleting binding with ID %i", self->controllerID, tmp );
LOOPP_NOTE("CtlrID %i: Deleting binding with ID %i", self->controllerID, tmp );
EventControllerBindingRemove e( self->controllerID, tmp );
writeToDspRingbuffer( &e );
@ -261,7 +261,7 @@ ControllerUI::ControllerUI(int x, int y, int w, int h, std::string n, int ID)
// save the controller ID this ControllerUI represents
controllerID = ID;
LUPPP_NOTE("Controller %li ID on create %i", this, controllerID );
LOOPP_NOTE("Controller %li ID on create %i", this, controllerID );
//ctlrButton->callback( selectLoadController );
bindEnable->callback( writeBindEnable, this );
@ -309,12 +309,12 @@ void ControllerUI::addBinding( Binding* b )
const char* tmp = Event::getPrettyName( b->action );
if ( !tmp ) {
#ifdef DEBUG_MIDI
LUPPP_NOTE("new binding, action string returned NULL, action number %i ", b->action );
LOOPP_NOTE("new binding, action string returned NULL, action number %i ", b->action );
#endif
return;
}
} else {
LUPPP_WARN("new binding, action: == EVENT_NULL" );
LOOPP_WARN("new binding, action: == EVENT_NULL" );
return;
}
@ -382,7 +382,7 @@ void ControllerUI::addBinding( Binding* b )
bindingsPack->redraw();
scroll->redraw();
//LUPPP_NOTE("binding size %i %i", bindingsPack->w(), bindingsPack->h() );
//LOOPP_NOTE("binding size %i %i", bindingsPack->w(), bindingsPack->h() );
}
void ControllerUI::addBindings( GenericMIDI* c )

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_OPTIONS_H
#define LUPPP_OPTIONS_H
#ifndef LOOPP_OPTIONS_H
#define LOOPP_OPTIONS_H
#include "config.hxx"
@ -123,4 +123,4 @@ private:
Avtk::Button* loadButton;
};
#endif // LUPPP_OPTIONS_H
#endif // LOOPP_OPTIONS_H

View File

@ -203,7 +203,7 @@ void GridLogic::pressed( int track, int scene )
for(int i = 0; i < NSCENES; i++) {
// exclude current scene
if ( i != scene ) {
//LUPPP_NOTE("netralizing & qStop on scene %i due to press on %i", i, scene );
//LOOPP_NOTE("netralizing & qStop on scene %i due to press on %i", i, scene );
LooperClip* ilc = jack->getLooper( track )->getClip( i );
ilc->resetQueues();

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_GRID_LOGIC_H
#define LUPPP_GRID_LOGIC_H
#ifndef LOOPP_GRID_LOGIC_H
#define LOOPP_GRID_LOGIC_H
#include "config.hxx"
#include "observer/time.hxx"
@ -25,7 +25,7 @@
class AudioBuffer;
/** GridLogic
* The logic code for the luppp tracks / grid resides here. This logic is
* The logic code for the loopp tracks / grid resides here. This logic is
* separtated from the Looper class so it can be repurposed by different
* controllers and input devices. The UI and eg. APC / Launchpad all have a
* similar grid style interface: the logic is implemented here once.
@ -115,4 +115,4 @@ private:
#endif // LUPPP_GRID_LOGIC_H
#endif // LOOPP_GRID_LOGIC_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_G_TRACK_H
#define LUPPP_G_TRACK_H
#ifndef LOOPP_G_TRACK_H
#define LOOPP_G_TRACK_H
#include <iostream>
@ -118,5 +118,5 @@ private:
static int privateID;
};
#endif // LUPPP_G_TRACK_H
#endif // LOOPP_G_TRACK_H

View File

@ -47,9 +47,9 @@ extern Jack* jack;
#include <FL/Fl_Multiline_Output.H>
// include the header.c file in the planning dir:
// its the GIMP .c export of the LUPPP header image
// its the GIMP .c export of the LOOPP header image
#include "../planning/header.c"
#include "../planning/luppp.c"
#include "../planning/loopp.c"
#include "../planning/bg.c"
using namespace std;
@ -60,7 +60,7 @@ extern int signalHanlderInt;
static void signalChecker(void*)
{
if ( signalHanlderInt ) {
// Luppp recieved either a SIGTERM or SIGINT: quit gracefully
// Loopp recieved either a SIGTERM or SIGINT: quit gracefully
gui->quit();
} else {
Fl::repeat_timeout( 0.1, (Fl_Timeout_Handler)&signalChecker, 0 );
@ -91,7 +91,7 @@ static void gui_static_nsm_cb(void* inst)
void option_controller_cb(Fl_Widget*,void* data)
{
LUPPP_NOTE("%s","Controller cb");
LOOPP_NOTE("%s","Controller cb");
}
static void gui_header_callback(Fl_Widget *w, void *data)
@ -166,22 +166,22 @@ static void gui_header_callback(Fl_Widget *w, void *data)
*/
}
LUPPP_NOTE( "Loading session from dir %s", tmp.c_str() );
LOOPP_NOTE( "Loading session from dir %s", tmp.c_str() );
// clear the current session: just do a state reset
EventStateReset e;
writeToDspRingbuffer( &e );
int sess = gui->getDiskReader()->readSession( tmp );
if ( sess != LUPPP_RETURN_OK )
LUPPP_ERROR( "Error loading session" );
if ( sess != LOOPP_RETURN_OK )
LOOPP_ERROR( "Error loading session" );
return;
} else if ( strcmp(m->label(), "Save Session ") == 0 ) {
const char* name = fl_input( "Save session as", gui->getDiskWriter()->getLastSaveName().c_str() );
if ( name ) {
gui->getDiskWriter()->initialize( gui->getProjectsDir().c_str(), name );
LUPPP_NOTE("%s %s","Saving session as ", name );
LOOPP_NOTE("%s %s","Saving session as ", name );
EventSessionSave e;
writeToDspRingbuffer( &e );
}
@ -223,26 +223,26 @@ void Gui::selectLoadController(Fl_Widget* w, void*)
if ( strcmp( path.c_str(), "" ) == 0 )
return;
LUPPP_NOTE("%s","ADD Controller cb");
LOOPP_NOTE("%s","ADD Controller cb");
Controller* c = new GenericMIDI( path );
if ( c->status() == Controller::CONTROLLER_OK ) {
EventControllerInstance e(c);
writeToDspRingbuffer( &e );
} else {
LUPPP_ERROR("Controller initialization failed!");
LOOPP_ERROR("Controller initialization failed!");
}
}
void Gui::setProjectsDir(string dir)
{
lupppProjectsDir=dir;
looppProjectsDir=dir;
}
string Gui::getProjectsDir()
{
return lupppProjectsDir;
return looppProjectsDir;
}
void Gui::selectSaveSample( int track, int scene )
@ -322,7 +322,7 @@ static int cb_nsm_open (const char *name,
char **out_msg,
void *userdata )
{
LUPPP_NOTE("NSM: Open, displayname: %s", display_name );
LOOPP_NOTE("NSM: Open, displayname: %s", display_name );
Jack::setup( client_id );
@ -344,7 +344,7 @@ static int cb_nsm_open (const char *name,
static int cb_nsm_save ( char **out_msg, void *userdata )
{
LUPPP_NOTE("NSM: saving..." );
LOOPP_NOTE("NSM: saving..." );
// disk-writer already initialized to the right directory, so just write!
EventSessionSave e;
@ -367,16 +367,16 @@ Gui::Gui(const char* argZero) :
// setup window icon before calling show()
fl_open_display();
Fl_Pixmap* pixmap = new Fl_Pixmap( icon_xpm );
Fl_Offscreen lupppIcon = XCreatePixmap(fl_display, RootWindow(fl_display, fl_screen),
Fl_Offscreen looppIcon = XCreatePixmap(fl_display, RootWindow(fl_display, fl_screen),
pixmap->w(), pixmap->h(), fl_visual->depth);
fl_gc = XCreateGC(fl_display, lupppIcon, 0, 0);
fl_begin_offscreen(lupppIcon);
fl_gc = XCreateGC(fl_display, looppIcon, 0, 0);
fl_begin_offscreen(looppIcon);
pixmap->draw(0,0);
fl_end_offscreen();
delete pixmap;
XFreeGC(fl_display, fl_gc);
window.icon( (void*)lupppIcon );
window.icon( (void*)looppIcon );
// setup callback to signalChecker()
Fl::add_timeout( 0.1, (Fl_Timeout_Handler)&signalChecker, 0 );
@ -385,11 +385,11 @@ Gui::Gui(const char* argZero) :
Fl::add_handler( keyboardHandler );
//window.resize( false );
window.xclass("luppp");
window.iconlabel("luppp");
window.xclass("loopp");
window.iconlabel("loopp");
window.color(FL_BLACK);
window.label("Luppp");
window.label("Loopp");
window.callback( close_cb, 0 );
window.size_range( 800, 450 );
@ -403,9 +403,9 @@ Gui::Gui(const char* argZero) :
Avtk::Image* bgImage = new Avtk::Image(0,0,1920,36,"bg");
bgImage->setPixbuf( bgImg.pixel_data, 4 );
Avtk::Image* lupppImage = new Avtk::Image(0,0,130,36,"luppp");
lupppImage->setPixbuf( lupppImg.pixel_data, 4 );
lupppImage->callback( gui_header_callback, this );
Avtk::Image* looppImage = new Avtk::Image(0,0,130,36,"loopp");
looppImage->setPixbuf( looppImg.pixel_data, 4 );
looppImage->callback( gui_header_callback, this );
Avtk::Image* headerImage = new Avtk::Image( window.w() - 270,0,270,36,"header");
headerImage->setPixbuf( header.pixel_data, 4 );
@ -425,8 +425,8 @@ Gui::Gui(const char* argZero) :
}
headerImages->end();
// create a new "Group" with all Luppp GUI contents, for resizing
lupppGroup = new Fl_Group( 0, 0, 1110, 700, "Luppp");
// create a new "Group" with all Loopp GUI contents, for resizing
looppGroup = new Fl_Group( 0, 0, 1110, 700, "Loopp");
{
int i = 0;
for (; i < NTRACKS; i++ ) {
@ -436,9 +436,9 @@ Gui::Gui(const char* argZero) :
}
master = new GMasterTrack(8 + i * 118, 40, 150, 650, "Master");
}
lupppGroup->end();
looppGroup->end();
window.resizable( lupppGroup );
window.resizable( looppGroup );
window.end();
@ -454,10 +454,10 @@ Gui::Gui(const char* argZero) :
// read settings file using diskreader, and setup controllers etc
int prefs = diskReader->loadPreferences();
if ( prefs != LUPPP_RETURN_OK ) {
LUPPP_WARN("No preferences loaded, using defaults.");
if ( prefs != LOOPP_RETURN_OK ) {
LOOPP_WARN("No preferences loaded, using defaults.");
} else {
LUPPP_NOTE("Loaded preferences");
LOOPP_NOTE("Loaded preferences");
}
// NSM stuff
@ -470,8 +470,8 @@ Gui::Gui(const char* argZero) :
nsm_set_save_callback( nsm, cb_nsm_save, this );
if ( nsm_init( nsm, nsm_url ) == 0 ) {
nsm_send_announce( nsm, "Luppp", "", argZero );
LUPPP_NOTE("Announcing to NSM");
nsm_send_announce( nsm, "Loopp", "", argZero );
LOOPP_NOTE("Announcing to NSM");
} else {
nsm_free( nsm );
nsm = 0;

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_GUI
#define LUPPP_GUI
#ifndef LOOPP_GUI
#define LOOPP_GUI
#include <vector>
#include <string>
@ -125,11 +125,11 @@ private:
Fl_Double_Window window;
Fl_Group* lupppGroup;
Fl_Group* looppGroup;
OptionsWindow* optionWindow;
std::string lupppProjectsDir;
std::string looppProjectsDir;
AudioEditor* audioEditor;
@ -150,4 +150,4 @@ private:
static int keyboardHandler(int event);
};
#endif // LUPPP_GUI
#endif // LOOPP_GUI

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_G_UNIT_TRACK_H
#define LUPPP_G_UNIT_TRACK_H
#ifndef LOOPP_G_UNIT_TRACK_H
#define LOOPP_G_UNIT_TRACK_H
#include <iostream>
@ -68,5 +68,5 @@ private:
};
#endif // LUPPP_G_UNIT_TRACK_H
#endif // LOOPP_G_UNIT_TRACK_H

View File

@ -59,7 +59,7 @@ void Jack::setup(std::string name)
jack->activate();
return;
} else {
LUPPP_WARN("JACK instance already exists!");
LOOPP_WARN("JACK instance already exists!");
}
}
@ -233,7 +233,7 @@ Jack::Jack( std::string name ) :
* The TrackOutput gets a pointer to the next AudioProcessor to call:
* This is either a JackSendReturn (providing send and return ports)
* or the track's Looper instance.
* This is an option in luppp.prfs
* This is an option in loopp.prfs
**/
loopers.push_back( new Looper(track) );
@ -285,14 +285,14 @@ Jack::Jack( std::string name ) :
if ( jack_set_process_callback( client,
static_process,
static_cast<void*>(this)) ) {
LUPPP_ERROR("%s","Error setting process callback");
LOOPP_ERROR("%s","Error setting process callback");
}
if ( jack_set_timebase_callback(client,
0, //0, 0 == must be master, 1 == conditional
(JackTimebaseCallback)static_timebase,
static_cast<void*>(this)) ) {
LUPPP_ERROR("%s","Error setting timebase callback");
LOOPP_ERROR("%s","Error setting timebase callback");
}
//Controller* m = new AkaiAPC();
@ -301,11 +301,11 @@ Jack::Jack( std::string name ) :
// Watch out for RT stuff, loading file, registering ports etc: before activate?!
//Controller* m = new GenericMIDI("akai_apc.ctlr","apc");
Controller* g = new LupppGUI();
Controller* g = new LooppGUI();
controllerUpdater->registerController( g );
if ( !g ) {
LUPPP_ERROR("%s","Error creating LupppGUI Controller instance");
LOOPP_ERROR("%s","Error creating LooppGUI Controller instance");
}
// call into the GUI, telling it to register default controllers
@ -358,7 +358,7 @@ void Jack::quit()
{
//jack_deactivate( client );
jack_client_close( client );
LUPPP_NOTE("%s","Quit JACK.");
LOOPP_NOTE("%s","Quit JACK.");
}
TrackOutput* Jack::getTrackOutput(int t)
@ -404,7 +404,7 @@ Looper* Jack::getLooper(int t)
void Jack::registerMidiIO( MidiIO* mo )
{
//LUPPP_NOTE("Jack::registerMidiIO()" );
//LOOPP_NOTE("Jack::registerMidiIO()" );
// CAREFUL : this could need to resize and cause malloc() in RT thread
midiIO.push_back( mo );
@ -412,7 +412,7 @@ void Jack::registerMidiIO( MidiIO* mo )
void Jack::unregisterMidiIO( MidiIO* mo )
{
LUPPP_NOTE("Jack::unregisterMidiIO()");
LOOPP_NOTE("Jack::unregisterMidiIO()");
// unregister the observer
for(unsigned int i = 0; i < midiIO.size(); i++) {
@ -519,7 +519,7 @@ int Jack::process (jack_nframes_t nframes)
void Jack::processFrames(int nframes)
{
if ( nframes < 0 ) {
LUPPP_WARN("Jack processFrames got nframes < 0");
LOOPP_WARN("Jack processFrames got nframes < 0");
return;
}
@ -629,7 +629,7 @@ void Jack::processFrames(int nframes)
*/
// move buffer pointers up nframes: allows processing of one "nframes" from
// JACK in multiple parts internally in Luppp: used for processing bar() / beat()
// JACK in multiple parts internally in Loopp: used for processing bar() / beat()
// if a full JACK nframes has been processed, this is extra work: its not that expensive
/// update buffers by nframes
if(lastnframes+nframes<buffers.nframes) {

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_JACK_H
#define LUPPP_JACK_H
#ifndef LOOPP_JACK_H
#define LOOPP_JACK_H
// Library
#include <vector>
@ -61,13 +61,13 @@ public:
static void setup(std::string name);
void activate();
/// quits the JACK client, destroying ports etc. Call only on exit of Luppp.
/// quits the JACK client, destroying ports etc. Call only on exit of Loopp.
void quit();
int getBuffersize();
int getSamplerate();
// Luppp process callback: bar() events can occur between these
// Loopp process callback: bar() events can occur between these
void processFrames(int nframes);
//Sets the first nframes of all the internal output buffers to zero. NO LIMIT CHECKS
@ -251,5 +251,5 @@ private:
};
#endif // LUPPP_JACK_H
#endif // LOOPP_JACK_H

View File

@ -93,7 +93,7 @@ void Logic::trackVolume(int t, float v)
jack->getTrackOutput( t )->setMaster( v );
jack->getControllerUpdater()->volume( t, v );
} else {
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
LOOPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
@ -103,7 +103,7 @@ void Logic::trackRecordArm(int t, bool v)
jack->getTrackOutput( t )->recordArm( v );
jack->getControllerUpdater()->recordArm( t, v );
} else {
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
LOOPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
@ -113,7 +113,7 @@ void Logic::trackSendActive(int t, int s, bool v)
jack->getTrackOutput( t )->setSendActive( s, v );
jack->getControllerUpdater()->setTrackSendActive( t, s, v );
} else {
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
LOOPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
@ -123,7 +123,7 @@ void Logic::trackSend(int t, int send, float v)
jack->getTrackOutput( t )->setSend( send, v );
jack->getControllerUpdater()->setTrackSend( t, send, v );
} else {
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
LOOPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
@ -133,7 +133,7 @@ void Logic::trackJackSendActivate(int t, bool active)
jack->getJackSendReturn(t)->activate(active);
jack->getControllerUpdater()->setTrackJackSendActive( t, active );
} else {
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
LOOPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
@ -143,7 +143,7 @@ void Logic::trackJackSend(int t, float vol)
jack->getJackSendReturn(t)->sendVolume(vol);
jack->getControllerUpdater()->setTrackJackSend( t, vol );
} else {
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
LOOPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
@ -152,7 +152,7 @@ void Logic::looperClipLenght(int t, int s, int l)
if ( t >= 0 && t < NTRACKS ) {
jack->getLooper( t )->getClip( s )->setBeats(l);
} else {
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
LOOPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}

View File

@ -16,15 +16,15 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_LOGIC_H
#define LUPPP_LOGIC_H
#ifndef LOOPP_LOGIC_H
#define LOOPP_LOGIC_H
#include "event.hxx"
/** Logic
* This class contains an interface exposing most functionality in Luppp. The
* This class contains an interface exposing most functionality in Loopp. The
* interface is used to have one central place from where each controller can
* interact with Luppp using the same function calls.
* interact with Loopp using the same function calls.
*
* This class should be used for input from any device. The interface is
* deliberatly specific with regards to scheduling events: controllers should
@ -69,4 +69,4 @@ public:
void setClipLengthDown();
};
#endif // LUPPP_LOGIC_H
#endif // LOOPP_LOGIC_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_LOOPER_H
#define LUPPP_LOOPER_H
#ifndef LOOPP_LOOPER_H
#define LOOPP_LOOPER_H
#include <vector>
#include <iostream>
@ -88,4 +88,4 @@ private:
int uiUpdateCounter;
};
#endif // LUPPP_LOOPER_H
#endif // LOOPP_LOOPER_H

View File

@ -210,7 +210,7 @@ void LooperClip::record(int count, float* L, float* R)
EventGuiPrint e( buffer );
writeToGuiRingbuffer( &e );
#ifdef BUILD_TESTS
LUPPP_WARN("%s","buffer has no space");
LOOPP_WARN("%s","buffer has no space");
#endif
break;

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_LOOPER_CLIP_H
#define LUPPP_LOOPER_CLIP_H
#ifndef LOOPP_LOOPER_CLIP_H
#define LOOPP_LOOPER_CLIP_H
#include <stdio.h>
#include "state/stately.hxx"
@ -138,7 +138,7 @@ public:
private:
int track, scene;
/** Luppp needs more than the current state of the clip to accuratly handle
/** Loopp needs more than the current state of the clip to accuratly handle
* it. The current state of the grid is kept up-to-date by GridLogic
* abstracting detail away, sending GridLogic::State to Controllers.
**/
@ -176,5 +176,5 @@ private:
void setStopped();
};
#endif // LUPPP_LOOPER_CLIP_H
#endif // LOOPP_LOOPER_CLIP_H

View File

@ -52,8 +52,8 @@ static void gui_static_loadSession_cb(void* inst)
{
char* tmp = (char*) inst;
int sess = gui->getDiskReader()->readSession( tmp );
if ( sess != LUPPP_RETURN_OK )
LUPPP_ERROR( "Error loading session" );
if ( sess != LOOPP_RETURN_OK )
LOOPP_ERROR( "Error loading session" );
}
@ -75,7 +75,7 @@ int main(int argc, char** argv)
}
}
LUPPP_NOTE("Git: %s", GIT_VERSION );
LOOPP_NOTE("Git: %s", GIT_VERSION );
// setup the environment
AVOIDDENORMALS();
@ -91,14 +91,14 @@ int main(int argc, char** argv)
#ifdef BUILD_TESTS
LUPPP_NOTE("Built with BUILD_TESTS enabled");
LOOPP_NOTE("Built with BUILD_TESTS enabled");
if ( runTests ) {
// counts failures
int testResult = 0;
// setup the testing Gui / JACK: Jack first, then GUI
gui = new Gui( argv[0] );
Jack::setup("LupppTEST");
Jack::setup("LooppTEST");
// test offline functionality
testResult += gui->getDiskReader()->runTests();
@ -127,7 +127,7 @@ int main(int argc, char** argv)
// the NSM OSC Open message will trigger Jack initialization: necessary
// to use the right name to create the JACK client.
} else {
Jack::setup("Luppp");
Jack::setup("Loopp");
jack->activate();
}

View File

@ -5,7 +5,7 @@ version_hxx = vcs_tag(
if not get_option('unitTests')
message('Create build config for publishing')
luppp_src = files(
loopp_src = files(
'audiobuffer.cxx',
'controllerupdater.cxx',
'debug.cxx',

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_METRONOME_H
#define LUPPP_METRONOME_H
#ifndef LOOPP_METRONOME_H
#define LOOPP_METRONOME_H
#include <cmath>
#include <iostream>
@ -56,4 +56,4 @@ private:
};
#endif // LUPPP_METRONOME_H
#endif // LOOPP_METRONOME_H

View File

@ -1 +1 @@
luppp_src += files('midi.cxx', 'time.cxx')
loopp_src += files('midi.cxx', 'time.cxx')

View File

@ -29,14 +29,14 @@ MidiIO::MidiIO() :
jackInputPort(0),
jackOutputPort(0)
{
//LUPPP_NOTE("MidiIO %i",this);
//LOOPP_NOTE("MidiIO %i",this);
}
MidiIO::~MidiIO()
{
jack->unregisterMidiIO( this );
//LUPPP_NOTE("~MidiIO unregistring ports");
//LOOPP_NOTE("~MidiIO unregistring ports");
jack_port_unregister( jack->getJackClientPointer(), jackInputPort );
jack_port_unregister( jack->getJackClientPointer(), jackOutputPort );
}
@ -61,8 +61,8 @@ void MidiIO::writeMidi( unsigned char* data )
int MidiIO::registerMidiPorts(std::string name)
{
if( !jack ) {
LUPPP_ERROR("Attempted register of controller, JACK not instantiated yet!");
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("Attempted register of controller, JACK not instantiated yet!");
return LOOPP_RETURN_ERROR;
}
jack_client_t* c = jack->getJackClientPointer();
@ -84,12 +84,12 @@ int MidiIO::registerMidiPorts(std::string name)
0 );
if ( jackInputPort && jackOutputPort ) {
//LUPPP_NOTE("%i, %i", jackInputPort, jackOutputPort );
//LOOPP_NOTE("%i, %i", jackInputPort, jackOutputPort );
portsRegistered = true;
return LUPPP_RETURN_OK;
return LOOPP_RETURN_OK;
} else {
LUPPP_ERROR("Error registering JACK ports" );
return LUPPP_RETURN_ERROR;
LOOPP_ERROR("Error registering JACK ports" );
return LOOPP_RETURN_ERROR;
}
}

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_MIDI_IO_H
#define LUPPP_MIDI_IO_H
#ifndef LOOPP_MIDI_IO_H
#define LOOPP_MIDI_IO_H
#include <iostream>
#include <string>
@ -60,4 +60,4 @@ private:
};
#endif // LUPPP_MIDI_IO_H
#endif // LOOPP_MIDI_IO_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_TIME_OBSERVER_H
#define LUPPP_TIME_OBSERVER_H
#ifndef LOOPP_TIME_OBSERVER_H
#define LOOPP_TIME_OBSERVER_H
#include "../config.hxx"
@ -42,4 +42,4 @@ public:
};
#endif // LUPPP_TIME_OBSERVER_H
#endif // LOOPP_TIME_OBSERVER_H

View File

@ -1 +1 @@
luppp_src += files('state.cxx', 'stately.cxx')
loopp_src += files('state.cxx', 'stately.cxx')

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_STATE_H
#define LUPPP_STATE_H
#ifndef LOOPP_STATE_H
#define LOOPP_STATE_H
#include <vector>
@ -49,4 +49,4 @@ private:
std::vector<Stately*> statelys;
};
#endif // LUPPP_STATE_H
#endif // LOOPP_STATE_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_STATELY_H
#define LUPPP_STATELY_H
#ifndef LOOPP_STATELY_H
#define LOOPP_STATELY_H
/** Stately
* This class is inherited from by all classes that have state.
@ -59,5 +59,5 @@ private:
static void checkCompletedSave();
};
#endif // LUPPP_STATELY_H
#endif // LOOPP_STATELY_H

View File

@ -42,9 +42,9 @@ int DiskReader::runTests()
//AudioBuffer ab(440);
//gui->getDiskWriter()->initialize(path, session);
QUNIT_IS_TRUE( gui->getDiskReader()->loadSample( 0, 0,"/tmp/lupppTestMaterial/beat.wav" ) == LUPPP_RETURN_OK );
QUNIT_IS_TRUE( gui->getDiskReader()->loadSample( 0, 0,"/tmp/looppTestMaterial/beat.wav" ) == LOOPP_RETURN_OK );
QUNIT_IS_TRUE( gui->getDiskReader()->readSession("/tmp/lupppTestMaterial/lupppTest" ) == LUPPP_RETURN_OK );
QUNIT_IS_TRUE( gui->getDiskReader()->readSession("/tmp/looppTestMaterial/looppTest" ) == LOOPP_RETURN_OK );
return qunit.errors();
}

View File

@ -45,8 +45,8 @@ int DiskWriter::runTests()
AudioBuffer ab(440);
gui->getDiskWriter()->initialize(path, session);
QUNIT_IS_TRUE( gui->getDiskWriter()->writeAudioBuffer(0, 0, &ab) == LUPPP_RETURN_OK );
QUNIT_IS_TRUE( gui->getDiskWriter()->writeSession() == LUPPP_RETURN_OK );
QUNIT_IS_TRUE( gui->getDiskWriter()->writeAudioBuffer(0, 0, &ab) == LOOPP_RETURN_OK );
QUNIT_IS_TRUE( gui->getDiskWriter()->writeSession() == LOOPP_RETURN_OK );
QUNIT_IS_TRUE( strcmp( gui->getDiskWriter()->getLastSavePath().c_str(), path.c_str() ) == 0 );
QUNIT_IS_TRUE( strcmp( gui->getDiskWriter()->getLastSaveName().c_str(), session.c_str() ) == 0 );
@ -63,21 +63,21 @@ int DiskWriter::runTests()
std::string link = "www.dummylink.com";
int d = gui->getDiskWriter()->writeControllerFile( dummy );
QUNIT_IS_TRUE( d == LUPPP_RETURN_OK );
QUNIT_IS_TRUE( d == LOOPP_RETURN_OK );
dummy->setupBinding( Event::TRACK_VOLUME, 176, 7, 0, 0, 0, 0 );
dummy->setupBinding( Event::GRID_LAUNCH_SCENE, 144, 60, 0, 2, 0, 0 );
int d1 = gui->getDiskWriter()->writeControllerFile( dummy );
QUNIT_IS_TRUE( d1 == LUPPP_RETURN_OK );
QUNIT_IS_TRUE( d1 == LOOPP_RETURN_OK );
/// test dynamic cast, null, and invalid Controller* type
int r1 = gui->getDiskWriter()->writeControllerFile( 0 );
QUNIT_IS_TRUE( r1 == LUPPP_RETURN_ERROR );
QUNIT_IS_TRUE( r1 == LOOPP_RETURN_ERROR );
Controller* non = new NonSeq();
int r2 = gui->getDiskWriter()->writeControllerFile( non);
QUNIT_IS_TRUE( r2 == LUPPP_RETURN_ERROR );
QUNIT_IS_TRUE( r2 == LOOPP_RETURN_ERROR );
return qunit.errors();
}

View File

@ -38,7 +38,7 @@ int GridLogic::runTests()
LooperClip* lc = jack->getLooper( t )->getClip( s );
// "pretty" prints the state of the clip
//LUPPP_NOTE("%s", GridLogic::StateString[ lc->getState() ] );
//LOOPP_NOTE("%s", GridLogic::StateString[ lc->getState() ] );
/// SCENE LAUNCH
lc->init();
@ -49,28 +49,28 @@ int GridLogic::runTests()
int launchScene = s + 1;
lc->init();
lc->setState( true, false, false, true, false, false ); // loaded + qplay
LUPPP_NOTE("state before = %s", GridLogic::StateString[ lc->getState() ] );
LOOPP_NOTE("state before = %s", GridLogic::StateString[ lc->getState() ] );
jack->getGridLogic()->launchScene( launchScene ); // launch different clip
QUNIT_IS_TRUE( jack->getGridLogic()->getLaunchedScene() == launchScene );
LUPPP_NOTE("state after launch before bar = %s", GridLogic::StateString[ lc->getState() ] );
LOOPP_NOTE("state after launch before bar = %s", GridLogic::StateString[ lc->getState() ] );
QUNIT_IS_TRUE( lc->getState() == GridLogic::STATE_STOPPED );
jack->getGridLogic()->bar();
LUPPP_NOTE("state after bar = %s", GridLogic::StateString[ lc->getState() ] );
LOOPP_NOTE("state after bar = %s", GridLogic::StateString[ lc->getState() ] );
QUNIT_IS_TRUE( lc->getState() == GridLogic::STATE_STOPPED );
/// s1 playing, then launch s2, s1
lc->init();
lc->setState( true, true, false, false, false, false ); // playing
//LUPPP_NOTE("state before = %s", GridLogic::StateString[ lc->getState() ] );
//LOOPP_NOTE("state before = %s", GridLogic::StateString[ lc->getState() ] );
jack->getGridLogic()->launchScene( launchScene ); // launch different clip
QUNIT_IS_TRUE( jack->getGridLogic()->getLaunchedScene() == launchScene );
//LUPPP_NOTE("state after before bar = %s", GridLogic::StateString[ lc->getState() ] );
//LOOPP_NOTE("state after before bar = %s", GridLogic::StateString[ lc->getState() ] );
QUNIT_IS_TRUE( lc->getState() == GridLogic::STATE_STOP_QUEUED );
jack->getGridLogic()->bar();
//LUPPP_NOTE("state after bar = %s", GridLogic::StateString[ lc->getState() ] );
//LOOPP_NOTE("state after bar = %s", GridLogic::StateString[ lc->getState() ] );
QUNIT_IS_TRUE( lc->getState() == GridLogic::STATE_STOPPED );

View File

@ -1,7 +1,7 @@
{
"name" : "Akai APC 40",
"author" : "Harry van Haaren",
"link" : "www.openavproductions.com/luppp#akaiapc40",
"link" : "www.openavproductions.com/loopp#akaiapc40",
"inputBindings" : [

View File

@ -1,5 +1,5 @@
{
"session": "lupppTest",
"session": "looppTest",
"version_major": 1,
"version_minor": 0,
"version_patch": 0,

View File

@ -1,4 +1,4 @@
luppp_src += files(
loopp_src += files(
'diskreadertest.cxx',
'diskwritertest.cxx',
'goptionstest.cxx',

View File

@ -73,7 +73,7 @@ void TimeManager::queueBpmChange(float bpm)
{
double frames = (double)samplerate * (double)60 / (double)bpm;
#ifdef DEBUG_TIME
LUPPP_NOTE("%s %f","setBpm()",bpm);
LOOPP_NOTE("%s %f","setBpm()",bpm);
cout << "calculated: " << fixed << setprecision(20) << frames << "\n";
#endif
queueFpbChange( frames );
@ -125,7 +125,7 @@ void TimeManager::setFpb(double f)
void TimeManager::registerObserver(TimeObserver* o)
{
//LUPPP_NOTE("%s","registerObserver()");
//LOOPP_NOTE("%s","registerObserver()");
observers.push_back(o);
o->setFpb( _fpb );

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_TIME_H
#define LUPPP_TIME_H
#ifndef LOOPP_TIME_H
#define LOOPP_TIME_H
#include <iostream>
#include <cstdio>
@ -93,4 +93,4 @@ private:
std::vector<TimeObserver*> observers;
};
#endif // LUPPP_TIME_H
#endif // LOOPP_TIME_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_TRACK_OUTPUT_H
#define LUPPP_TRACK_OUTPUT_H
#ifndef LOOPP_TRACK_OUTPUT_H
#define LOOPP_TRACK_OUTPUT_H
#include <iostream>
#include <stdio.h>
@ -97,5 +97,5 @@ private:
};
#endif // LUPPP_TRACK_OUTPUT_H
#endif // LOOPP_TRACK_OUTPUT_H

View File

@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LUPPP_TRANSPORT_H
#define LUPPP_TRANSPORT_H
#ifndef LOOPP_TRANSPORT_H
#define LOOPP_TRANSPORT_H
enum TRANSPORT_STATE {
TRANSPORT_STOPPED = 0,

View File

@ -1,4 +1,4 @@
luppp_src = files(
loopp_src = files(
'test_audiobuffer.cxx',
'test_entrypoint.cxx',
'test_debug.cxx',

View File

@ -3,7 +3,7 @@
OUTPUT output;
void
luppp_debug(int warnLevel, const char *name, const char *file, const char *func,
loopp_debug(int warnLevel, const char *name, const char *file, const char *func,
int line, const char *format, ...)
{
output.warnLevel = warnLevel;