Browse Source

MS Toolchain; Tuning Knob (#17)

* CMake and Visual Studio build files ignored

* Add CMakeLists

* Replace POSIX mutex with std::mutex

* Mutex unlock return value isn't used, changed signature to void

* C++ preprocessor demands different VA_ARGS syntax

* Superfluous include directory

* Expand tuning knob range to +/-1 octave.

---------

Co-authored-by: yaw-man <ywmn@proton.me>
Co-authored-by: wan-may <wnmy@protonmail.com>
pull/18/head
yaw-man GitHub 7 months ago
parent
commit
dfb6264ce0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 27 additions and 14 deletions
  1. +3
    -0
      .gitignore
  2. +3
    -0
      CMakeLists.txt
  3. +12
    -0
      plugins/Nekobi/CMakeLists.txt
  4. +4
    -7
      plugins/Nekobi/DistrhoPluginNekobi.cpp
  5. +0
    -2
      plugins/Nekobi/DistrhoPluginNekobi.hpp
  6. +2
    -2
      plugins/Nekobi/nekobee-src/nekobee.h
  7. +1
    -1
      plugins/Nekobi/nekobee-src/nekobee_synth.c
  8. +2
    -2
      plugins/Nekobi/nekobee-src/nekobee_synth.h

+ 3
- 0
.gitignore View File

@@ -16,3 +16,6 @@

bin/
build/

.vs/
out/

+ 3
- 0
CMakeLists.txt View File

@@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 3.11)
add_subdirectory(dpf)
add_subdirectory(plugins/Nekobi)

+ 12
- 0
plugins/Nekobi/CMakeLists.txt View File

@@ -0,0 +1,12 @@
DPF_ADD_PLUGIN(Nekobi
TARGETS vst2
FILES_DSP
DistrhoPluginNekobi.cpp
FILES_UI
DistrhoArtworkNekobi.cpp
DistrhoUINekobi.cpp)

target_include_directories(Nekobi PUBLIC
"."
"nekobee-src"
)

+ 4
- 7
plugins/Nekobi/DistrhoPluginNekobi.cpp View File

@@ -18,7 +18,6 @@
#include "DistrhoPluginNekobi.hpp"
extern "C" {
#include "nekobee-src/nekobee_synth.c"
#include "nekobee-src/nekobee_voice.c"
@@ -31,7 +30,7 @@ extern "C" {
bool dssp_voicelist_mutex_trylock(nekobee_synth_t* const synth)
{
/* Attempt the mutex lock */
if (pthread_mutex_trylock(&synth->voicelist_mutex) != 0)
if (!synth->voicelist_mutex.try_lock())
{
synth->voicelist_mutex_grab_failed = 1;
return false;
@@ -47,9 +46,9 @@ bool dssp_voicelist_mutex_trylock(nekobee_synth_t* const synth)
return true;
}
bool dssp_voicelist_mutex_unlock(nekobee_synth_t* const synth)
void dssp_voicelist_mutex_unlock(nekobee_synth_t* const synth)
{
return (pthread_mutex_unlock(&synth->voicelist_mutex) == 0);
synth->voicelist_mutex.unlock();
}
// -----------------------------------------------------------------------
@@ -79,7 +78,6 @@ void nekobee_handle_raw_event(nekobee_synth_t* const synth, const uint8_t size,
}
}
} /* extern "C" */
START_NAMESPACE_DISTRHO
@@ -109,7 +107,6 @@ DistrhoPluginNekobi::DistrhoPluginNekobi()
fSynth.voice = nekobee_voice_new();
fSynth.voicelist_mutex_grab_failed = 0;
pthread_mutex_init(&fSynth.voicelist_mutex, nullptr);
fSynth.channel_pressure = 0;
fSynth.pitch_wheel_sensitivity = 0;
@@ -299,7 +296,7 @@ void DistrhoPluginNekobi::setParameterValue(uint32_t index, float value)
break;
case paramTuning:
fParams.tuning = value;
fSynth.tuning = (value+12.0f)/24.0f * 1.5 + 0.5f; // FIXME: log?
fSynth.tuning = exp2f( value / 12.0f );
DISTRHO_SAFE_ASSERT(fSynth.tuning >= 0.5f && fSynth.tuning <= 2.0f);
break;
case paramCutoff:


+ 0
- 2
plugins/Nekobi/DistrhoPluginNekobi.hpp View File

@@ -21,9 +21,7 @@
#include "DistrhoPlugin.hpp"
extern "C" {
#include "nekobee-src/nekobee_synth.h"
}
START_NAMESPACE_DISTRHO


+ 2
- 2
plugins/Nekobi/nekobee-src/nekobee.h View File

@@ -63,8 +63,8 @@

#else /* !XSYNTH_DEBUG */

#define XDB_MESSAGE(type, fmt...)
#define GDB_MESSAGE(type, fmt...)
#define XDB_MESSAGE(type, fmt, ...)
#define GDB_MESSAGE(type, fmt, ...)
#define XSYNTH_DEBUG_INIT(x)

#endif /* XSYNTH_DEBUG */


+ 1
- 1
plugins/Nekobi/nekobee-src/nekobee_synth.c View File

@@ -29,7 +29,7 @@
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <pthread.h>
#include <mutex>

#include "nekobee.h"
#include "nekobee_synth.h"


+ 2
- 2
plugins/Nekobi/nekobee-src/nekobee_synth.h View File

@@ -26,7 +26,7 @@
#ifndef _XSYNTH_SYNTH_H
#define _XSYNTH_SYNTH_H

#include <pthread.h>
#include <mutex>

#include "nekobee.h"
#include "nekobee_types.h"
@@ -64,7 +64,7 @@ struct _nekobee_synth_t {

//nekobee_voice_t *voice[XSYNTH_MAX_POLYPHONY];
nekobee_voice_t *voice;
pthread_mutex_t voicelist_mutex;
std::mutex voicelist_mutex;
int voicelist_mutex_grab_failed;

/* current non-paramter-mapped controller values */


Loading…
Cancel
Save