Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
0d97c21
use math constant
Jan 28, 2022
466bca8
added NO_INTERPOLATION option
Jan 28, 2022
0fb63b3
updated WavetableOscillator
Jan 28, 2022
97604ca
added Welch and Sine windows
Jan 28, 2022
ef81550
check that channels and samples are not zero
Feb 2, 2022
db5c602
updated to CMSIS V5
Feb 2, 2022
5789449
updated DaisySP version
Feb 2, 2022
1a6d0cf
updated daisy lib
Feb 2, 2022
c5c00b5
split out some daisysp build options to separate makefile
Feb 2, 2022
4f22732
Merge branch 'feature/cmsis-update' into feature/wip
Feb 3, 2022
d7a6b18
add header guards
Feb 22, 2022
f816d01
add header guards
Feb 22, 2022
df40311
added note
Feb 22, 2022
18ea1be
removed ShortFastFourierTransform. added InterpolatingSignalGenerator.
Feb 22, 2022
6dac52e
added EnvelopeFollower (rectified smoothing filter)
Feb 23, 2022
48bd60e
added InterpolatingSignalGenerator
Feb 23, 2022
e9e0ae0
added SimpleValue base class for Smooth/Stiff/Scaled values
Feb 23, 2022
dfda464
added MovingAverage (exponential and simple)
Feb 23, 2022
fc9ce70
deprecating Patch::getFloat/IntParameter()
Feb 23, 2022
41829bc
use new Smooth/Stiff value classes
Feb 23, 2022
b54adc9
include new classes
Feb 23, 2022
43d3237
correct doc
Feb 23, 2022
3e23488
write history
Feb 23, 2022
e63e525
added missing assignment operators
Feb 24, 2022
74441c7
added missing assignment operators
Feb 24, 2022
a927fcf
fixes and tests for MovingAverage
Feb 24, 2022
48f00d9
fixes and tests for MovingAverage
Feb 24, 2022
0fed7f0
fixes and tests for MovingAverage
Feb 24, 2022
fadb390
Added TakeoverValue. Updated SimpleValue with static const defaults
Feb 24, 2022
38448cc
adding tests and fixing constants for Smooth/SimpleValue
Feb 28, 2022
a3568d2
partial fixes to Up/Downsampler
Mar 14, 2022
d11beec
speed up FirmwareSender and don't delete deep object files in Libraries
Mar 14, 2022
54e5c27
replace _eram with _estack synonym
Mar 14, 2022
b3334fc
clean up link files
Mar 14, 2022
8495e49
limited size patch name
Mar 14, 2022
78a1dfd
removed unwanted aligns
Mar 19, 2022
f29f4c8
use mydsp::create/destroy
Apr 10, 2022
721d005
ensure getContiguousReadCapacity() works at boundary
Apr 10, 2022
3341f66
implement ScreenPatch::getScreenWidth()/getScreenHeight() (with hardc…
Apr 10, 2022
d3d5723
added doc comment
Apr 10, 2022
0128e89
added assertion
Apr 10, 2022
3eadf2d
added MovingAverage::process(FloatArray input) methods and reference …
Apr 10, 2022
41be691
added InterpolatingWavetableOscillator
Apr 10, 2022
5982fee
defs
Apr 10, 2022
11ad67c
history
Apr 10, 2022
7e60470
removed duplicate
Apr 10, 2022
2926a6a
added ~GenParameterBase() destructor and fixed signed warnings in for…
pingdynasty Jun 11, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
256 changes: 0 additions & 256 deletions FaustCode/WaveReader.h

This file was deleted.

7 changes: 3 additions & 4 deletions FaustSource/owl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -989,21 +989,20 @@ struct OwlMemoryManager : public dsp_memory_manager {
// fDSP->buildUserInterface(&fUI);

fBend = 1.0f;
fDSP = new mydsp();
mydsp::fManager = &mem; // set custom memory manager
fDSP = mydsp::create();
fDSP->metadata(&fUI.meta);
if (fUI.meta.message != NULL)
debugMessage(fUI.meta.message);
fUI.addVOct();

mydsp::fManager = &mem; // set custom memory manager
mydsp::classInit(int(getSampleRate())); // initialise static tables
fDSP->instanceInit(int(getSampleRate())); // initialise DSP instance
fDSP->buildUserInterface(&fUI); // Map OWL parameters
}

~FaustPatch() {
delete fDSP;
// mem.destroy(fDSP);
mydsp::destroy(fDSP);
// DSP static data is destroyed using classDestroy.
mydsp::classDestroy();
}
Expand Down
9 changes: 5 additions & 4 deletions GenSource/GenPatch.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ class MonoVoiceAllocator {

class GenParameterBase {
public:
~GenParameterBase(){}
virtual void update(Patch* patch, CommonState *context){}
};

Expand Down Expand Up @@ -272,10 +273,10 @@ class GenPatch : public Patch {

~GenPatch() {
gen::destroy(context);
for(int i=0; i<param_count; ++i)
for(size_t i=0; i<param_count; ++i)
delete params[i];
delete[] params;
for(int i=getNumberOfChannels(); i<gen::num_outputs(); ++i)
for(size_t i=getNumberOfChannels(); i<gen::num_outputs(); ++i)
delete[] buffers[i];
delete[] buffers;
delete[] outputs.getData();
Expand All @@ -286,14 +287,14 @@ class GenPatch : public Patch {
}

void processAudio(AudioBuffer &buffer) {
for(int i=0; i<param_count; ++i)
for(size_t i=0; i<param_count; ++i)
params[i]->update(this, context);
size_t channels = buffer.getChannels();
size_t ch;
for(ch=0; ch<channels; ++ch)
buffers[ch] = buffer.getSamples(ch);
gen::perform(context, buffers, channels, buffers, gen::num_outputs(), buffer.getSize());
for(int i=0; i<outputs.getSize(); ++i){
for(size_t i=0; i<outputs.getSize(); ++i){
if(outputs[i].id > 0x100){
float maxvalue = outputs[i].buffer.getMaxValue();
setButton((PatchButtonId)(outputs[i].id-0x100), maxvalue > 0.5);
Expand Down
10 changes: 10 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
* Added InterpolatingWavetableOscillator
* Added MovingAverage::process(FloatArray) and ::getAverage()
* Added TakeoverValue
* Added EnvelopeFollower
* Added ExponentialMovingAverage and SimpleMovingAverage
* Added KaiserWindow (from the Loris C++ Class Library)
* Added LinearValue, ExponentialValue and LogarithmicValue
* Refactored Smooth and StiffValue
* Added InterpolatingSignalGenerator

v22.2
-----

Expand Down
2 changes: 1 addition & 1 deletion LibSource/BiquadFilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class FilterStage {
FloatArray state;
static constexpr float BESSEL_Q = 0.57735026919f; // 1/sqrt(3)
static constexpr float SALLEN_KEY_Q = 0.5f; // 1/2
static constexpr float BUTTERWORTH_Q = 0.70710678118f; // 1/sqrt(2)
static constexpr float BUTTERWORTH_Q = M_SQRT1_2; // 1/sqrt(2)

FilterStage(FloatArray co, FloatArray st) : coefficients(co), state(st){}

Expand Down
6 changes: 3 additions & 3 deletions LibSource/CircularBuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -201,10 +201,10 @@ class CircularBuffer {
}

IndexType getContiguousReadCapacity() const {
if(writepos < readpos)
return size - readpos;
else
if(writepos > readpos)
return writepos - readpos;
else
return size - readpos;
}

void setAll(const DataType value){
Expand Down
7 changes: 7 additions & 0 deletions LibSource/ColourScreenPatch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ ColourScreenPatch::ColourScreenPatch(){

ColourScreenPatch::~ColourScreenPatch(){}

uint16_t ColourScreenPatch::getScreenWidth(){
return 64;
}
uint16_t ColourScreenPatch::getScreenHeight(){
return 64;
}

template<>
Colour ColourScreenBuffer::getPixel(unsigned int x, unsigned int y){
if(x >= width || y >= height)
Expand Down
5 changes: 5 additions & 0 deletions LibSource/ColourScreenPatch.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
#ifndef __ColourScreenPatch_h__
#define __ColourScreenPatch_h__

#include "Patch.h"
#include "ScreenBuffer.h"

Expand Down Expand Up @@ -26,3 +29,5 @@ class ColourScreenPatch : public Patch {
uint16_t getScreenHeight();
virtual void processScreen(ColourScreenBuffer& screen) = 0;
};

#endif // __ColourScreenPatch_h__
Loading