Skip to content

Commit

Permalink
[Release] 1.0.1 (#125)
Browse files Browse the repository at this point in the history
* ignore more varieties of build folder

* deal with some warnings

* FluidWaveform 'lineWidth' argument now also affects feature lines

* add back the nmf-jit-classifier example

* novelty interface change in example

* resizable and layoutable guis (#83)

* resizable and layoutable guis

* FluidWaveform: rename 'win' to 'parent'

* FluidWaveform/FluidPlotter: update help

* FluidWaveform/Plotter: make views before forking

This way views are immediately available upon creation,
for example to be added to layouts.
Views are still correctly updated with data from within the fork,
whenever they are ready.

* Thanks @elgiano! + a few small edits

Co-authored-by: Ted Moore <[email protected]>

* slicers: add enums for algorithms (#86)

* typo

* FluidBufNMF class: add resynthMode argument

* add PCA whitening parameter (#65)

* add PCA whitening parameter

* FluidPCA: Ensure whiten parameter is sent to kr query UGen

Co-authored-by: Gerard <[email protected]>
Co-authored-by: weefuzzy <[email protected]>

* Enhance/optional message args (#77)

* optional args: sc wrapper updates

* optional args: KDTree try out

* Enhance/choices param (#78)

* NRTWrapper: Add choices param (long <-> bitset)

* Update `FluidBufStats` with `select` control

* BufStats class: Fix bitfield for `select` and warn on duplicate items

* Update SpectralShape classes for new param

* `PCA.sc`: add batch `inverseTranform` method

* Wrapper: integer sign warnings

* Enhance/max params (#93)

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

* Wrapper: handle new LongRuntimeMax param type

* POC for new LongRuntimeMax param with MFCC numCoeffs

* Wrapper: Make MSVC happy about constexpr lambda capture

* All scalers: replace 'invert' parameter with `inverseTransform` messages

* Wrapper: Work around 32 char limit for plugin commands

If too long, remove vowels. 
Sorry. 
Better ideas welcome

* fix #96

* typo

* Update SC classes for new style `max<X>` parameters

* SpectralShape SC class: maxFFT

* RealTime wrapper: play it safer with output channel count

This really relies on the SC class being correct, but then everything 
ultimately does...

* RT FFT Object SC Classes: Provide maxFFTSize default

* BufSTFT SC class: Add maxFFT (now needed due to core type change)

* Add select param to Loudness and Pitch SC clases (#101)

* Wrapper: workaround scsynth 32 char cmd length limit with extra dispatch layer 

also avoids need for formerly truncated plugin names in some cases

* removed invert from scalers class definitions (#102)

* Enhance/generate stubs (#104)

* CMake: generate .cpp stubs

* Remove old cpp stubs

* Ensure correct MSVC runtime by default

* CMake: invoke docs properly

* CMake: Tidy up

* CMake: Tidy up

* CMake: typo

* CI: Update nightly

* CI: remove lingering references to docs job

* CMake: belatedly add branch selection for flucoma deps upon which CI relies

* CMake: Actually commit important code for best collaborative results

* CMake: This file is now redundant, in fact

* cmake: missing slash in install

* bufnmf: added the maxFFTsize parameter in the server call

* FluidStats: Change where output Array reshape happens to keep SynthDescLib happy

* FluidBufNNDSVD: maxfftsize now needed in server call, or booooom

fixes #161

* BufNMFCross: Needs MaxFFTSize

* BufNNDSVD: Ensure activations buffer is queried at finish

* FluidBufToKr ensure that numFrames is an int (not a float)

* Added *(Buf)Feature objects to guide (and deleted old guide)

NNDSVD --> NMFSeed in Guide

fixed bad links in Guide

* change interface and file name (#113)

* hidden --> hiddenLayers in class definition (#114)

* reordered some max<X> arguments

* change interp to interpolation in nmfmorph class (#115)

* Feature/skmeans (#66)

* add PCA whitening parameter

* add FluidSKMeans

* SKMeans correction

* added RT query

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

* added to overview

Co-authored-by: Gerard <[email protected]>
Co-authored-by: tremblap <[email protected]>

* [CI] Update Release Workflow (#118)

* cleanup nightly.yaml

* use new release style

* refactor release

* remove workflow dispatch variables

* interface changes in 8c

* knearest interface change in 10a

* waveform help nmf interface change

* capitalise beatRemember

* two more changes of interface

* typo

* sign binaries

* add -nightly affix

* sign releases too

* enforce concurrency of jobs

* UMAP kr method should not allow user to pass numDimensions

* slicers: change algo/metric select to symbols (#103)

* slicers: change algo/metric selection to symbols

* slicers: algo/metric accept UGen

* FluidDataSetWr example code (#124)
  • Loading branch information
James Bradbury authored Jun 30, 2022
1 parent 3fd541f commit 322c445
Show file tree
Hide file tree
Showing 22 changed files with 263 additions and 156 deletions.
57 changes: 34 additions & 23 deletions .github/workflows/nightly.yaml
Original file line number Diff line number Diff line change
@@ -1,37 +1,48 @@
name: Nightly Releases
name: nightly

on:

workflow_dispatch:
push:
branches: [ dev, ci/** ]

concurrency:
group: environment-${{ github.ref }}
cancel-in-progress: true

jobs:
macbuild:
runs-on: macos-11
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/sc@v5
- uses: actions/checkout@v3
- uses: flucoma/actions/env@main
- uses: flucoma/actions/sc@main
with:
branch: origin/dev

- name: compress archive
run: zip -r FluCoMa-SC-Mac-nightly.zip FluidCorpusManipulation
working-directory: install

- uses: actions/upload-artifact@v2
- name: sign binaries
uses: flucoma/actions/distribution@main
with:
name: macbuild
path: install/FluCoMa-SC-Mac-nightly.zip
glob: '-e scx'
package: 'install'
output_type: 'dmg'
output: FluCoMa-SC-Mac-nightly
cert: ${{ secrets.CERT }}
certpwd: ${{ secrets.CERTPWD }}
teamid: ${{ secrets.WWDRTEAMID }}
apppwd: ${{ secrets.APPSTORECONNECTPWD }}
appusr: ${{ secrets.APPSTORECONNECTUSERNAME }}

- uses: actions/upload-artifact@v3
with:
name: macbuild
path: install/FluCoMa-SC-Mac-nightly.dmg

winbuild:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/sc@v5
- uses: actions/checkout@v3
- uses: flucoma/actions/env@main
- uses: flucoma/actions/sc@main
with:
branch: origin/dev

Expand All @@ -42,25 +53,25 @@ jobs:
run: 7z a FluCoMa-SC-Windows-nightly.zip FluidCorpusManipulation
working-directory: install

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: winbuild
path: install/FluCoMa-SC-Windows-nightly.zip


linuxbuild:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/sc@v5
- uses: actions/checkout@v3
- uses: flucoma/actions/env@main
- uses: flucoma/actions/sc@main
with:
branch: origin/dev

- name: compress archive
run: tar -zcvf FluCoMa-SC-Linux-nightly.tar.gz FluidCorpusManipulation
working-directory: install
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: linuxbuild
path: install/FluCoMa-SC-Linux-nightly.tar.gz
Expand Down Expand Up @@ -94,7 +105,7 @@ jobs:
with:
name: FluCoMa SuperCollider Nightly Release
body: "This is a nightly build of the FluCoMa SuperCollider package. As such, be warned there may be bugs or other unexpected behaviour. The build hash is ${{ github.sha }}"
files: FluCoMa-SC-*
files: FluCoMa*
prerelease: true
tag_name: nightly
draft: false
47 changes: 28 additions & 19 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,42 @@
name: Release
name: release

on:
workflow_dispatch:

jobs:
macbuild:
runs-on: macos-11
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/sc@v5
- uses: actions/checkout@v3
- uses: flucoma/actions/env@main
- uses: flucoma/actions/sc@main
with:
branch: origin/main

- name: compress archive
run: zip -r FluCoMa-SC-Mac.zip FluidCorpusManipulation
working-directory: install
- name: sign binaries
uses: flucoma/actions/distribution@main
with:
glob: '-e scx'
package: 'install'
output_type: 'dmg'
output: FluCoMa-SC-Mac
cert: ${{ secrets.CERT }}
certpwd: ${{ secrets.CERTPWD }}
teamid: ${{ secrets.WWDRTEAMID }}
apppwd: ${{ secrets.APPSTORECONNECTPWD }}
appusr: ${{ secrets.APPSTORECONNECTUSERNAME }}

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: macbuild
path: install/FluCoMa-SC-Mac.zip
path: install/FluCoMa-SC-Mac.dmg

winbuild:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/sc@v5
- uses: actions/checkout@v3
- uses: flucoma/actions/env@main
- uses: flucoma/actions/sc@main
with:
branch: origin/main

Expand All @@ -38,27 +47,27 @@ jobs:
run: 7z a FluCoMa-SC-Windows.zip FluidCorpusManipulation
working-directory: install

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: winbuild
path: install/FluCoMa-SC-Windows.zip

linuxbuild:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
outputs:
version: ${{ steps.get-version.outputs.version }}
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/sc@v5
- uses: actions/checkout@v3
- uses: flucoma/actions/env@main
- uses: flucoma/actions/sc@main
with:
branch: origin/main

- name: compress archive
run: tar -zcvf FluCoMa-SC-Linux.tar.gz FluidCorpusManipulation
working-directory: install

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: linuxbuild
path: install/FluCoMa-SC-Linux.tar.gz
Expand Down
14 changes: 14 additions & 0 deletions release-packaging/Classes/FluidBufNoveltyFeature.sc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ FluidBufNoveltyFeature : FluidBufProcessor {

source = source.asUGenInput;
features = features.asUGenInput;
algorithm = FluidNoveltySlice.prSelectAlgorithm(algorithm) ?? {
("FluidBufNoveltySlice: % is not a recognised algorithm")
.format(algorithm).throw;
};

source.isNil.if {"FluidBufNoveltyFeature: Invalid source buffer".throw};
features.isNil.if {"FluidBufNoveltyFeature: Invalid features buffer".throw};
Expand All @@ -20,6 +24,11 @@ FluidBufNoveltyFeature : FluidBufProcessor {

source = source.asUGenInput;
features = features.asUGenInput;
algorithm = FluidNoveltySlice.prSelectAlgorithm(algorithm);
if (algorithm.isNil or: algorithm.isUGen) {
("FluidBufNoveltySlice: % is not a recognised algorithm")
.format(algorithm).throw;
};

source.isNil.if {"FluidBufNoveltyFeature: Invalid source buffer".throw};
features.isNil.if {"FluidBufNoveltyFeature: Invalid features buffer".throw};
Expand All @@ -40,6 +49,11 @@ FluidBufNoveltyFeature : FluidBufProcessor {

source.isNil.if {"FluidBufNoveltyFeature: Invalid source buffer".throw};
features.isNil.if {"FluidBufNoveltyFeature: Invalid features buffer".throw};
algorithm = FluidNoveltySlice.prSelectAlgorithm(algorithm);
if (algorithm.isNil or: algorithm.isUGen) {
("FluidBufNoveltySlice: % is not a recognised algorithm")
.format(algorithm).throw;
};

^this.new(
server, nil, [features]
Expand Down
24 changes: 19 additions & 5 deletions release-packaging/Classes/FluidBufNoveltySlice.sc
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
FluidBufNoveltySlice : FluidBufProcessor {

*kr { |source, startFrame = 0, numFrames = -1, startChan = 0, numChans = -1, indices, algorithm = 0, kernelSize = 3, threshold = 0.5, filterSize = 1, minSliceLength = 2, windowSize = 1024, hopSize = -1, fftSize = -1, trig = 1 , blocking = 0|
*kr { |source, startFrame = 0, numFrames = -1, startChan = 0, numChans = -1, indices, algorithm = 0, kernelSize = 3, threshold = 0.5, filterSize = 1, minSliceLength = 2, windowSize = 1024, hopSize = -1, fftSize = -1, trig = 1 , blocking = 0|

var maxFFTSize = if (fftSize == -1) {windowSize.nextPowerOfTwo} {fftSize};

source = source.asUGenInput;
indices = indices.asUGenInput;
algorithm = FluidNoveltySlice.prSelectAlgorithm(algorithm) ?? {
("FluidBufNoveltySlice: % is not a recognised algorithm")
.format(algorithm).throw;
};

source.isNil.if {"FluidBufNoveltySlice: Invalid source buffer".throw};
indices.isNil.if {"FluidBufNoveltySlice: Invalid features buffer".throw};
Expand All @@ -15,15 +19,20 @@ FluidBufNoveltySlice : FluidBufProcessor {
}

*process { |server, source, startFrame = 0, numFrames = -1, startChan = 0, numChans = -1, indices, algorithm= 0, kernelSize = 3, threshold = 0.5, filterSize = 1, minSliceLength = 2, windowSize = 1024, hopSize = -1, fftSize = -1, freeWhenDone = true, action |

var maxFFTSize = if (fftSize == -1) {windowSize.nextPowerOfTwo} {fftSize};

source = source.asUGenInput;
indices = indices.asUGenInput;
algorithm = FluidNoveltySlice.prSelectAlgorithm(algorithm);
if (algorithm.isNil or: algorithm.isUGen) {
("FluidBufNoveltySlice: % is not a recognised algorithm")
.format(algorithm).throw;
};

source.isNil.if {"FluidBufNoveltySlice: Invalid source buffer".throw};
indices.isNil.if {"FluidBufNoveltySlice: Invalid features buffer".throw};

^this.new(
server, nil, [indices]
).processList(
Expand All @@ -32,15 +41,20 @@ FluidBufNoveltySlice : FluidBufProcessor {
}

*processBlocking { |server, source, startFrame = 0, numFrames = -1, startChan = 0, numChans = -1, indices, algorithm= 0, kernelSize = 3, threshold = 0.5, filterSize = 1, minSliceLength = 2, windowSize = 1024, hopSize = -1, fftSize = -1, freeWhenDone = true, action |

var maxFFTSize = if (fftSize == -1) {windowSize.nextPowerOfTwo} {fftSize};

source = source.asUGenInput;
indices = indices.asUGenInput;
algorithm = FluidNoveltySlice.prSelectAlgorithm(algorithm);
if (algorithm.isNil or: algorithm.isUGen) {
("FluidBufNoveltySlice: % is not a recognised algorithm")
.format(algorithm).throw;
};

source.isNil.if {"FluidBufNoveltySlice: Invalid source buffer".throw};
indices.isNil.if {"FluidBufNoveltySlice: Invalid features buffer".throw};

^this.new(
server, nil, [indices]
).processList(
Expand Down
14 changes: 14 additions & 0 deletions release-packaging/Classes/FluidBufOnsetFeature.sc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ FluidBufOnsetFeature : FluidBufProcessor {

source = source.asUGenInput;
features = features.asUGenInput;
metric = FluidOnsetSlice.prSelectMetric(metric) ?? {
("FluidBufOnsetSlice: % is not a recognised metric")
.format(metric).throw;
};

source.isNil.if {"FluidBufOnsetFeature: Invalid source buffer".throw};
features.isNil.if {"FluidBufOnsetFeature: Invalid features buffer".throw};
Expand All @@ -18,6 +22,11 @@ FluidBufOnsetFeature : FluidBufProcessor {

source = source.asUGenInput;
features = features.asUGenInput;
metric = FluidOnsetSlice.prSelectMetric(metric);
if (metric.isNil or: metric.isUGen) {
("FluidBufOnsetSlice: % is not a recognised metric")
.format(metric).throw;
};

source.isNil.if {"FluidBufOnsetFeature: Invalid source buffer".throw};
features.isNil.if {"FluidBufOnsetFeature: Invalid features buffer".throw};
Expand All @@ -35,6 +44,11 @@ FluidBufOnsetFeature : FluidBufProcessor {

source = source.asUGenInput;
features = features.asUGenInput;
metric = FluidOnsetSlice.prSelectMetric(metric);
if (metric.isNil or: metric.isUGen) {
("FluidBufOnsetSlice: % is not a recognised metric")
.format(metric).throw;
};

source.isNil.if {"FluidBufOnsetFeature: Invalid source buffer".throw};
features.isNil.if {"FluidBufOnsetFeature: Invalid features buffer".throw};
Expand Down
29 changes: 22 additions & 7 deletions release-packaging/Classes/FluidBufOnsetSlice.sc
Original file line number Diff line number Diff line change
@@ -1,27 +1,37 @@
FluidBufOnsetSlice : FluidBufProcessor {
*kr { |source, startFrame = 0, numFrames = -1, startChan = 0, numChans = -1, indices, metric = 0, threshold = 0.5, minSliceLength = 2, filterSize = 5, frameDelta = 0, windowSize = 1024, hopSize = -1, fftSize = -1, trig = 1, blocking = 0|


*kr { |source, startFrame = 0, numFrames = -1, startChan = 0, numChans = -1, indices, metric = 0, threshold = 0.5, minSliceLength = 2, filterSize = 5, frameDelta = 0, windowSize = 1024, hopSize = -1, fftSize = -1, trig = 1, blocking = 0|

var maxFFTSize = if (fftSize == -1) {windowSize.nextPowerOfTwo} {fftSize};

source = source.asUGenInput;
indices = indices.asUGenInput;
metric = FluidOnsetSlice.prSelectMetric(metric) ?? {
("FluidBufOnsetSlice: % is not a recognised metric")
.format(metric).throw;
};

source.isNil.if {"FluidBufOnsetSlice: Invalid source buffer".throw};
indices.isNil.if {"FluidBufOnsetSlice: Invalid features buffer".throw};

^FluidProxyUgen.kr(\FluidBufOnsetSliceTrigger, -1, source, startFrame, numFrames, startChan, numChans, indices, metric, threshold, minSliceLength, filterSize, frameDelta, windowSize, hopSize, fftSize, maxFFTSize, trig, blocking);
}

*process { |server, source, startFrame = 0, numFrames = -1, startChan = 0, numChans = -1, indices, metric = 0, threshold = 0.5, minSliceLength = 2, filterSize = 5, frameDelta = 0, windowSize = 1024, hopSize = -1, fftSize = -1, freeWhenDone = true, action|

var maxFFTSize = if (fftSize == -1) {windowSize.nextPowerOfTwo} {fftSize};

source = source.asUGenInput;
indices = indices.asUGenInput;
metric = FluidOnsetSlice.prSelectMetric(metric);
if (metric.isNil or: metric.isUGen) {
("FluidBufOnsetSlice: % is not a recognised metric")
.format(metric).throw;
};

source.isNil.if {"FluidBufOnsetSlice: Invalid source buffer".throw};
indices.isNil.if {"FluidBufOnsetSlice: Invalid features buffer".throw};

^this.new(
server, nil, [indices]
).processList(
Expand All @@ -30,15 +40,20 @@ FluidBufOnsetSlice : FluidBufProcessor {
}

*processBlocking { |server, source, startFrame = 0, numFrames = -1, startChan = 0, numChans = -1, indices, metric = 0, threshold = 0.5, minSliceLength = 2, filterSize = 5, frameDelta = 0, windowSize = 1024, hopSize = -1, fftSize = -1, freeWhenDone = true, action|

var maxFFTSize = if (fftSize == -1) {windowSize.nextPowerOfTwo} {fftSize};

source = source.asUGenInput;
indices = indices.asUGenInput;
metric = FluidOnsetSlice.prSelectMetric(metric);
if (metric.isNil or: metric.isUGen) {
("FluidBufOnsetSlice: % is not a recognised metric")
.format(metric).throw;
};

source.isNil.if {"FluidBufOnsetSlice: Invalid source buffer".throw};
indices.isNil.if {"FluidBufOnsetSlice: Invalid features buffer".throw};

^this.new(
server, nil, [indices]
).processList(
Expand Down
Loading

0 comments on commit 322c445

Please sign in to comment.