commit
e307e7b282
8 changed files with 150 additions and 63 deletions
|
|
@ -313,7 +313,7 @@ sfizz_lv2_update_timeinfo(sfizz_plugin_t *self, int delay, int updates)
|
|||
if (updates & SFIZZ_TIMEINFO_SIGNATURE)
|
||||
sfizz_send_time_signature(self->synth, delay, self->beats_per_bar, self->beat_unit);
|
||||
if (updates & SFIZZ_TIMEINFO_TEMPO)
|
||||
sfizz_send_tempo(self->synth, delay, 60.0f / self->bpm_tempo);
|
||||
sfizz_send_bpm_tempo(self->synth, delay, self->bpm_tempo);
|
||||
if (updates & SFIZZ_TIMEINFO_SPEED)
|
||||
sfizz_send_playback_state(self->synth, delay, self->speed > 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ tresult PLUGIN_API SfizzVstProcessor::initialize(FUnknown* context)
|
|||
_currentStretchedTuning = 0.0;
|
||||
loadSfzFileOrDefault({}, false);
|
||||
|
||||
_synth->tempo(0, 0.5);
|
||||
_synth->bpmTempo(0, 120);
|
||||
_timeSigNumerator = 4;
|
||||
_timeSigDenominator = 4;
|
||||
_synth->timeSignature(0, _timeSigNumerator, _timeSigDenominator);
|
||||
|
|
@ -313,7 +313,7 @@ void SfizzVstProcessor::updateTimeInfo(const Vst::ProcessContext& context)
|
|||
sfz::Sfizz& synth = *_synth;
|
||||
|
||||
if (context.state & context.kTempoValid)
|
||||
synth.tempo(0, float(60.0 / context.tempo));
|
||||
synth.bpmTempo(0, static_cast<float>(context.tempo));
|
||||
|
||||
if (context.state & context.kTimeSigValid) {
|
||||
_timeSigNumerator = context.timeSigNumerator;
|
||||
|
|
|
|||
64
src/sfizz.h
64
src/sfizz.h
|
|
@ -43,6 +43,12 @@
|
|||
#define SFIZZ_EXPORTED_API
|
||||
#endif
|
||||
|
||||
#if defined _WIN32
|
||||
#define SFIZZ_DEPRECATED_API __declspec(deprecated)
|
||||
#else
|
||||
#define SFIZZ_DEPRECATED_API __attribute__ ((deprecated))
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
@ -333,13 +339,13 @@ SFIZZ_EXPORTED_API void sfizz_set_sample_rate(sfizz_synth_t* synth, float sample
|
|||
*
|
||||
* @param synth The synth.
|
||||
* @param delay The delay of the event in the block, in samples.
|
||||
* @param note_number The MIDI note number.
|
||||
* @param velocity The MIDI velocity.
|
||||
* @param note_number The MIDI note number, in domain 0 to 127.
|
||||
* @param velocity The MIDI velocity, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
SFIZZ_EXPORTED_API void sfizz_send_note_on(sfizz_synth_t* synth, int delay, int note_number, char velocity);
|
||||
SFIZZ_EXPORTED_API void sfizz_send_note_on(sfizz_synth_t* synth, int delay, int note_number, int velocity);
|
||||
|
||||
/**
|
||||
* @brief Send a high-precision on event to the synth.
|
||||
|
|
@ -351,7 +357,7 @@ SFIZZ_EXPORTED_API void sfizz_send_note_on(sfizz_synth_t* synth, int delay, int
|
|||
*
|
||||
* @param synth The synth.
|
||||
* @param delay The delay of the event in the block, in samples.
|
||||
* @param note_number The MIDI note number.
|
||||
* @param note_number The MIDI note number, in domain 0 to 127.
|
||||
* @param velocity The normalized MIDI velocity, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -372,13 +378,13 @@ SFIZZ_EXPORTED_API void sfizz_send_hd_note_on(sfizz_synth_t* synth, int delay, i
|
|||
*
|
||||
* @param synth The synth.
|
||||
* @param delay The delay of the event in the block, in samples.
|
||||
* @param note_number The MIDI note number.
|
||||
* @param velocity The MIDI velocity.
|
||||
* @param note_number The MIDI note number, in domain 0 to 127.
|
||||
* @param velocity The MIDI velocity, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
SFIZZ_EXPORTED_API void sfizz_send_note_off(sfizz_synth_t* synth, int delay, int note_number, char velocity);
|
||||
SFIZZ_EXPORTED_API void sfizz_send_note_off(sfizz_synth_t* synth, int delay, int note_number, int velocity);
|
||||
|
||||
/**
|
||||
* @brief Send a high-precision note off event to the synth.
|
||||
|
|
@ -393,7 +399,7 @@ SFIZZ_EXPORTED_API void sfizz_send_note_off(sfizz_synth_t* synth, int delay, int
|
|||
*
|
||||
* @param synth The synth.
|
||||
* @param delay The delay of the event in the block, in samples.
|
||||
* @param note_number The MIDI note number.
|
||||
* @param note_number The MIDI note number, in domain 0 to 127.
|
||||
* @param velocity The normalized MIDI velocity, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -411,13 +417,13 @@ SFIZZ_EXPORTED_API void sfizz_send_hd_note_off(sfizz_synth_t* synth, int delay,
|
|||
*
|
||||
* @param synth The synth.
|
||||
* @param delay The delay of the event in the block, in samples.
|
||||
* @param cc_number The MIDI CC number.
|
||||
* @param cc_value The MIDI CC value.
|
||||
* @param cc_number The MIDI CC number, in domain 0 to 127.
|
||||
* @param cc_value The MIDI CC value, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
SFIZZ_EXPORTED_API void sfizz_send_cc(sfizz_synth_t* synth, int delay, int cc_number, char cc_value);
|
||||
SFIZZ_EXPORTED_API void sfizz_send_cc(sfizz_synth_t* synth, int delay, int cc_number, int cc_value);
|
||||
|
||||
/**
|
||||
* @brief Send a high precision CC event to the synth.
|
||||
|
|
@ -429,7 +435,7 @@ SFIZZ_EXPORTED_API void sfizz_send_cc(sfizz_synth_t* synth, int delay, int cc_nu
|
|||
*
|
||||
* @param synth The synth.
|
||||
* @param delay The delay of the event in the block, in samples.
|
||||
* @param cc_number The MIDI CC number.
|
||||
* @param cc_number The MIDI CC number, in domain 0 to 127.
|
||||
* @param norm_value The normalized CC value, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -450,7 +456,7 @@ SFIZZ_EXPORTED_API void sfizz_send_hdcc(sfizz_synth_t* synth, int delay, int cc_
|
|||
*
|
||||
* @param synth The synth.
|
||||
* @param delay The delay of the event in the block, in samples.
|
||||
* @param cc_number The MIDI CC number.
|
||||
* @param cc_number The MIDI CC number, in domain 0 to 127.
|
||||
* @param norm_value The normalized CC value, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -503,12 +509,12 @@ SFIZZ_EXPORTED_API void sfizz_send_hd_pitch_wheel(sfizz_synth_t* synth, int dela
|
|||
* @param synth The synth.
|
||||
* @param delay The delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param aftertouch The aftertouch value.
|
||||
* @param aftertouch The aftertouch value, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
SFIZZ_EXPORTED_API void sfizz_send_aftertouch(sfizz_synth_t* synth, int delay, char aftertouch);
|
||||
SFIZZ_EXPORTED_API void sfizz_send_aftertouch(sfizz_synth_t* synth, int delay, int aftertouch);
|
||||
|
||||
/**
|
||||
* @brief Send a high-precision aftertouch event.
|
||||
|
|
@ -540,13 +546,13 @@ SFIZZ_EXPORTED_API void sfizz_send_hd_aftertouch(sfizz_synth_t* synth, int delay
|
|||
* @param synth The synth.
|
||||
* @param delay The delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param note_number The note number.
|
||||
* @param aftertouch The aftertouch value.
|
||||
* @param note_number The note number, in domain 0 to 127.
|
||||
* @param aftertouch The aftertouch value, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
SFIZZ_EXPORTED_API void sfizz_send_poly_aftertouch(sfizz_synth_t* synth, int delay, int note_number, char aftertouch);
|
||||
SFIZZ_EXPORTED_API void sfizz_send_poly_aftertouch(sfizz_synth_t* synth, int delay, int note_number, int aftertouch);
|
||||
|
||||
/**
|
||||
* @brief Send a high-precision polyphonic aftertouch event.
|
||||
|
|
@ -560,7 +566,7 @@ SFIZZ_EXPORTED_API void sfizz_send_poly_aftertouch(sfizz_synth_t* synth, int del
|
|||
* @param synth The synth.
|
||||
* @param delay The delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param note_number The note number.
|
||||
* @param note_number The note number, in domain 0 to 127.
|
||||
* @param aftertouch The normalized aftertouch value, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -584,7 +590,25 @@ SFIZZ_EXPORTED_API void sfizz_send_hd_poly_aftertouch(sfizz_synth_t* synth, int
|
|||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
SFIZZ_EXPORTED_API void sfizz_send_tempo(sfizz_synth_t* synth, int delay, float seconds_per_beat);
|
||||
SFIZZ_EXPORTED_API SFIZZ_DEPRECATED_API void sfizz_send_tempo(sfizz_synth_t* synth, int delay, float seconds_per_beat);
|
||||
|
||||
/**
|
||||
* @brief Send a tempo event.
|
||||
*
|
||||
* This command should be delay-ordered with all other time/signature commands, namely
|
||||
* tempo(), timeSignature(), timePosition(), and playbackState(), otherwise the behavior
|
||||
* of the synth is undefined.
|
||||
*
|
||||
* @since 0.6.0
|
||||
*
|
||||
* @param synth The synth.
|
||||
* @param delay The delay.
|
||||
* @param beats_per_minute The new tempo, in beats per minute.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
SFIZZ_EXPORTED_API void sfizz_send_bpm_tempo(sfizz_synth_t* synth, int delay, float beats_per_minute);
|
||||
|
||||
/**
|
||||
* @brief Send the time signature.
|
||||
|
|
|
|||
|
|
@ -26,6 +26,12 @@
|
|||
#define SFIZZ_EXPORTED_API
|
||||
#endif
|
||||
|
||||
#if defined _WIN32
|
||||
#define SFIZZ_DEPRECATED_API __declspec(deprecated)
|
||||
#else
|
||||
#define SFIZZ_DEPRECATED_API __attribute__ ((deprecated))
|
||||
#endif
|
||||
|
||||
struct sfizz_synth_t;
|
||||
|
||||
namespace sfz
|
||||
|
|
@ -375,13 +381,13 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param noteNumber the midi note number.
|
||||
* @param velocity the midi note velocity.
|
||||
* @param noteNumber the midi note number, in domain 0 to 127.
|
||||
* @param velocity the midi note velocity, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
void noteOn(int delay, int noteNumber, uint8_t velocity) noexcept;
|
||||
void noteOn(int delay, int noteNumber, int velocity) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Send a high-precision note on event to the synth.
|
||||
|
|
@ -393,7 +399,7 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param noteNumber the midi note number.
|
||||
* @param noteNumber the midi note number, in domain 0 to 127.
|
||||
* @param velocity the normalized midi note velocity, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -411,13 +417,13 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param noteNumber the midi note number.
|
||||
* @param velocity the midi note velocity.
|
||||
* @param noteNumber the midi note number, in domain 0 to 127.
|
||||
* @param velocity the midi note velocity, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
void noteOff(int delay, int noteNumber, uint8_t velocity) noexcept;
|
||||
void noteOff(int delay, int noteNumber, int velocity) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Send a note off event to the synth.
|
||||
|
|
@ -429,7 +435,7 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param noteNumber the midi note number.
|
||||
* @param noteNumber the midi note number, in domain 0 to 127.
|
||||
* @param velocity the normalized midi note velocity, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -447,13 +453,13 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param ccNumber the cc number.
|
||||
* @param ccValue the cc value.
|
||||
* @param ccNumber the cc number, in domain 0 to 127.
|
||||
* @param ccValue the cc value, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
void cc(int delay, int ccNumber, uint8_t ccValue) noexcept;
|
||||
void cc(int delay, int ccNumber, int ccValue) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Send a high precision CC event to the synth
|
||||
|
|
@ -465,7 +471,7 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param ccNumber the cc number.
|
||||
* @param ccNumber the cc number, in domain 0 to 127.
|
||||
* @param normValue the normalized cc value, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -487,7 +493,7 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param ccNumber the cc number.
|
||||
* @param ccNumber the cc number, in domain 0 to 127.
|
||||
* @param normValue the normalized cc value, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -542,12 +548,12 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param aftertouch the aftertouch value.
|
||||
* @param aftertouch the aftertouch value, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
void aftertouch(int delay, uint8_t aftertouch) noexcept;
|
||||
void aftertouch(int delay, int aftertouch) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Send a high-precision aftertouch event to the synth.
|
||||
|
|
@ -579,13 +585,13 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param noteNumber the note number.
|
||||
* @param aftertouch the aftertouch value.
|
||||
* @param noteNumber the note number, in domain 0 to 127.
|
||||
* @param aftertouch the aftertouch value, in domain 0 to 127.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
void polyAftertouch(int delay, int noteNumber, uint8_t aftertouch) noexcept;
|
||||
void polyAftertouch(int delay, int noteNumber, int aftertouch) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Send a high-precision polyphonic aftertouch event to the synth.
|
||||
|
|
@ -599,7 +605,7 @@ public:
|
|||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param noteNumber the note number.
|
||||
* @param noteNumber the note number, in domain 0 to 127.
|
||||
* @param aftertouch the normalized aftertouch value, in domain 0 to 1.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
|
|
@ -623,7 +629,25 @@ public:
|
|||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
void tempo(int delay, float secondsPerBeat) noexcept;
|
||||
SFIZZ_DEPRECATED_API void tempo(int delay, float secondsPerBeat) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Send a tempo event to the synth.
|
||||
*
|
||||
* This command should be delay-ordered with all other time/signature commands, namely
|
||||
* tempo(), timeSignature(), timePosition(), and playbackState(), otherwise the behavior
|
||||
* of the synth is undefined.
|
||||
*
|
||||
* @since 0.6.0
|
||||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower
|
||||
* than the size of the block in the next call to renderBlock().
|
||||
* @param beatsPerMinute the new tempo, in beats per minute.
|
||||
*
|
||||
* @par Thread-safety constraints
|
||||
* - @b RT: the function must be invoked from the Real-time thread
|
||||
*/
|
||||
void bpmTempo(int delay, float beatsPerMinute) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Send the time signature.
|
||||
|
|
@ -930,6 +954,16 @@ public:
|
|||
*/
|
||||
const std::vector<std::pair<uint16_t, std::string>>& getCCLabels() const noexcept;
|
||||
|
||||
/**
|
||||
* @brief Export a MIDI Name document describing the currently loaded SFZ file.
|
||||
* @since 0.6.0
|
||||
*
|
||||
* @param model The model name used if a non-empty string, otherwise generated.
|
||||
*
|
||||
* @return A XML string.
|
||||
*/
|
||||
std::string exportMidnam(const char* model);
|
||||
|
||||
/**
|
||||
* @addtogroup Messaging
|
||||
* @{
|
||||
|
|
|
|||
|
|
@ -1061,7 +1061,7 @@ void Synth::renderBlock(AudioSpan<float> buffer) noexcept
|
|||
SFIZZ_CHECK(isReasonableAudio(buffer.getConstSpan(1)));
|
||||
}
|
||||
|
||||
void Synth::noteOn(int delay, int noteNumber, uint8_t velocity) noexcept
|
||||
void Synth::noteOn(int delay, int noteNumber, int velocity) noexcept
|
||||
{
|
||||
const float normalizedVelocity = normalizeVelocity(velocity);
|
||||
hdNoteOn(delay, noteNumber, normalizedVelocity);
|
||||
|
|
@ -1077,7 +1077,7 @@ void Synth::hdNoteOn(int delay, int noteNumber, float normalizedVelocity) noexce
|
|||
impl.resources_.midiState.noteOnEvent(delay, noteNumber, normalizedVelocity);
|
||||
}
|
||||
|
||||
void Synth::noteOff(int delay, int noteNumber, uint8_t velocity) noexcept
|
||||
void Synth::noteOff(int delay, int noteNumber, int velocity) noexcept
|
||||
{
|
||||
const float normalizedVelocity = normalizeVelocity(velocity);
|
||||
hdNoteOff(delay, noteNumber, normalizedVelocity);
|
||||
|
|
@ -1221,7 +1221,7 @@ void Synth::Impl::startDelayedSostenutoReleases(Layer* layer, int delay, SisterV
|
|||
layer->delayedSostenutoReleases_.clear();
|
||||
}
|
||||
|
||||
void Synth::cc(int delay, int ccNumber, uint8_t ccValue) noexcept
|
||||
void Synth::cc(int delay, int ccNumber, int ccValue) noexcept
|
||||
{
|
||||
const auto normalizedCC = normalizeCC(ccValue);
|
||||
hdcc(delay, ccNumber, normalizedCC);
|
||||
|
|
@ -1345,7 +1345,7 @@ void Synth::hdPitchWheel(int delay, float normalizedPitch) noexcept
|
|||
impl.performHdcc(delay, ExtendedCCs::pitchBend, normalizedPitch, false);
|
||||
}
|
||||
|
||||
void Synth::aftertouch(int delay, uint8_t aftertouch) noexcept
|
||||
void Synth::aftertouch(int delay, int aftertouch) noexcept
|
||||
{
|
||||
const float normalizedAftertouch = normalize7Bits(aftertouch);
|
||||
hdAftertouch(delay, normalizedAftertouch);
|
||||
|
|
@ -1369,7 +1369,7 @@ void Synth::hdAftertouch(int delay, float normAftertouch) noexcept
|
|||
impl.performHdcc(delay, ExtendedCCs::channelAftertouch, normAftertouch, false);
|
||||
}
|
||||
|
||||
void Synth::polyAftertouch(int delay, int noteNumber, uint8_t aftertouch) noexcept
|
||||
void Synth::polyAftertouch(int delay, int noteNumber, int aftertouch) noexcept
|
||||
{
|
||||
const float normalizedAftertouch = normalize7Bits(aftertouch);
|
||||
hdPolyAftertouch(delay, noteNumber, normalizedAftertouch);
|
||||
|
|
@ -1397,6 +1397,12 @@ void Synth::tempo(int delay, float secondsPerBeat) noexcept
|
|||
impl.resources_.beatClock.setTempo(delay, secondsPerBeat);
|
||||
}
|
||||
|
||||
void Synth::bpmTempo(int delay, float beatsPerMinute) noexcept
|
||||
{
|
||||
// TODO make this the main tempo function and remove the deprecated other one
|
||||
return tempo(delay, 60 / beatsPerMinute);
|
||||
}
|
||||
|
||||
void Synth::timeSignature(int delay, int beatsPerBar, int beatUnit)
|
||||
{
|
||||
Impl& impl = *impl_;
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ public:
|
|||
* @param noteNumber the midi note number
|
||||
* @param velocity the midi note velocity
|
||||
*/
|
||||
void noteOn(int delay, int noteNumber, uint8_t velocity) noexcept;
|
||||
void noteOn(int delay, int noteNumber, int velocity) noexcept;
|
||||
/**
|
||||
* @brief Send a high-precision note on event to the synth
|
||||
*
|
||||
|
|
@ -370,7 +370,7 @@ public:
|
|||
* @param noteNumber the midi note number
|
||||
* @param velocity the midi note velocity
|
||||
*/
|
||||
void noteOff(int delay, int noteNumber, uint8_t velocity) noexcept;
|
||||
void noteOff(int delay, int noteNumber, int velocity) noexcept;
|
||||
/**
|
||||
* @brief Send a high-precision note off event to the synth
|
||||
*
|
||||
|
|
@ -388,7 +388,7 @@ public:
|
|||
* @param ccNumber the cc number
|
||||
* @param ccValue the cc value
|
||||
*/
|
||||
void cc(int delay, int ccNumber, uint8_t ccValue) noexcept;
|
||||
void cc(int delay, int ccNumber, int ccValue) noexcept;
|
||||
/**
|
||||
* @brief Send a high precision CC event to the synth
|
||||
*
|
||||
|
|
@ -446,7 +446,7 @@ public:
|
|||
* the block in the next call to renderBlock().
|
||||
* @param aftertouch the aftertouch value
|
||||
*/
|
||||
void aftertouch(int delay, uint8_t aftertouch) noexcept;
|
||||
void aftertouch(int delay, int aftertouch) noexcept;
|
||||
/**
|
||||
* @brief Send a high precision aftertouch event to the synth
|
||||
*
|
||||
|
|
@ -464,6 +464,15 @@ public:
|
|||
* @param secondsPerQuarter the new period of the quarter note
|
||||
*/
|
||||
void tempo(int delay, float secondsPerQuarter) noexcept;
|
||||
/**
|
||||
* @brief Send a tempo event to the synth
|
||||
*
|
||||
* @param delay the delay at which the event occurs; this should be lower than the size of
|
||||
* the block in the next call to renderBlock(), and ordered with respect to
|
||||
* calls to tempo(), timeSignature(), timePosition(), and playbackState().
|
||||
* @param beatsPerMinute the new tempo, in beats per minute
|
||||
*/
|
||||
void bpmTempo(int delay, float beatsPerMinute) noexcept;
|
||||
/**
|
||||
* @brief Send a polyphonic aftertouch event to the synth
|
||||
*
|
||||
|
|
@ -471,7 +480,7 @@ public:
|
|||
* @param noteNumber
|
||||
* @param normAftertouch
|
||||
*/
|
||||
void polyAftertouch(int delay, int noteNumber, uint8_t aftertouch) noexcept;
|
||||
void polyAftertouch(int delay, int noteNumber, int aftertouch) noexcept;
|
||||
/**
|
||||
* @brief Send a polyphonic aftertouch event to the synth
|
||||
*
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ void sfz::Sfizz::setVolume(float volume) noexcept
|
|||
synth->synth.setVolume(volume);
|
||||
}
|
||||
|
||||
void sfz::Sfizz::noteOn(int delay, int noteNumber, uint8_t velocity) noexcept
|
||||
void sfz::Sfizz::noteOn(int delay, int noteNumber, int velocity) noexcept
|
||||
{
|
||||
synth->synth.noteOn(delay, noteNumber, velocity);
|
||||
}
|
||||
|
|
@ -170,7 +170,7 @@ void sfz::Sfizz::hdNoteOn(int delay, int noteNumber, float velocity) noexcept
|
|||
synth->synth.hdNoteOn(delay, noteNumber, velocity);
|
||||
}
|
||||
|
||||
void sfz::Sfizz::noteOff(int delay, int noteNumber, uint8_t velocity) noexcept
|
||||
void sfz::Sfizz::noteOff(int delay, int noteNumber, int velocity) noexcept
|
||||
{
|
||||
synth->synth.noteOff(delay, noteNumber, velocity);
|
||||
}
|
||||
|
|
@ -180,7 +180,7 @@ void sfz::Sfizz::hdNoteOff(int delay, int noteNumber, float velocity) noexcept
|
|||
synth->synth.hdNoteOff(delay, noteNumber, velocity);
|
||||
}
|
||||
|
||||
void sfz::Sfizz::cc(int delay, int ccNumber, uint8_t ccValue) noexcept
|
||||
void sfz::Sfizz::cc(int delay, int ccNumber, int ccValue) noexcept
|
||||
{
|
||||
synth->synth.cc(delay, ccNumber, ccValue);
|
||||
}
|
||||
|
|
@ -205,7 +205,7 @@ void sfz::Sfizz::hdPitchWheel(int delay, float pitch) noexcept
|
|||
synth->synth.hdPitchWheel(delay, pitch);
|
||||
}
|
||||
|
||||
void sfz::Sfizz::aftertouch(int delay, uint8_t aftertouch) noexcept
|
||||
void sfz::Sfizz::aftertouch(int delay, int aftertouch) noexcept
|
||||
{
|
||||
synth->synth.aftertouch(delay, aftertouch);
|
||||
}
|
||||
|
|
@ -215,7 +215,7 @@ void sfz::Sfizz::hdAftertouch(int delay, float aftertouch) noexcept
|
|||
synth->synth.hdAftertouch(delay, aftertouch);
|
||||
}
|
||||
|
||||
void sfz::Sfizz::polyAftertouch(int delay, int noteNumber, uint8_t aftertouch) noexcept
|
||||
void sfz::Sfizz::polyAftertouch(int delay, int noteNumber, int aftertouch) noexcept
|
||||
{
|
||||
synth->synth.polyAftertouch(delay, noteNumber, aftertouch);
|
||||
}
|
||||
|
|
@ -230,6 +230,11 @@ void sfz::Sfizz::tempo(int delay, float secondsPerBeat) noexcept
|
|||
synth->synth.tempo(delay, secondsPerBeat);
|
||||
}
|
||||
|
||||
void sfz::Sfizz::bpmTempo(int delay, float beatsPerMinute) noexcept
|
||||
{
|
||||
synth->synth.bpmTempo(delay, beatsPerMinute);
|
||||
}
|
||||
|
||||
void sfz::Sfizz::timeSignature(int delay, int beatsPerBar, int beatUnit)
|
||||
{
|
||||
synth->synth.timeSignature(delay, beatsPerBar, beatUnit);
|
||||
|
|
@ -351,6 +356,11 @@ void sfz::Sfizz::clearExternalDefinitions()
|
|||
synth->synth.getParser().clearExternalDefinitions();
|
||||
}
|
||||
|
||||
std::string sfz::Sfizz::exportMidnam(const char* model)
|
||||
{
|
||||
return synth->synth.exportMidnam(model);
|
||||
}
|
||||
|
||||
const std::vector<std::pair<uint8_t, std::string>>& sfz::Sfizz::getKeyLabels() const noexcept
|
||||
{
|
||||
return synth->synth.getKeyLabels();
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ void sfizz_set_sample_rate(sfizz_synth_t* synth, float sample_rate)
|
|||
synth->synth.setSampleRate(sample_rate);
|
||||
}
|
||||
|
||||
void sfizz_send_note_on(sfizz_synth_t* synth, int delay, int note_number, char velocity)
|
||||
void sfizz_send_note_on(sfizz_synth_t* synth, int delay, int note_number, int velocity)
|
||||
{
|
||||
synth->synth.noteOn(delay, note_number, velocity);
|
||||
}
|
||||
|
|
@ -122,7 +122,7 @@ void sfizz_send_hd_note_on(sfizz_synth_t* synth, int delay, int note_number, flo
|
|||
{
|
||||
synth->synth.hdNoteOn(delay, note_number, velocity);
|
||||
}
|
||||
void sfizz_send_note_off(sfizz_synth_t* synth, int delay, int note_number, char velocity)
|
||||
void sfizz_send_note_off(sfizz_synth_t* synth, int delay, int note_number, int velocity)
|
||||
{
|
||||
synth->synth.noteOff(delay, note_number, velocity);
|
||||
}
|
||||
|
|
@ -130,7 +130,7 @@ void sfizz_send_hd_note_off(sfizz_synth_t* synth, int delay, int note_number, fl
|
|||
{
|
||||
synth->synth.hdNoteOff(delay, note_number, velocity);
|
||||
}
|
||||
void sfizz_send_cc(sfizz_synth_t* synth, int delay, int cc_number, char cc_value)
|
||||
void sfizz_send_cc(sfizz_synth_t* synth, int delay, int cc_number, int cc_value)
|
||||
{
|
||||
synth->synth.cc(delay, cc_number, cc_value);
|
||||
}
|
||||
|
|
@ -150,7 +150,7 @@ void sfizz_send_hd_pitch_wheel(sfizz_synth_t* synth, int delay, float pitch)
|
|||
{
|
||||
synth->synth.hdPitchWheel(delay, pitch);
|
||||
}
|
||||
void sfizz_send_aftertouch(sfizz_synth_t* synth, int delay, char aftertouch)
|
||||
void sfizz_send_aftertouch(sfizz_synth_t* synth, int delay, int aftertouch)
|
||||
{
|
||||
synth->synth.aftertouch(delay, aftertouch);
|
||||
}
|
||||
|
|
@ -158,7 +158,7 @@ void sfizz_send_hd_aftertouch(sfizz_synth_t* synth, int delay, float aftertouch)
|
|||
{
|
||||
synth->synth.hdAftertouch(delay, aftertouch);
|
||||
}
|
||||
void sfizz_send_poly_aftertouch(sfizz_synth_t* synth, int delay, int note_number, char aftertouch)
|
||||
void sfizz_send_poly_aftertouch(sfizz_synth_t* synth, int delay, int note_number, int aftertouch)
|
||||
{
|
||||
synth->synth.polyAftertouch(delay, note_number, aftertouch);
|
||||
}
|
||||
|
|
@ -170,6 +170,10 @@ void sfizz_send_tempo(sfizz_synth_t* synth, int delay, float seconds_per_quarter
|
|||
{
|
||||
synth->synth.tempo(delay, seconds_per_quarter);
|
||||
}
|
||||
void sfizz_send_bpm_tempo(sfizz_synth_t* synth, int delay, float beats_per_minute)
|
||||
{
|
||||
synth->synth.bpmTempo(delay, beats_per_minute);
|
||||
}
|
||||
void sfizz_send_time_signature(sfizz_synth_t* synth, int delay, int beats_per_bar, int beat_unit)
|
||||
{
|
||||
synth->synth.timeSignature(delay, beats_per_bar, beat_unit);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue