Skip to content

Conversation

@weefuzzy
Copy link
Member

resolves #22

Checked in SC and Max. SC tests pass.

In the interests of simplicity in already complex code, the current implementation updates its input and output buffers by block copying the old buffer content to its new positions. This introduces a great deal of overhead, which grows markedly as minLengthAbove / minLengthBelow get bigger, and pegs out at 100% CPU for reasonable-seeming values.

Rather than copying the data around, here I instead do the conventional ring buffer thing of moving read / write heads through the buffers. The downside, obviously, is that operations that were previously on contiguous ranges now sometimes have to be split into two operations, where the range crosses the edges of the buffer. This adds complexity / decreases clarity. On the upside, it means that performance no longer degrades steeply when using these attributes.

I've done everything inline here in the name of applying the minimal changes needed to fix the problem and pass tests. However, happy to go off and consider if there's a way of hiding some of this complexity away so that the intention of the algorithm code can remain clear(er). The three main horrible bits are refineStart (where the search for the next minimum may have to be spread over two separate reads of the input buffer), and the two blocks in processSample that set ranges of the outputBuffer.

Much better performance than performing block copies every input sample
@weefuzzy weefuzzy self-assigned this Aug 13, 2021
@weefuzzy weefuzzy requested review from g-roma and tremblap August 13, 2021 12:42
@tremblap
Copy link
Member

tremblap commented Aug 24, 2021

Example code below goes from 65% to 0.6% in SC, nice one!

b = Buffer.read(s,File.realpath(FluidAmpGate.class.filenameSymbol).dirname.withTrailingSlash ++ "../AudioFiles/Nicol-LoopE-M.wav");

(
{var env, source = PlayBuf.ar(1,b,loop: 1);
    env = FluidAmpGate.ar(source, rampUp:441, rampDown:2205, onThreshold:-27, offThreshold: -31, minSilenceLength:4410, lookBack:441, highPassFreq:20, lookAhead: 22050);
    DelayN.ar(source,delaytime:22050/44100)*env;
}.play;
)

@tremblap
Copy link
Member

I would merge now, but I have sent a compiled version to the bug reporter to see if it works for him.

@tremblap
Copy link
Member

tremblap commented Aug 24, 2021

As I was playing with it, I have found a crash:

Process: Max [13832]

Path: /Applications/Max.app/Contents/MacOS/Max
Identifier: com.cycling74.Max
Version: 8.1.11 [17de540] (8.1.11)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Max [13832]
User ID: 504

Date/Time: 2021-08-24 10:05:37.843 -0400
OS Version: Mac OS X 10.15.7 (19H1323)
Report Version: 12
Bridge OS Version: 5.5 (18P4759a)
Anonymous UUID: 5D2CB51D-2D55-1359-9253-752F9C7BCF74

Sleep/Wake UUID: 16B6A978-4D87-4036-A1F9-CE12632FD321

Time Awake Since Boot: 32000 seconds
Time Since Wake: 3700 seconds

System Integrity Protection: enabled

Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
abort() called
Max(13832,0x108fbadc0) malloc: *** error for object 0xc02a000000000000: pointer being freed was not allocated

Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff6deaa33a __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff6df66e60 pthread_kill + 430
2 libsystem_c.dylib 0x00007fff6de31808 abort + 120
3 libsystem_malloc.dylib 0x00007fff6df2750b malloc_vreport + 548
4 libsystem_malloc.dylib 0x00007fff6df2a40f malloc_report + 151
5 org.flucoma.fluid.ampgate- 0x0000000141233594 fluid::client::FluidMaxWrapper<fluid::client::ClientWrapperfluid::client::ampgate::AmpGateClient >::~FluidMaxWrapper() + 52
6 com.cycling74.Max 0x000000010472faa9 freeobject + 108
7 com.cycling74.Max 0x00000001048cceac jnewobj_free + 26
8 com.cycling74.Max 0x000000010472faa9 freeobject + 108
9 com.cycling74.Max 0x00000001047fe674 object_free + 27
10 com.cycling74.Max 0x00000001048de8b2 jpatcher_free + 326
11 com.cycling74.Max 0x000000010472faa9 freeobject + 108
12 com.cycling74.Max 0x00000001048cceac jnewobj_free + 26
13 com.cycling74.Max 0x000000010472faa9 freeobject + 108
14 com.cycling74.Max 0x00000001047fe674 object_free + 27
15 com.cycling74.Max 0x00000001048de8b2 jpatcher_free + 326
16 com.cycling74.Max 0x000000010472faa9 freeobject + 108
17 com.cycling74.Max 0x00000001047fe674 object_free + 27
18 com.cycling74.Max 0x00000001047fddcb object_method_imp + 340
19 com.cycling74.Max 0x00000001049120f4 jwind_close + 1122
20 com.cycling74.Max 0x0000000104800b6d object_method_typedfun + 75
21 com.cycling74.Max 0x00000001048c78df jmenuitem_process + 553
22 com.cycling74.Max 0x00000001048c76a8 jmenu_command_process + 71
23 com.cycling74.Max 0x00000001048c764a jmenu_process + 99
24 com.cycling74.Max 0x000000010482ce24 interface_process + 11
25 com.cycling74.Max 0x0000000104f58ea0 juce::MessageManager::AsyncCallInvoker<juce::JuceMainMenuHandler::invoke(juce::PopupMenu::Item const&, int) const::'lambda'()>::messageCallback() + 96
26 com.cycling74.Max 0x0000000104e49312 juce::MessageQueue::runLoopSourceCallback(void*) + 242
27 com.apple.CoreFoundation 0x00007fff33ca27e2 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
28 com.apple.CoreFoundation 0x00007fff33ca2781 __CFRunLoopDoSource0 + 103
29 com.apple.CoreFoundation 0x00007fff33ca259b __CFRunLoopDoSources0 + 209
30 com.apple.CoreFoundation 0x00007fff33ca12ca __CFRunLoopRun + 927
31 com.apple.CoreFoundation 0x00007fff33ca08ce CFRunLoopRunSpecific + 462
32 com.apple.HIToolbox 0x00007fff328ccabd RunCurrentEventLoopInMode + 292
33 com.apple.HIToolbox 0x00007fff328cc6f4 ReceiveNextEventCommon + 359
34 com.apple.HIToolbox 0x00007fff328cc579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
35 com.apple.AppKit 0x00007fff30f13739 _DPSNextEvent + 883
36 com.apple.AppKit 0x00007fff30f11f80 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
37 com.apple.AppKit 0x00007fff30f03c8e -[NSApplication run] + 658
38 org.chromium.ContentShell.framework 0x000000010c0faa0c cef_time_delta + 2877996
39 org.chromium.ContentShell.framework 0x000000010c0f97d3 cef_time_delta + 2873331
40 org.chromium.ContentShell.framework 0x000000010c0b6f7a cef_time_delta + 2600858
41 org.chromium.ContentShell.framework 0x000000010c088f1e cef_time_delta + 2412350
42 org.chromium.ContentShell.framework 0x000000010bdb5d33 ChromeAppModeStart_v6 + 6537459
43 com.cycling74.Max 0x0000000104a71b0e MaxCefEventLoopHandler::runMessageLoop() + 18
44 com.cycling74.Max 0x0000000104e4a3b5 juce::JUCEApplicationBase::main(int, char const**) + 245
45 libdyld.dylib 0x00007fff6dd62cc9 start + 1

@AlexHarker
Copy link
Contributor

I just took a quick look at this with PA and I'm wondering if you should be assuming (as it appears you might) that mDumpDictionary is nullptr in FluidMaxWrapper without explicitly initialising it.

~FluidMaxWrapper (which is crashing above) calls object_free on mDumpDictionary. The code of FluidMaxWrapper test mDumpDictionary to see if it is nullptr in a couple of places, but it's not initialised in the constructor - is that a safe assumption?

@weefuzzy
Copy link
Member Author

The code of FluidMaxWrapper test mDumpDictionary to see if it is nullptr in a couple of places, but it's not initialised in the constructor - is that a safe assumption?

It isn't a safe assumption, no 😬 I'll fix it, but on its own topic, unless it seems intimately related to this in some way.

@tremblap
Copy link
Member

he was looking at me trying to compile - reparing the cmake changes - and he looked inspired so maybe it is linked

@weefuzzy
Copy link
Member Author

No, I think these are three separate things

@AlexHarker
Copy link
Contributor

AlexHarker commented Sep 14, 2021 via email

@tremblap
Copy link
Member

as I cannot compile anymore, I cannot tell you. I will see how far back I have to undo the cmake changes to be able to compile, then I'll try to reproduce this bug, and maybe you'll have a fix by then on that other dict issue.

@tremblap
Copy link
Member

ok I am now back in compile land - I'll try to reproduce the crash by deleting the object as it happened the first time round. If either of you think that fixing the pointer issue is trivial I can try with this too.

@AlexHarker
Copy link
Contributor

Fixing the pointer issue (if that is the culprit) is trivial - it just needs setting to nullptr inline or in the constructor.

@weefuzzy
Copy link
Member Author

I already have the change locally. Was holding off until JB had finished fixing main 😆

@tremblap
Copy link
Member

I really cannot reproduce - creating deleting objects with huge memory, running, not running, no luck

@weefuzzy
Copy link
Member Author

No worries. The change @AlexHarker pointed to needs making anyway and it's trivial, as he says.

@AlexHarker
Copy link
Contributor

I can suggest a non-trivial test for that change to see if it is likely to have an effect in the wild, should that be of interest.

@weefuzzy
Copy link
Member Author

By all means. Let's take it off this PR though 😁

@tremblap
Copy link
Member

send along in an email so I can test and accept this PR after the fact

@tremblap
Copy link
Member

please, if you can, and it is not too time consumming.

@tremblap
Copy link
Member

This is working perfectly, merging pre-release

@tremblap tremblap closed this Sep 15, 2021
@tremblap tremblap reopened this Sep 15, 2021
@tremblap tremblap merged commit 93d5c6c into flucoma:main Sep 15, 2021
@weefuzzy weefuzzy deleted the perf/AmpGateRingBuffer branch November 4, 2021 16:47
tremblap added a commit that referenced this pull request Jan 24, 2022
* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy
jamesb93 pushed a commit that referenced this pull request Feb 16, 2022
* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: weefuzzy <gungwho@gmail.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>
weefuzzy added a commit that referenced this pull request Mar 30, 2022
* Add pointwise inversion to PCA

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

Co-authored-by: Owen Green <gungwho@gmail.com>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: James Bradbury <me@jamesbradbury.net>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>
weefuzzy added a commit that referenced this pull request Apr 1, 2022
* Add pointwise inversion to PCA

* Use `operator<<=` for copy to / from FluidTensorView

* update all instances of FluidTensorView copying

* Signals.cpp.in fix lingering copy assignment

* Add conventional, shallow copy / move assignment to FluidTensorView

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* [Release] 1.0.0-beta5 (#102)

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: weefuzzy <gungwho@gmail.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

* [Release] 1.0.0-beta6 (#126)

* Add pointwise inversion to PCA

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

Co-authored-by: Owen Green <gungwho@gmail.com>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: James Bradbury <me@jamesbradbury.net>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>

* Update FlucomaVersion.cmake

* Enhance/fewer warnings (#85)

* excess semicolons

* unused variables

* type narrowing / signed-unsigned

* integer conversions: new Eigen::Array alias for index rather than int

* json: stop embedding nlohmann library and instead fetch at configure time (#105)

* ParameterDescriptors: make more composable by adding insert function (#107)

* FluidJSON: Avoid some implicit conversion on import that could confuse compiler

* Deal with some warnings

* EnvelopeSegmentation: pass correct params to Envelope

* update with new FluidTensorView copying ops

* Use Windows 2019 in CI

* Parallel tests seem unreliable on windows

Co-authored-by: James Bradbury <me@jamesbradbury.net>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>
Co-authored-by: James Bradbury <github@jamesbradbury.net>
jamesb93 pushed a commit that referenced this pull request Jun 14, 2022
* Add pointwise inversion to PCA

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* Use `operator<<=` for copy to / from FluidTensorView

* update all instances of FluidTensorView copying

* Signals.cpp.in fix lingering copy assignment

* Add conventional, shallow copy / move assignment to FluidTensorView

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

* Enhance/fewer warnings (#85)

* excess semicolons

* unused variables

* type narrowing / signed-unsigned

* integer conversions: new Eigen::Array alias for index rather than int

* json: stop embedding nlohmann library and instead fetch at configure time (#105)

* ParameterDescriptors: make more composable by adding insert function (#107)

* FluidJSON: Avoid some implicit conversion on import that could confuse compiler

* Deal with some warnings

* EnvelopeSegmentation: pass correct params to Envelope

* FluidTensorView deep copy gets distinct operator (#100)

* Add pointwise inversion to PCA

* Use `operator<<=` for copy to / from FluidTensorView

* update all instances of FluidTensorView copying

* Signals.cpp.in fix lingering copy assignment

* Add conventional, shallow copy / move assignment to FluidTensorView

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* [Release] 1.0.0-beta5 (#102)

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: weefuzzy <gungwho@gmail.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

* [Release] 1.0.0-beta6 (#126)

* Add pointwise inversion to PCA

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

Co-authored-by: Owen Green <gungwho@gmail.com>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: James Bradbury <me@jamesbradbury.net>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>

* Update FlucomaVersion.cmake

* Enhance/fewer warnings (#85)

* excess semicolons

* unused variables

* type narrowing / signed-unsigned

* integer conversions: new Eigen::Array alias for index rather than int

* json: stop embedding nlohmann library and instead fetch at configure time (#105)

* ParameterDescriptors: make more composable by adding insert function (#107)

* FluidJSON: Avoid some implicit conversion on import that could confuse compiler

* Deal with some warnings

* EnvelopeSegmentation: pass correct params to Envelope

* update with new FluidTensorView copying ops

* Use Windows 2019 in CI

* Parallel tests seem unreliable on windows

Co-authored-by: James Bradbury <me@jamesbradbury.net>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>
Co-authored-by: James Bradbury <github@jamesbradbury.net>

* Enhance/const correct(er) dataobjects (#115)

* Const correct arguments for data object messages; actually const object refs for RT usage

* MLP const update

* SharedClient const updates

* workflow: Disable parallel test runner and turn up verbosity

* remove std::cout access from segfaulting test (just in case)

* NoveltySlice: ensure frame offset is reset when win / hop changes

* correcting the long definition for novelty clients

* NoveltySegmentation: Correct order of arguments in constructor

* Assign2D: Make UNASSIGNED constexpr to solve strange linker error

* Assign2D: still needs out-of-class declaration for UNASSIGNED to link reliably

* corrected and augmented the credits/info of Data

* flucoma_corpus_files: typo in the file names

* Sound bank change (#135)

* removed redundant files and added constanzo

* new dataset to load in help files

* saved norm

* BufFlatten: Workaround PD-release builds problem with temporary buffer views

* add pca whitening (#98)

* add pca whitening

* actually add pca whitening

* PCA: add de-whitening to inverseTransformPoint

* PCAClient: update call to inverseTransformPoint

Co-authored-by: weefuzzy <gungwho@gmail.com>

* Enhance/optional message args (#106)

* Add dependency for Sy Brand's `optional` backport

* include optional in MessageSet

add alias (in case we need to switch between `std::` and `tl::`)

* try out optional arg in `KDTreeClient::kNearest`

* compile-time enforce that optional args must follow mandatory ones

* stop tl:optional doing its tests

* PoC: Enhance/choices param (#108)

* Add ChoiceT parameter type

* Add `select` control to `BufStatsClient` to road test `ChoicesParam`

* Choices params: Don't use a set because it breaks ordering

* SpectralShape: Add select param

* add dataset version of inverse PCA (#125)

* add dataset version of inverse PCA

* PCA: Add whitening to batch inverse transform

* Enhance/max params (#132)

* CMake: Centralise C++ version and set to 17

* Introduce long param type with a user-defined maximum + 'primary' params
 – e.g. max coeffs for MFCC)
 - decoupling Max/PD arguments from 'fixed' params
–

* MFCC: Proof of concept for new way of expressing runtime max for certain params

* CMake: Missing C++ version adjustments

* CMake: Another rogue C++ version flag

* Try to get catch to build on OS 12 whilst targetting 10.8

* NMFClient: Add resynth mode to de-magic interface (#133)

Also allow resynth from fixed bases + activations

* All Scalers: Replace `invert` parameter with `inverseTransform` messages

* Stop being too clever in LongRuntimeMaxParam 

(thought I'd already done this...)

* Convert remaining `max<X>` parameters and `maxFFTsize` to new order of things

* SpectralShape: Ensure output channel count responds to select param

* MLPClassifier: Missing const in type alias

* MLP clients: change 'hidden' to 'hiddenlayers'. fixes #143

to work around name clash with special attribute in Max

* [Enhance] ChoicesParam for LoudnessClient and PitchClient (#141)

* update loudness client to have a ChoicesParam

* rename truepeak selection to peak

* replace mMaxOutPutSize with fixed value of 2

* Add / fix select for Loudness and Pitch clients

Harmonize SpectralShape code
Adjust FluidBufLoudness hack in NRT wrapper

* adds a patch to redo the included demo dataset (in pd)

* MaxParams: toughen up

* dealing with scaler range near 0 (#144)

* makes a function that compares the range to 10*lambda - in line with SciKit Learn

* aesthetic include order to be like the other 2 scalers

* NRTWrapper: Fix for multichannel behaviour with @select

* OnsetSliceClient: Reset frame offset when FFT params change, fixes #145

* CMake: Make version data globally available via properties

* CMake: add the big ol list of core clients plus support code

* Add new features to central CMake, plus small improvements and version bump

* CMake: Turn down the volume for FetchContent

* CMake: Get rid of old diagnostic messages

* CMake: quote module path

* CMake: Set module path correctly when there is parent project

* CMake: Debug module path logic

* CMake: Superstitous attempt to fix 403 errors when cloning eigen on CI

* zap typo Maxiumm

* fised typo Magnitdue

* MaxParam: correct initialization order

* RunningStats: change `size` to `history`

* CMake: We need to be able to declare IO properties of clients up front

* MLP* camel case hiddenLayers

* NMFCrossClient: Prevent buffer overrun crashes by ensuring polyphony <= rank

* Chroma: Fix Eigen variable aliasing causing UB

* NMFMorph: avoid crash

if OptimalTransport fails to segment spectrum

* CMake: Enable PIC to make Linux CI happier.

I hope

* BufNNDSVD -> BufNMFSeed (#173)

* change the client name - kept the algo name as it does what it says

* algo name confounded with client name in the code

* change parameter name in client to interpolation (#174)

* Feature/skmeans (#99)

* add pca whitening

* actually add pca whitening

* add spherical kmeans

* actually add spherical kmeans

* SKMeans fixes, change KMeans getDistances to transform

* adding RT query class

* <fit>transform<point> -> <fit>encode<point>

Co-authored-by: tremblap <info@pierrealexandretremblay.com>

* ChoicesT: Correct for faulty use of `static`

fixes #175

* `(S)KMeansClient`: Track `numClusters` and clear if it changes before fitting

fixes #176

* KMeansClient: Work around over agressive optimisation

* bump flucoma version
jamesb93 pushed a commit that referenced this pull request Jun 24, 2022
* Add pointwise inversion to PCA

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* Use `operator<<=` for copy to / from FluidTensorView

* update all instances of FluidTensorView copying

* Signals.cpp.in fix lingering copy assignment

* Add conventional, shallow copy / move assignment to FluidTensorView

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

* Enhance/fewer warnings (#85)

* excess semicolons

* unused variables

* type narrowing / signed-unsigned

* integer conversions: new Eigen::Array alias for index rather than int

* json: stop embedding nlohmann library and instead fetch at configure time (#105)

* ParameterDescriptors: make more composable by adding insert function (#107)

* FluidJSON: Avoid some implicit conversion on import that could confuse compiler

* Deal with some warnings

* EnvelopeSegmentation: pass correct params to Envelope

* FluidTensorView deep copy gets distinct operator (#100)

* Add pointwise inversion to PCA

* Use `operator<<=` for copy to / from FluidTensorView

* update all instances of FluidTensorView copying

* Signals.cpp.in fix lingering copy assignment

* Add conventional, shallow copy / move assignment to FluidTensorView

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* [Release] 1.0.0-beta5 (#102)

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: weefuzzy <gungwho@gmail.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

* [Release] 1.0.0-beta6 (#126)

* Add pointwise inversion to PCA

* batchsize was not capped down, leading to hilarious crashes (#63)

* updating credits with the new team

* Include SHAs for flucoma-core and current project in version string

* Conform version string with SHAs to semantic versioning spec

* add chroma feature to NoveltySlice

* Toggle BLAS settings for compiling on APPLE (#67)

* disable blas for compiling on macos

* remove line according to O's suggestion

* error in the client of (buf)noveltyslice since introducing chroma as feature

* Enhance/versioning (#75)

* Remove old header template

* Add in TU template and declaration header

* update CMake to new version scheme

* Get SHA from top level source folder

* ensure git is found

* fix issue #23 - zeroing the output vector in the mTracker loop (#82)

* fix issue #23 - zeroing the output vector in the mTracker loop

* now really corrected thanks to @weefuzzy

* Initial unit tests for `include/data` (#83)

* initial FluidTensor tests

* add assert death test to cmake

* more assert death

* fix compile tests

* Working assertion tests, it seems

* Add first FluidTensorView tests

* tidy up cmake a bit

* factor out EqualRange matcher to own header

* Add FluidTensorSupport tests

* rollback to Catch2 

for compatability with approvaltests.cpp

* add tests for FluidDataSet

bubba's first approval test ✨

* test print for bigger range as well

* tidy cmake

* make building tests optional

* remove spurious files from tracking

* add workflow for CI

* make workflow manually triggerable

* correct workflow file extention

* pleading and bargaining with github

* getting event name right

* FluidTensorSlice: fix terrible and aged typename mistake

* workflow: try and cache whole build folder

* wotkflow: unbreak yaml

* workflow: disable fail-fast

* Amend upper frequency limit of mel bands in NoveltySlice to 20kHz

* [Enhance] FluCoMa-wide DataSets as a resource (#88)

* treat wav files as binary

* move audio files to resources folder

* add datasets

* add pre-trained neural networks

* add flucoma corpus

* move datasets to data

* BufAudioTransport now has A-B based arguments

* fix mistakenly fixed type signature in FluidSink

* Tests for framing and overlap add bits

* remove build folder caching as a bad job 

(failing forever once cache goes bad)

* Test/sc ports/slicers (#91)

* Working port of SC NoveltySlice tests

* formatting and constifying

* use generated path for test signal loading

* update testsignals header and cmake

* Add TestOnsetSegmention, update TestNoveltySeg for new resource loading

* Add Onsets and update novelty in CMake

* Add EnvelopeSeg tests and some missing headers

* Add EnvelopeGate tests

* Add TransientSlice tests

* update location of audio files

* add missing function to signals.cpp.in

* Fix test signal for AmpSlice test

* try and speed up test run

* FluidSource test blackholed on MSVC

It doesn't like GENERATE_REF nested in GENERATE. Nosir.

* ignore all build folders for a quieter life

* bump Eigen version (#93)

* bump Eigen version

* note new Eigen version in readme

* add mammoth dataset

* OnsetSlice and NoveltySlice clients: fix block size dependency (#96)

Makes tracking of `frameOffset` stateful across calls to `process` so that odd hop sizes are handled correctly

* `SliceIterator::end()` fix (#97)

* fix problem with 0-size slices and end() sentinels

* adds basic test for slice ietrator fix

* annotate datasets

* add mfcc for fluid_corpus

* update mfcc dataset

* bump version to beta5 (#101)

* Add pointwise inversion to PCA

* Enhance `ParameterSet` (#103)

* Meta: Add HO function to apply function only to select indicies of a tuple

* ParameterSet: Easier application of functions by type with lambdas + discovering the count of params by type

* BufStats: Weights should be an input buffer

* [Fix] Make error language more consistent (#118)

* replace incorrect use of label where identifier is intended

* dont shorten identifier to id

* rename DuplicateLabel to DuplicateIdentifier

* Enhance/slicer detection curves (#114)

* EnvelopeSegmentation: refactor into feature curve + detector

* NoveltySegementation: refactor into feature curve + detector

* OnsetSegmentation: refactor into feature curve + detector

* Add OnsetFeatureClient

* Add NoveltyFeatureClient

* Add AmpFeatureClient

* correct novelty and onset curves for nrt

* fix longstanding assumption in NRT wrapper that client latency == window size

* Update NoveltyFeatureClient to new analysisSettings method

* remove old FIXME comment

* fix cout call killing test on windows

* Missing update change to OnsetFeatureClient::analysisSettings()

* algorithms: NoveltyCurve -> NoveltyFeature

* Novelty: Update algorihtm class name, and change 'feature' param to algorithm

* Also update names in NovletySegmentation

* BufOnsetFeature correct output buffer name

* Novelty / OnsetFeature - cache descriptor values for when sigvs < hop

* more information on failing test thx

Co-authored-by: Owen Green <gungwho@gmail.com>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: James Bradbury <me@jamesbradbury.net>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>

* Update FlucomaVersion.cmake

* Enhance/fewer warnings (#85)

* excess semicolons

* unused variables

* type narrowing / signed-unsigned

* integer conversions: new Eigen::Array alias for index rather than int

* json: stop embedding nlohmann library and instead fetch at configure time (#105)

* ParameterDescriptors: make more composable by adding insert function (#107)

* FluidJSON: Avoid some implicit conversion on import that could confuse compiler

* Deal with some warnings

* EnvelopeSegmentation: pass correct params to Envelope

* update with new FluidTensorView copying ops

* Use Windows 2019 in CI

* Parallel tests seem unreliable on windows

Co-authored-by: James Bradbury <me@jamesbradbury.net>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: g-roma <gerard.roma@gmail.com>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>
Co-authored-by: James Bradbury <github@jamesbradbury.net>

* Enhance/const correct(er) dataobjects (#115)

* Const correct arguments for data object messages; actually const object refs for RT usage

* MLP const update

* SharedClient const updates

* workflow: Disable parallel test runner and turn up verbosity

* remove std::cout access from segfaulting test (just in case)

* NoveltySlice: ensure frame offset is reset when win / hop changes

* correcting the long definition for novelty clients

* NoveltySegmentation: Correct order of arguments in constructor

* Assign2D: Make UNASSIGNED constexpr to solve strange linker error

* Assign2D: still needs out-of-class declaration for UNASSIGNED to link reliably

* corrected and augmented the credits/info of Data

* flucoma_corpus_files: typo in the file names

* Sound bank change (#135)

* removed redundant files and added constanzo

* new dataset to load in help files

* saved norm

* BufFlatten: Workaround PD-release builds problem with temporary buffer views

* add pca whitening (#98)

* add pca whitening

* actually add pca whitening

* PCA: add de-whitening to inverseTransformPoint

* PCAClient: update call to inverseTransformPoint

Co-authored-by: weefuzzy <gungwho@gmail.com>

* Enhance/optional message args (#106)

* Add dependency for Sy Brand's `optional` backport

* include optional in MessageSet

add alias (in case we need to switch between `std::` and `tl::`)

* try out optional arg in `KDTreeClient::kNearest`

* compile-time enforce that optional args must follow mandatory ones

* stop tl:optional doing its tests

* PoC: Enhance/choices param (#108)

* Add ChoiceT parameter type

* Add `select` control to `BufStatsClient` to road test `ChoicesParam`

* Choices params: Don't use a set because it breaks ordering

* SpectralShape: Add select param

* add dataset version of inverse PCA (#125)

* add dataset version of inverse PCA

* PCA: Add whitening to batch inverse transform

* Enhance/max params (#132)

* CMake: Centralise C++ version and set to 17

* Introduce long param type with a user-defined maximum + 'primary' params
 – e.g. max coeffs for MFCC)
 - decoupling Max/PD arguments from 'fixed' params
–

* MFCC: Proof of concept for new way of expressing runtime max for certain params

* CMake: Missing C++ version adjustments

* CMake: Another rogue C++ version flag

* Try to get catch to build on OS 12 whilst targetting 10.8

* NMFClient: Add resynth mode to de-magic interface (#133)

Also allow resynth from fixed bases + activations

* All Scalers: Replace `invert` parameter with `inverseTransform` messages

* Stop being too clever in LongRuntimeMaxParam 

(thought I'd already done this...)

* Convert remaining `max<X>` parameters and `maxFFTsize` to new order of things

* SpectralShape: Ensure output channel count responds to select param

* MLPClassifier: Missing const in type alias

* MLP clients: change 'hidden' to 'hiddenlayers'. fixes #143

to work around name clash with special attribute in Max

* [Enhance] ChoicesParam for LoudnessClient and PitchClient (#141)

* update loudness client to have a ChoicesParam

* rename truepeak selection to peak

* replace mMaxOutPutSize with fixed value of 2

* Add / fix select for Loudness and Pitch clients

Harmonize SpectralShape code
Adjust FluidBufLoudness hack in NRT wrapper

* adds a patch to redo the included demo dataset (in pd)

* MaxParams: toughen up

* dealing with scaler range near 0 (#144)

* makes a function that compares the range to 10*lambda - in line with SciKit Learn

* aesthetic include order to be like the other 2 scalers

* NRTWrapper: Fix for multichannel behaviour with @select

* OnsetSliceClient: Reset frame offset when FFT params change, fixes #145

* CMake: Make version data globally available via properties

* CMake: add the big ol list of core clients plus support code

* Add new features to central CMake, plus small improvements and version bump

* CMake: Turn down the volume for FetchContent

* CMake: Get rid of old diagnostic messages

* CMake: quote module path

* CMake: Set module path correctly when there is parent project

* CMake: Debug module path logic

* CMake: Superstitous attempt to fix 403 errors when cloning eigen on CI

* zap typo Maxiumm

* fised typo Magnitdue

* MaxParam: correct initialization order

* RunningStats: change `size` to `history`

* CMake: We need to be able to declare IO properties of clients up front

* MLP* camel case hiddenLayers

* NMFCrossClient: Prevent buffer overrun crashes by ensuring polyphony <= rank

* Chroma: Fix Eigen variable aliasing causing UB

* NMFMorph: avoid crash

if OptimalTransport fails to segment spectrum

* CMake: Enable PIC to make Linux CI happier.

I hope

* BufNNDSVD -> BufNMFSeed (#173)

* change the client name - kept the algo name as it does what it says

* algo name confounded with client name in the code

* change parameter name in client to interpolation (#174)

* Feature/skmeans (#99)

* add pca whitening

* actually add pca whitening

* add spherical kmeans

* actually add spherical kmeans

* SKMeans fixes, change KMeans getDistances to transform

* adding RT query class

* <fit>transform<point> -> <fit>encode<point>

Co-authored-by: tremblap <info@pierrealexandretremblay.com>

* ChoicesT: Correct for faulty use of `static`

fixes #175

* `(S)KMeansClient`: Track `numClusters` and clear if it changes before fitting

fixes #176

* KMeansClient: Work around over agressive optimisation

* bump flucoma version

* make capitalisation consistent

* SKMeans: Apply same fix as 1e668d5

* update version to 1.0.0
fearn-e pushed a commit to fearn-e/flucoma-core that referenced this pull request Aug 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fluid.ampgate~ cpu usagewith with minlength attributes

3 participants