More TB2 help stubs (KMeans, (Buf)AudioTransport, and base client)
parent
13498a5e8c
commit
4306d6b277
@ -0,0 +1,47 @@
|
||||
TITLE:: FluidAudioTransport
|
||||
summary:: Interpolate between sounds
|
||||
categories:: FluidManipulation
|
||||
related:: Classes/FluidBufAudioTransport
|
||||
|
||||
DESCRIPTION::
|
||||
Interpolates between the spectra of two sounds using the Optimal Transport algorithm
|
||||
|
||||
See
|
||||
Henderson and Solomonm (2019) AUDIO TRANSPORT: A GENERALIZED PORTAMENTO VIA OPTIMAL TRANSPORT, DaFx
|
||||
|
||||
|
||||
CLASSMETHODS::
|
||||
|
||||
METHOD:: ar
|
||||
Process incoming audio signals
|
||||
|
||||
ARGUMENT:: in
|
||||
Source A
|
||||
|
||||
ARGUMENT:: in2
|
||||
Source B
|
||||
|
||||
ARGUMENT:: interpolation
|
||||
The amount to interpolate between A and B (0-1, 0 = A, 1 = B)
|
||||
|
||||
ARGUMENT:: bandwidth
|
||||
Someone tell me
|
||||
|
||||
ARGUMENT:: windowSize
|
||||
The size of the processing window (kr)
|
||||
|
||||
ARGUMENT:: hopSize
|
||||
The processing hop size (kr). Default = windowSize / 2
|
||||
|
||||
ARGUMENT:: fftSize
|
||||
The processing FFT size (kr). Default = windowSize
|
||||
|
||||
ARGUMENT:: maxFFTSize
|
||||
The maximum FFT size for processing
|
||||
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
code::
|
||||
(some example code)
|
||||
::
|
||||
@ -0,0 +1,82 @@
|
||||
TITLE:: FluidBufAudioTransport
|
||||
summary:: Interpolate between buffers
|
||||
categories:: FluidManipulation
|
||||
related:: Classes/FluidAudioTransport
|
||||
|
||||
DESCRIPTION::
|
||||
Interpolates between the spectra of two sounds using the Optimal Transport algorithm
|
||||
|
||||
See
|
||||
Henderson and Solomonm (2019) AUDIO TRANSPORT: A GENERALIZED PORTAMENTO VIA OPTIMAL TRANSPORT, DaFx
|
||||
|
||||
CLASSMETHODS::
|
||||
|
||||
METHOD:: process
|
||||
Process two audio link::Classes/Buffer::
|
||||
|
||||
ARGUMENT:: server
|
||||
The server the process runs on
|
||||
|
||||
ARGUMENT:: source1
|
||||
The first source buffer
|
||||
|
||||
ARGUMENT:: startFrame1
|
||||
offset into the first source buffer (samples)
|
||||
|
||||
ARGUMENT:: numFrames1
|
||||
number of samples to use from first source buffer
|
||||
|
||||
ARGUMENT:: startChan1
|
||||
starting channel of first source buffer
|
||||
|
||||
ARGUMENT:: numChans1
|
||||
number of channels to process in first source buffer
|
||||
|
||||
ARGUMENT:: source2
|
||||
the second source buffer
|
||||
|
||||
ARGUMENT:: startFrame2
|
||||
offset into the second source buffer (samples)
|
||||
|
||||
ARGUMENT:: numFrames2
|
||||
number of samples to process from second buffer
|
||||
|
||||
ARGUMENT:: startChan2
|
||||
starting channel for second buffer
|
||||
|
||||
ARGUMENT:: numChans2
|
||||
number of channels to process in second buffer
|
||||
|
||||
ARGUMENT:: destination
|
||||
buffer for interpolated audio
|
||||
|
||||
ARGUMENT:: interpolation
|
||||
The amount to interpolate between A and B (0-1, 0 = A, 1 = B)
|
||||
|
||||
ARGUMENT:: bandwidth
|
||||
Someone tell me
|
||||
|
||||
ARGUMENT:: windowSize
|
||||
The size of the processing window (kr)
|
||||
|
||||
ARGUMENT:: hopSize
|
||||
The processing hop size (kr). Default = windowSize / 2
|
||||
|
||||
ARGUMENT:: fftSize
|
||||
The processing FFT size (kr). Default = windowSize
|
||||
|
||||
ARGUMENT:: action
|
||||
Function to run when processing complete, taking the destination buffer as its argument
|
||||
|
||||
INSTANCEMETHODS::
|
||||
|
||||
private:: synth, server
|
||||
|
||||
METHOD:: cancel
|
||||
cancel processing on the server
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
code::
|
||||
(some example code)
|
||||
::
|
||||
@ -0,0 +1,96 @@
|
||||
TITLE:: FluidKMeans
|
||||
summary:: Cluster data points with K-Means
|
||||
categories:: FluidManipulation
|
||||
related:: Classes/FluidDataSet, Classes/FluidLabelSet, Classes/FluidKNN
|
||||
|
||||
DESCRIPTION::
|
||||
Uses the K-Means algorithm to learn clusters from a link::Classes/FluidDataSet::
|
||||
|
||||
https://scikit-learn.org/stable/tutorial/statistical_inference/unsupervised_learning.html#clustering-grouping-observations-together
|
||||
|
||||
CLASSMETHODS::
|
||||
|
||||
INSTANCEMETHODS::
|
||||
|
||||
PRIVATE::k
|
||||
|
||||
METHOD:: predictPoint
|
||||
Given a trained object, return the cluster ID for a data point in a link::Classes/Buffer::
|
||||
|
||||
ARGUMENT:: buffer
|
||||
a link::Classes/Buffer:: containing a data point
|
||||
|
||||
ARGUMENT:: action
|
||||
A function to run when the server responds, taking the ID of the cluser as its argument
|
||||
|
||||
METHOD:: fit
|
||||
Identify code::k:: clusters in a link::Classes/FluidDataSet::
|
||||
|
||||
ARGUMENT:: dataset
|
||||
A link::Classes/FluidDataSet:: of data points
|
||||
|
||||
ARGUMENT:: k
|
||||
The number of clusters to identify in the data set
|
||||
|
||||
ARGUMENT:: maxIter
|
||||
Maximum number of iterations to use partitioning the data
|
||||
|
||||
ARGUMENT:: buffer
|
||||
Seed centroids for clusters WARNING:: Not yet implemented ::
|
||||
|
||||
ARGUMENT:: action
|
||||
A function to run when fitting is complete, taking as its argument an array with the number of data points for each cluster
|
||||
|
||||
METHOD:: write
|
||||
write learned clusters to disk as a JSON file. Will not overwrite existing files
|
||||
|
||||
ARGUMENT:: filename
|
||||
Absolute path for file
|
||||
|
||||
ARGUMENT:: action
|
||||
A function to run when the file is written
|
||||
|
||||
METHOD:: read
|
||||
Read a learned clustering of a data set from a JSON file
|
||||
|
||||
ARGUMENT:: filename
|
||||
Absolute path of the JSON file
|
||||
|
||||
ARGUMENT:: action
|
||||
Function to run when the file has been read
|
||||
|
||||
METHOD:: getClusters
|
||||
Fill a link::Classes/FluidLabelSet:: with the assignments for each point in the passed link::Classes/FluidDataSet:: that was used to train this instance
|
||||
|
||||
ARGUMENT:: dataset
|
||||
The link::Classes/FluidDataSet:: used to train this instance
|
||||
|
||||
ARGUMENT:: labelset
|
||||
A link::Classes/FluidLabelSet:: to fill with assignments
|
||||
|
||||
ARGUMENT:: action
|
||||
A function to run when the operation is complete
|
||||
|
||||
METHOD:: cols
|
||||
Retreive the dimentionality of the dataset this instance is trained on
|
||||
|
||||
ARGUMENT:: action
|
||||
A function to run when the server responds, taking the dimensionality as its argument
|
||||
|
||||
METHOD:: predict
|
||||
Report cluster assignments for previously unseen data
|
||||
|
||||
ARGUMENT:: dataset
|
||||
A link::Classes/FluidDataSet:: of data points
|
||||
|
||||
ARGUMENT:: labelset
|
||||
A link::Classes/FluidLabelSet:: to contain assigments
|
||||
|
||||
ARGUMENT:: action
|
||||
A function to run when complete, taking an array of the counts for each catgegory as its argument
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
code::
|
||||
(some example code)
|
||||
::
|
||||
@ -0,0 +1,51 @@
|
||||
TITLE:: FluidManipulationClient
|
||||
summary:: A base case for FluidManipulation classes
|
||||
categories:: FluidManipulation
|
||||
|
||||
DESCRIPTION::
|
||||
A utility base class for FluidManipulation classes, that deals with common functionality (wrapping a link::Classes/Synth:: in the instance, etc.)
|
||||
|
||||
Not intended to be used directly.
|
||||
|
||||
CLASSMETHODS::
|
||||
|
||||
PRIVATE:: nonBlocking
|
||||
|
||||
METHOD:: kr
|
||||
The kr of the underlying UGem, which will output progress readings once all messages can be asynchronous.
|
||||
|
||||
If, for whatever reason, you create an instance of a client object using code::kr:: in your own synth, make sure to set the instance's link::Classes/FluidManipulationClient#synth:: and link::Classes/FluidManipulationClient#server::, or nothing will work.
|
||||
|
||||
returns:: An instance
|
||||
|
||||
METHOD:: new
|
||||
Language-side constructor. Internally, this creates a new synth around an instance of the sub-class being constructed, and maintains a variable pointing to the synth, so that it can be communicated with.
|
||||
|
||||
ARGUMENT:: server
|
||||
The link::Classes/Server:: this instance is running on
|
||||
|
||||
ARGUMENT:: ... args
|
||||
Arguments specific to the sub-class at hand
|
||||
|
||||
returns:: A new instance
|
||||
|
||||
INSTANCEMETHODS::
|
||||
|
||||
private:: pr_sendMsg
|
||||
|
||||
METHOD:: synth
|
||||
Fluid Manipulation client objects are server-side entities, wrapped in a Node to manage communication between language and object. For this, a link::Classes/Synth:: is needed, as the representation of a server node.
|
||||
|
||||
returns:: the instance's link::Classes/Synth::
|
||||
|
||||
METHOD:: server
|
||||
The link::Classes/Server:: that our instance's object is running on
|
||||
|
||||
returns:: a link::Classes/Server::
|
||||
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
code::
|
||||
(some example code)
|
||||
::
|
||||
Loading…
Reference in New Issue