Holger Wirtz 2 years ago
parent b35ec52405
commit ebde14e11d
  1. 10
      UI.hpp
  2. 2
      config.h
  3. 148
      third-party/TeensyVariablePlayback/src/playresmp.h

@ -6778,7 +6778,10 @@ void display_bar_float(const char* title, float value, float factor, int32_t min
// Value
display.setCursor(LCD_cols - size, 1);
display_float(value * factor, size_number, size_fraction, zeros, false, sign); // TBD
//display_float(value * factor, size_number, size_fraction, zeros, false, sign); // does not work with "Smallest code" optimizer
char s[LCD_cols + 1];
snprintf_P(s, strlen(s), PSTR("%+1.1f"), value * factor); // not so good solution, but works with optimizer
display.print(s);
// Bar
display.setCursor(0, 1);
@ -6833,7 +6836,10 @@ void display_meter_float(const char* title, float value, float factor, float off
// Value
display.setCursor(LCD_cols - size, 1);
display_float((value + offset) * factor, size_number, size_fraction, zeros, false, sign);
//display_float((value + offset) * factor, size_number, size_fraction, zeros, false, sign); // does not work with "Smallest code" optimizer
char s[LCD_cols + 1];
snprintf_P(s, strlen(s), PSTR("%+1.1f"), (value + offset) * factor); // not so good solution, but works with optimizer
display.print(s);
// Bar
display.setCursor(0, 1);

@ -53,6 +53,8 @@
// sed -i.orig 's/^#define USB_MIDI_SYSEX_MAX 290/#define USB_MIDI_SYSEX_MAX 4104/' /usr/local/arduino-teensy/hardware/teensy/avr/cores/teensy3/usb_midi.h
// sed -i.orig 's/^#define USB_MIDI_SYSEX_MAX 290/#define USB_MIDI_SYSEX_MAX 4104/' /usr/local/arduino-teensy/hardware/teensy/avr/cores/teensy4/usb_midi.h
//#define USB_MIDI_SYSEX_MAX 4104
//
// Information about memory layout, etc.: https://www.pjrc.com/store/teensy41.html
#define VERSION "1.2.3"

@ -8,90 +8,90 @@
template <class TResamplingReader>
class AudioPlayResmp : public AudioStream
{
public:
AudioPlayResmp(): AudioStream(0, NULL), reader(nullptr)
{
}
public:
AudioPlayResmp(): AudioStream(0, NULL), reader(nullptr)
{
}
virtual ~AudioPlayResmp() {
}
virtual ~AudioPlayResmp() {
}
void begin(void)
{
reader->begin();
}
void begin(void)
{
reader->begin();
}
bool playRaw(const char *filename, uint16_t numChannels)
{
stop();
return reader->play(filename, false, numChannels);
}
bool playRaw(const char *filename, uint16_t numChannels)
{
stop();
return reader->play(filename, false, numChannels);
}
bool playWav(const char *filename)
{
stop();
return reader->play(filename, true, 0);
}
bool playWav(const char *filename)
{
stop();
return reader->play(filename, true, 0);
}
bool playRaw(int16_t *data, uint32_t numSamples, uint16_t numChannels)
{
stop();
return reader->playRaw(data, numSamples, numChannels);
}
bool playRaw(int16_t *data, uint32_t numSamples, uint16_t numChannels)
{
stop();
return reader->playRaw(data, numSamples, numChannels);
}
bool playRaw(const unsigned int *data, uint32_t numSamples, uint16_t numChannels)
{
return playRaw((int16_t *) data, numSamples, numChannels);
}
bool playRaw(const unsigned int *data, uint32_t numSamples, uint16_t numChannels)
{
return playRaw((int16_t *) data, numSamples, numChannels);
}
bool playWav(int16_t *data, uint32_t fileSize)
{
stop();
return reader->playWav(data, fileSize);
}
bool playWav(int16_t *data, uint32_t fileSize)
{
stop();
return reader->playWav(data, fileSize);
}
bool playWav(const unsigned int *data, uint32_t fileSize) {
return playWav((int16_t *) data, fileSize);
}
void setPlaybackRate(float f) {
reader->setPlaybackRate(f);
}
void setLoopType(loop_type t) {
reader->setLoopType(t);
}
void setLoopStart(uint32_t loop_start) {
reader->setLoopStart(loop_start);
}
void setLoopFinish(uint32_t loop_finish) {
reader->setLoopFinish(loop_finish);
}
void enableInterpolation(bool enable) {
if (enable)
reader->setInterpolationType(ResampleInterpolationType::resampleinterpolation_quadratic);
else
reader->setInterpolationType(ResampleInterpolationType::resampleinterpolation_none);
}
bool isPlaying(void) {
return reader->isPlaying();
};
bool playWav(const unsigned int *data, uint32_t fileSize) {
return playWav((int16_t *) data, fileSize);
}
void stop() {
reader->stop();
}
void setPlaybackRate(float f) {
reader->setPlaybackRate(f);
}
void update()
{
int _numChannels = reader->getNumChannels();
if (_numChannels == -1)
return;
void setLoopType(loop_type t) {
reader->setLoopType(t);
}
void setLoopStart(uint32_t loop_start) {
reader->setLoopStart(loop_start);
}
void setLoopFinish(uint32_t loop_finish) {
reader->setLoopFinish(loop_finish);
}
void enableInterpolation(bool enable) {
if (enable)
reader->setInterpolationType(ResampleInterpolationType::resampleinterpolation_quadratic);
else
reader->setInterpolationType(ResampleInterpolationType::resampleinterpolation_none);
}
bool isPlaying(void) {
return reader->isPlaying();
};
void stop() {
reader->stop();
}
void update()
{
int _numChannels = reader->getNumChannels();
if (_numChannels == -1)
return;
unsigned int n;
unsigned int n;
audio_block_t *blocks[_numChannels];
int16_t *data[_numChannels];
// only update if we're playing

Loading…
Cancel
Save