Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
0243518
mfcc rst and sc help file
tedmoore Feb 18, 2022
1b414bd
mfcc sc examples
tedmoore Feb 18, 2022
efe961f
mfcc output
tedmoore Feb 18, 2022
ee7d5ea
mfcc helpfile readability
tedmoore Feb 18, 2022
1663edd
BufMFCC udpates
tedmoore Feb 18, 2022
2bdf212
update bufonsetslice docs slightly (#87)
Feb 21, 2022
1105e14
fix audio transport segmentation of discussion and desc
Feb 21, 2022
b225dd4
fix audio transport segmentation of discussion and desc (#88)
Feb 21, 2022
d309905
add missing see alsos
Feb 21, 2022
5c2ed33
Merge branch 'docs/bufaudiotransport' into HEAD
Feb 21, 2022
2b27710
optional args: add to C++ wrapper
weefuzzy Feb 24, 2022
7c03d31
ParamDump and python: add choices param type
weefuzzy Feb 25, 2022
4f866de
Json driver (#35)
weefuzzy Feb 28, 2022
7b50523
Update json_api.yml
Feb 28, 2022
6e127c4
Update json_api.yml
Feb 28, 2022
be47611
Update json_api.yml
Feb 28, 2022
757c18b
change name of raw output to api.json
Feb 28, 2022
ffb22ce
Update json_api.yml
Feb 28, 2022
090e7e7
remove indentation on api
Feb 28, 2022
2661adf
typo in UMAP
Feb 28, 2022
d10b4fd
[Docs] OnsetSlice and BufOnsetSlice (#91)
Mar 2, 2022
092ad3f
revamp MelBands and BufMelBands RST, update SC example code
tedmoore Mar 2, 2022
f1d8a82
*melbands description
tedmoore Mar 2, 2022
83c4f65
added a hyphen
tedmoore Mar 2, 2022
a07bee3
pitch and buf pitch RST
tedmoore Mar 3, 2022
68dbdcb
added link to the learn page
tedmoore Mar 3, 2022
b7b7a29
edited normalize description
tedmoore Mar 3, 2022
45b00fd
Merge pull request #92 from flucoma/MelBands-reference
tedmoore Mar 3, 2022
0478be0
pitch sc help files
tedmoore Mar 3, 2022
370be76
BufFlatten RST and SC examples
tedmoore Mar 4, 2022
735cca6
buf thresh
tedmoore Mar 11, 2022
dda150c
sc help file
tedmoore Mar 21, 2022
ca395fb
typo in fluid pitch sc example code
tedmoore Mar 21, 2022
eb23f48
bufthresh rst
tedmoore Mar 21, 2022
d8a96ae
typo
tedmoore Mar 21, 2022
ba3c160
james' feedback
tedmoore Mar 22, 2022
9e29a7c
add .ds_store to gitignore
tremblap Mar 23, 2022
53835d6
Merge pull request #96 from flucoma/BufThresh
tedmoore Mar 24, 2022
88314a3
pa feedback
tedmoore Mar 24, 2022
894bbe6
pa feedback
tedmoore Mar 24, 2022
a6dd05b
Merge pull request #93 from flucoma/pitch
tedmoore Mar 24, 2022
5e23c97
pa feedback
tedmoore Mar 24, 2022
20d88b2
Merge pull request #94 from flucoma/BufFlatten
tedmoore Mar 24, 2022
5eaa22f
PA feedback
tedmoore Mar 24, 2022
ed93c51
Merge pull request #83 from flucoma/MFCC-helpfile-&-sc-example
tedmoore Mar 24, 2022
ccf1939
[Docs] Update Normalize Docs (#76)
Mar 24, 2022
56ad95e
[Docs] Slicer Feature Objects (#101)
Mar 29, 2022
315a61e
Merge branch 'main' into dev
tedmoore Mar 30, 2022
cc12351
changing preset and interface for noveltyslice examples
tremblap Apr 14, 2022
5cd4d72
Merge branch 'dev' of https://github.com/flucoma/flucoma-docs into dev
tremblap Apr 14, 2022
1bbf3c6
Add argument handlers for const DataSet / LabelSet
weefuzzy Apr 14, 2022
04541a6
Max/PD: Generate docs for control-in objects (input size and autosize)
weefuzzy May 2, 2022
65fda83
Merge branch 'dev' into enhance/optional-message-args
weefuzzy May 3, 2022
4e07e57
Merge pull request #89 from weefuzzy/enhance/optional-message-args
weefuzzy May 3, 2022
1b95f6d
Merge branch 'dev' into enhance/choices-param
weefuzzy May 3, 2022
3f45b91
Merge pull request #90 from weefuzzy/enhance/choices-param
weefuzzy May 3, 2022
fb437ad
Enhance/max params (#104)
weefuzzy May 3, 2022
64ca992
Add a `striprst` jinja filter for removing rst markup in templates (#…
weefuzzy May 5, 2022
e57d2fc
UMAP cmake reference to python sorted
tremblap May 5, 2022
a7237b6
Merge branch 'dev' of https://github.com/flucoma/flucoma-docs into dev
tremblap May 5, 2022
2768f74
typo
tedmoore May 5, 2022
a374e49
Wrapper and doc-gen update for new `maxFFTSize`
weefuzzy May 10, 2022
be8c30c
Buf stats (#103)
tedmoore May 10, 2022
6d4b89d
bufcompose update (#95)
May 11, 2022
5b0025e
PCA inverseTransformPoint (#97)
tedmoore May 11, 2022
b039b56
normalize the desc/disc of mfcc entries (#113)
May 23, 2022
1993e87
HPSS Help file (RST) and SC examples (#81)
tedmoore May 25, 2022
3291b01
Enhance/generate stubs (#119)
weefuzzy May 26, 2022
863c917
CI: Debug CMAKE_MODULE_PATH
weefuzzy May 26, 2022
576f6d5
CMake: Try setting module path using explicit source dir for core
weefuzzy May 26, 2022
43998eb
CI Debug: Print core/scripts
weefuzzy May 26, 2022
67301dd
CMake: Correct typo
weefuzzy May 26, 2022
b059120
CMake: MSVC with bigobj, tidy up messages
weefuzzy May 26, 2022
a1be779
set explicit UTF8 encoding when opening text
weefuzzy May 26, 2022
81db8fd
explicitly use utf8 for writing as well as reading
weefuzzy May 26, 2022
531b4c2
MDS RST & SC example code (#121)
tedmoore May 26, 2022
e409a4d
MLPRegressor & MLPClassifier RSTs & SC example Code (#109)
tedmoore May 26, 2022
bb02817
Standardize RST & SC examples (#117)
tedmoore May 26, 2022
9b8ce92
RobustScale (#118)
tedmoore May 26, 2022
d0849dd
KNNClassifier RST and SC example code (#127)
tedmoore May 31, 2022
b9d5a47
Stats RST & SC examples (#124)
tedmoore May 31, 2022
11342d2
PCA RST and SC Examples (#116)
tedmoore May 31, 2022
8439734
Update Standardize.rst
weefuzzy Jun 1, 2022
000f49c
maxFFTSize in SC driver is conditional on buffer-proc species (#129)
tedmoore Jun 1, 2022
488a4b0
BufSTFT RST and SC example code (#112)
tedmoore Jun 1, 2022
e729aa0
[Enhance] Learn platform link generation (#120)
Jun 1, 2022
86f62e4
typo
tedmoore Jun 3, 2022
bd1cc8c
bufnmf: adding resynthmode
tremblap Jun 4, 2022
1469303
resynthMode : camel case
tremblap Jun 4, 2022
8b71aa4
Change size to history (#133)
Jun 5, 2022
d0a99ec
BufNMFCross RST & SC example (#137)
tedmoore Jun 8, 2022
0873a27
NNDSVD (#138)
tedmoore Jun 8, 2022
465fbd2
NMFMorph (& species transformer[0]) (#135)
tedmoore Jun 8, 2022
b55a9ec
put bar chart back in (#123)
tedmoore Jun 8, 2022
0ed7eff
KNNRegressor (#136)
tedmoore Jun 8, 2022
fbe9725
(Buf)Transients(Slice) Family (#140)
tedmoore Jun 10, 2022
c6d002e
typos in rst
tremblap Jun 12, 2022
ceb65f0
typos in knnclassifier~ (#142)
Jun 13, 2022
dc6110a
sc example code for BufNMF now includes resynthMode
tedmoore Jun 13, 2022
5a54545
deleted SC Guid YAML file
tedmoore Jun 13, 2022
3c744bc
put spaces around hyperlinks
tedmoore Jun 13, 2022
bd1c1ca
BufTransients SC example (Waveform only 2 sec.)
tedmoore Jun 13, 2022
a144aa4
BufNNDSVD -> BufNMFSeed (#141)
tremblap Jun 13, 2022
32ca4e0
fix Loudness select in MLPRegressor example code
tedmoore Jun 13, 2022
c93cf97
fix bad link in nmf morph (BufNMFCross was missing the buf part)
tedmoore Jun 13, 2022
0676237
added inverse transform and inverse transform point to Normalize
tedmoore Jun 13, 2022
f93eaea
better code for testing all flucoma objects help files
tedmoore Jun 13, 2022
6668584
added argument k to KDTree RST
tedmoore Jun 13, 2022
1c6c046
fixed a bad link in KNNClassifier RST
tedmoore Jun 13, 2022
5ec761c
removed action arguments from RobustScale RST
tedmoore Jun 13, 2022
9db5839
fixed mistakes in RobustScale RST that was causing it to not render p…
tedmoore Jun 13, 2022
b2842a8
added select argument to BufLoudness and Loudness RST (the rest comin…
tedmoore Jun 13, 2022
83715d7
added pca whitening to PCA RST
tedmoore Jun 13, 2022
90b2e5c
adding select argument to appropriate RST files
tedmoore Jun 13, 2022
42d2d94
added radius argument to KDTree RST
tedmoore Jun 13, 2022
61642fb
added channels argument to BufSelect RST
tedmoore Jun 13, 2022
fda570b
checked example code files that use 'select' for possible errors
tedmoore Jun 13, 2022
031ccfe
found a bit more code needing resynthMode
tedmoore Jun 13, 2022
6996726
[Enhance] Interp to Interplation in NMFMorph (#143)
Jun 14, 2022
3476f8b
SKMeans (#132)
tremblap Jun 14, 2022
9410f1b
(Buf)AmpGate RST & SC examples (#122)
tedmoore Jun 14, 2022
fdc506d
added BufAmpGate maxSize parameter
tedmoore Jun 14, 2022
005f1ef
[Fix] Fix Guide Links in RST (#147)
Jun 15, 2022
8fde3f4
Merge branch 'main' into dev
Jun 15, 2022
35014ba
[Fix] LF line ending enforcement (#149)
Jun 15, 2022
1327d5f
Merge branch 'upmain' into updev
Jun 15, 2022
3e63e3a
interface changes
tremblap Jun 16, 2022
d7e8f35
capitalise beatRemember
Jun 16, 2022
6b0bdde
Fix `<o>` links to `buffer~` for max doc
weefuzzy Jun 16, 2022
0413151
Mop up vestigial scdoc syntax
weefuzzy Jun 16, 2022
b8ae8e2
correct reference to "class" in description
Jun 21, 2022
40d0036
[fix] typos and errors (#153)
Jun 23, 2022
c3e8985
remove bufNum
Jun 23, 2022
dfcf4a2
fix low/mid/ min/median confusion
Jun 23, 2022
7700f40
[docs] Update see-also content (#155)
Jun 23, 2022
8d3b9d9
[docs] Buffer clients link to buffer management tutorial (#157)
Jun 23, 2022
24ea858
proposed layout improvement (#154)
Jun 23, 2022
a71d467
add outward links to RST and templat
Jun 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/AmpFeature.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
:sc-categories: Libraries>FluidDecomposition
:sc-related: Guides/FluidCorpusManipulation
:see-also: AmpGate, AmpSlice, OnsetFeature, NoveltyFeature
:max-seealso: peakamp~, meter~, snapshot~, slide~
:description: Calculate the amplitude differential feature in realtime.
:discussion:
:fluid-obj:`AmpSlice` uses the differential between a fast and a slow envelope follower to determine changes in amplitude. This object calculates the amplitude differential and copies it to an output buffer.
Expand Down
3 changes: 2 additions & 1 deletion doc/AmpGate.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
:sc-categories: Libraries>FluidDecomposition
:sc-related: Guides/FluidCorpusManipulation
:see-also: BufAmpGate, AmpSlice, OnsetSlice, NoveltySlice, TransientSlice
:description: Absolute amplitude threshold gate detector on a real-time signal
:max-seealso: peakamp~, meter~, snapshot~, slide~
:description: Absolute amplitude threshold gate detector on a realtime signal

:discussion:
AmpGate outputs a audio-rate, single-channel signal that is either 0, indicating the gate is closed, or 1, indicating the gate is open. The gate detects an onset (opens) when the internal envelope follower (controlled by ``rampUp`` and ``rampDown``) goes above a specified ``onThreshold`` (in dB) for at least ``minLengthAbove`` samples. The gate will stay open until the envelope follower goes below ``offThreshold`` (in dB) for at least ``minLengthBelow`` samples, which triggers an offset.
Expand Down
9 changes: 5 additions & 4 deletions doc/AmpSlice.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
:sc-categories: Libraries>FluidDecomposition
:sc-related: Guides/FluidCorpusManipulation
:see-also: BufAmpSlice, AmpGate, OnsetSlice, NoveltySlice, TransientSlice
:description: This class implements an amplitude-based slicer, with various customisable options and conditions to detect relative amplitude changes as onsets.
:max-seealso: peakamp~, meter~, snapshot~, slide~
:description: Implements an amplitude-based slicer, with various customisable options and conditions to detect relative amplitude changes as onsets.
:discussion:
FluidAmpSlice is based on two envelop followers on a highpassed version of the signal: one slow that gives the trend, and one fast. Each have features that will interact. The example code below is unfolding the various possibilites in order of complexity.
FluidAmpSlice is based on two envelope followers on a high-passed version of the signal: one slow that gives the trend, and one fast. Each has features that will interact. The example code below is unfolding the various possibilities in order of complexity.

The process will return an audio steam with single sample impulses at estimated starting points of the different slices.
The process will return an audio stream with single sample impulses at estimated starting points of the different slices.

:output: An audio stream with square envelopes around the slices. The latency between the input and the output is **max(minLengthAbove + lookBack, max(minLengthBelow,lookAhead))**.

Expand All @@ -34,7 +35,7 @@

:control offThreshold:

The threshold in dB of the relative envelope follower to reset, aka to allow the differential envelop to trigger again.
The threshold in dB of the relative envelope follower to reset, aka to allow the differential envelope to trigger again.

:control floor:

Expand Down
2 changes: 1 addition & 1 deletion doc/AudioTransport.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

:discussion:
Interpolates between the spectra of two sounds using the optimal transport algorithm. This enables morphing and hybridisation of the perceptual qualities of each source linearly.
See Henderson and Solomonm (2019) AUDIO TRANSPORT: A GENERALIZED PORTAMENTO VIA OPTIMAL TRANSPORT, DaFx
See Henderson and Solomon (2019) AUDIO TRANSPORT: A GENERALIZED PORTAMENTO VIA OPTIMAL TRANSPORT, DaFx

https://arxiv.org/abs/1906.06763

Expand Down
16 changes: 14 additions & 2 deletions doc/BufAmpFeature.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
:sc-categories: Libraries>FluidDecomposition
:sc-related: Guides/FluidCorpusManipulation
:see-also: BufAmpSlice, BufNoveltyFeature, BufAmpFeature, BufOnsetFeature
:max-seealso: peakamp~, meter~, snapshot~, slide~
:description: Calculate the amplitude differential feature used by :fluid-obj:`BufAmpSlice`.
:discussion:
:fluid-obj:`BufAmpSlice` uses the differential between a fast and a slow envelope follower to determine changes in amplitude. This object calculates the amplitude differential and copies it to an output buffer.
Expand All @@ -28,7 +29,7 @@

:control numChans:

For multichannel sources, how many channel should be summed.
For multichannel sources, how many channels should be summed.

:control features:

Expand Down Expand Up @@ -60,7 +61,18 @@

:control padding:

Controls the zero-padding added to either end of the source buffer or segment. Possible values are 0 (no padding), 1 (default, half the window size), or 2 (window size - hop size). Padding ensures that all input samples are completely analysed: with no padding, the first analysis window starts at time 0, and the samples at either end will be tapered by the STFT windowing function. Mode 1 has the effect of centering the first sample in the analysis window and ensuring that the very start and end of the segment are accounted for in the analysis. Mode 2 can be useful when the overlap factor (window size / hop size) is greater than 2, to ensure that the input samples at either end of the segment are covered by the same number of analysis frames as the rest of the analysed material.
Controls the zero-padding added to either end of the source buffer or segment. Padding ensures all values are analysed. Possible values are:

:enum:

:0:
No padding - The first analysis window starts at time 0, and the samples at either end will be tapered by the STFT windowing function.

:1:
Half the window size - The first sample is centred in the analysis window ensuring that the start and end of the segment are accounted for in the analysis.

:2:
Window size minus the hop size - Mode 2 can be useful when the overlap factor (window size / hop size) is greater than 2, to ensure that the input samples at either end of the segment are covered by the same number of analysis frames as the rest of the analysed material.

:control action:

Expand Down
5 changes: 3 additions & 2 deletions doc/BufAmpGate.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
:digest: Gate Detection on a Bfufer
:digest: Gate Detection on a Buffer
:species: buffer-proc
:sc-categories: Libraries>FluidDecomposition
:sc-related: Guides/FluidCorpusManipulation
:see-also: AmpGate, BufAmpSlice, BufOnsetSlice, BufNoveltySlice, BufTransientSlice
:max-seealso: peakamp~, meter~, snapshot~, slide~
:description: Absolute amplitude threshold gate detector on audio in a buffer

:discussion:
Expand Down Expand Up @@ -79,7 +80,7 @@

:control highPassFreq:

The frequency of the fourth-order Linkwitz-Riley high-pass filter (https://en.wikipedia.org/wiki/Linkwitz%E2%80%93Riley_filter) applied to the signal signal to minimise low frequency intermodulation with very short ramp lengths. A frequency of 0 bypasses the filter.
The frequency of the fourth-order Linkwitz-Riley high-pass filter (https://en.wikipedia.org/wiki/Linkwitz%E2%80%93Riley_filter) applied to the signal to minimise low frequency intermodulation with very short ramp lengths. A frequency of 0 bypasses the filter.

:control maxSize:

Expand Down
9 changes: 5 additions & 4 deletions doc/BufAmpSlice.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
:sc-categories: Libraries>FluidDecomposition
:sc-related: Guides/FluidCorpusManipulation
:see-also: AmpSlice, BufAmpGate, BufOnsetSlice, BufNoveltySlice, BufTransientSlice
:description: This class implements an amplitude-based slicer,with various customisable options and conditions to detect relative amplitude changes as onsets.
:max-seealso: peakamp~, meter~, snapshot~, slide~
:description: Implements an amplitude-based slicer, with various customisable options and conditions to detect relative amplitude changes as onsets.
:discussion:
FluidBufAmpSlice is based on two envelop followers on a highpassed version of the signal: one slow that gives the trend, and one fast. Each have features that will interact. The example code below is unfolding the various possibilites in order of complexity.
FluidBufAmpSlice is based on two envelope followers on a high-passed version of the signal: one slow that gives the trend, and one fast. Each has features that will interact. The example code below is unfolding the various possibilities in order of complexity.

The process will return a buffer which contains indices (in sample) of estimated starting points of different slices.

Expand All @@ -30,7 +31,7 @@

:control numChans:

For multichannel sources, how many channel should be summed.
For multichannel sources, how many channels should be summed.

:control indices:

Expand Down Expand Up @@ -58,7 +59,7 @@

:control offThreshold:

The threshold in dB of the relative envelope follower to reset, aka to allow the differential envelop to trigger again.
The threshold in dB of the relative envelope follower to reset, aka to allow the differential envelope to trigger again.

:control floor:

Expand Down
2 changes: 1 addition & 1 deletion doc/BufAudioTransport.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
:discussion:
Interpolates between the spectra of two sounds using the optimal transport algorithm. This enables morphing and hybridisation of the perceptual qualities of each source linearly.

See Henderson and Solomonm (2019) AUDIO TRANSPORT: A GENERALIZED PORTAMENTO VIA OPTIMAL TRANSPORT, DaFx
See Henderson and Solomon (2019) AUDIO TRANSPORT: A GENERALIZED PORTAMENTO VIA OPTIMAL TRANSPORT, DaFx

https://arxiv.org/abs/1906.06763

Expand Down
17 changes: 14 additions & 3 deletions doc/BufChroma.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

:control source:

The index of the buffer to use as the source material to be analysed. The different channels of multichannel buffers will be processing sequentially.
The index of the buffer to use as the source material to be analysed. The different channels of multichannel buffers will be processed sequentially.

:control startFrame:

Expand All @@ -31,7 +31,7 @@

:control numChans:

For multichannel srcBuf, how many channel should be processed.
For multichannel srcBuf, how many channels should be processed.

:control features:

Expand Down Expand Up @@ -71,7 +71,18 @@

:control padding:

Controls the zero-padding added to either end of the source buffer or segment. Possible values are 0 (no padding), 1 (default, half the window size), or 2 (window size - hop size). Padding ensures that all input samples are completely analysed: with no padding, the first analysis window starts at time 0, and the samples at either end will be tapered by the STFT windowing function. Mode 1 has the effect of centering the first sample in the analysis window and ensuring that the very start and end of the segment are accounted for in the analysis. Mode 2 can be useful when the overlap factor (window size / hop size) is greater than 2, to ensure that the input samples at either end of the segment are covered by the same number of analysis frames as the rest of the analysed material.
Controls the zero-padding added to either end of the source buffer or segment. Padding ensures all values are analysed. Possible values are:

:enum:

:0:
No padding - The first analysis window starts at time 0, and the samples at either end will be tapered by the STFT windowing function.

:1:
Half the window size - The first sample is centred in the analysis window ensuring that the start and end of the segment are accounted for in the analysis.

:2:
Window size minus the hop size - Mode 2 can be useful when the overlap factor (window size / hop size) is greater than 2, to ensure that the input samples at either end of the segment are covered by the same number of analysis frames as the rest of the analysed material.

:control maxFFTSize:

Expand Down
13 changes: 7 additions & 6 deletions doc/BufCompose.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
:sc-categories: Libraries>FluidDecomposition, UGens>Buffer
:sc-related: Guides/FluidCorpusManipulation, Classes/Buffer
:see-also: BufSelect, BufSelectEvery
:max-seealso: poke~, peek~, index~, buffer~
:description:
A utility for manipulating the contents of buffers.

:discussion:
This object is the swiss army knife for manipulating buffers and their contents. By specifing ranges of samples and channels to copy, as well as destination and source gains it can provide a powerful interface for performing actions such as a Left/Right to Mid/Side conversion and mixing down multichannel audio
This object is the swiss army knife for manipulating buffers and their contents. By specifying ranges of samples and channels to copy, as well as destination and source gains it can provide a powerful interface for performing actions such as a Left/Right to Mid/Side conversion and mixing down multichannel audio

:process: This method triggers the compositing.

Expand All @@ -16,39 +17,39 @@

:control source:

The bufNum of the source buffer.
The name of the source buffer.

:control startFrame:

The starting point (in samples) from which to copy in the source buffer.

:control numFrames:

The duration (in samples) to copy from the source buffer. The default (-1) copies the full lenght of the buffer.
The duration (in samples) to copy from the source buffer. The default (-1) copies the full length of the buffer.

:control startChan:

The first channel from which to copy in the source buffer.

:control numChans:

The number of channels from which to copy in the source buffer. This parameter will wrap around the number of channels in the source buffer. The default (-1) copies all of the buffer's channel.
The number of channels from which to copy in the source buffer. This parameter will wrap around the number of channels in the source buffer. The default (-1) copies all of the buffer's channels.

:control gain:

The gain applied to the samples to be copied from the source buffer.

:control destination:

The bufNum of the destination buffer.
The name of the destination buffer.

:control destStartFrame:

The time offset (in samples) in the destination buffer to start writing the source at. The destination buffer will be resized if the portion to copy is overflowing.

:control destStartChan:

The channel offest in the destination buffer to start writing the source at. The destination buffer will be resized if the number of channels to copy is overflowing.
The channel offset in the destination buffer to start writing the source at. The destination buffer will be resized if the number of channels to copy is overflowing.

:control destGain:

Expand Down
3 changes: 2 additions & 1 deletion doc/BufFlatten.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
:sc-categories: FluidCorpusManipulation
:sc-related: Classes/Buffer
:see-also: BufCompose, BufStats
:max-seealso: poke~, peek~, index~, buffer~
:description:
Flatten a multichannel |buffer| to a single channel. This can be useful to structure a buffer such that it can be added to a :fluid-obj:`DataSet`
:discussion:
Expand Down Expand Up @@ -42,7 +43,7 @@

:control startChan:

For multichannel ``source`` buffers, which which channel to begin the processing. The default is 0.
For multichannel ``source`` buffers, which channel to begin the processing. The default is 0.

:control numChans:

Expand Down
8 changes: 4 additions & 4 deletions doc/BufHPSS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
HPSS takes in audio and divides it into two or three outputs, depending on the ``maskingMode``
* an harmonic component
* a percussive component
* a residual of the previous two if ``maskingMode`` is set to 2 (inter-dependant thresholds). See below.
* a residual of the previous two if ``maskingMode`` is set to 2 (interdependent thresholds). See below.

HPSS works by using median filters on the magnitudes of a spectrogram. It makes certain assumptions about what it is looking for in a sound: that in a spectrogram “percussive” elements tend to form vertical “ridges” (tall in frequency band, narrow in time), while stable “harmonic” elements tend to form horizontal “ridges” (narrow in frequency band, long in time). By using median filters across time and frequency respectively, we get initial estimates of the "harmonic-ness" and "percussive-ness" for every spectral bin of every spectral frame in the spectrogram. These are then combined into 'masks' that are applied to the original spectrogram in order to produce a harmonic and percussive output (and residual if ``maskingMode`` = 2).

The maskingMode parameter provides different approaches to combining estimates and producing masks. Some settings (especially in modes 1 & 2) will provide better separation but with more artefacts.

Driedger (2014) suggests that the size of the median filters don't affect the outcome as much as the ``fftSize``. with large FFT sizes, short percussive sounds have less representation, therefore the harmonic component is more strongly represented. The result is that many of the percussive sounds leak into the harmonic component. Small FFT sizes have less resolution in the frequency domain and often lead to a blurring of horizontal structures, therefore harmonic sounds tend to leak into the percussive component. As with all FFT based-processes, finding an FFT size that balances spectral and temporal resolution for a given source sound will benefit the use of this object.
Driedger (2014) suggests that the size of the median filters don't affect the outcome as much as the ``fftSize``. With large FFT sizes, short percussive sounds have less representation, therefore the harmonic component is more strongly represented. The result is that many of the percussive sounds leak into the harmonic component. Small FFT sizes have less resolution in the frequency domain and often lead to a blurring of horizontal structures, therefore harmonic sounds tend to leak into the percussive component. As with all FFT based-processes, finding an FFT size that balances spectral and temporal resolution for a given source sound will benefit the use of this object.

For more details visit https://learn.flucoma.org/reference/hpss

Expand Down Expand Up @@ -74,13 +74,13 @@
:enum:

:0:
Soft masks provide the fewest artefacts, but the weakest separation. Complimentary, soft masks are made for the harmonic and percussive parts by allocating some fraction of every magnitude in the spectrogram to each mask. The two resulting buffers will sum to exactly the original material. This mode uses soft mask in Fitzgerald's (2010) original method of 'Wiener-inspired' filtering.
Soft masks provide the fewest artefacts, but the weakest separation. Complimentary, soft masks are made for the harmonic and percussive parts by allocating some fraction of every magnitude in the spectrogram to each mask. The two resulting buffers will sum to exactly the original material. This mode uses a soft mask in Fitzgerald's (2010) original method of 'Wiener-inspired' filtering.

:1:
Binary masks provide better separation, but with more artefacts. The harmonic mask is constructed using a binary decision, based on whether a threshold is exceeded for every magnitude in the spectrogram (these are set using ``harmThreshFreq1``, ``harmThreshAmp1``, ``harmThreshFreq2``, ``harmThreshAmp2``, see below). The percussive mask is then formed as the inverse of the harmonic one, meaning that as above, the two components will sum to the original sound.

:2:
Soft masks (with a third stream containing a residual component). First, binary masks are made separately for the harmonic and percussive components using different thresholds (set with the respective ``harmThresh-`` and ``percThresh-`` parameters below). Because these masks aren't guaranteed to represent the entire spectrogram, any residual energy is considered as a third output. The independently created binary masks are converted to soft masks at the end of the process so that everything null sums.
Soft masks (with a third stream containing a residual component). First, binary masks are made separately for the harmonic and percussive components using different thresholds (set with the respective ``harmThresh-`` and ``percThresh-`` parameters below). Because these masks aren't guaranteed to represent the entire spectrogram, any residual energy is considered as a third output. The independently created binary masks are converted to soft masks at the end of the process so that everything null-sums.

:control harmThresh:

Expand Down
Loading