pumpp.sampler.Sampler

class pumpp.sampler.Sampler(n_samples, duration, *ops, **kwargs)[source]

Generate samples uniformly at random from a pumpp data dict.

Examples

>>> # Set up the parameters
>>> sr, n_fft, hop_length = 22050, 512, 2048
>>> # Instantiate some transformers
>>> p_stft = pumpp.feature.STFTMag('stft', sr=sr, n_fft=n_fft,
...                                hop_length=hop_length)
>>> p_beat = pumpp.task.BeatTransformer('beat', sr=sr,
...                                     hop_length=hop_length)
>>> # Apply the transformers to the data
>>> data = pumpp.transform('test.ogg', 'test.jams', p_stft, p_beat)
>>> # We'll sample 10 patches of duration = 32 frames
>>> stream = pumpp.Sampler(10, 32, p_stft, p_beat)
>>> # Apply the streamer to the data dict
>>> for example in stream(data):
...     process(data)
Attributes:
n_samples : int or None

the number of samples to generate. If None, generate indefinitely.

duration : int > 0

the duration (in frames) of each sample

random_state : None, int, or np.random.RandomState

If int, random_state is the seed used by the random number generator;

If RandomState instance, random_state is the random number generator;

If None, the random number generator is the RandomState instance used by np.random.

ops : array of pumpp.feature.FeatureExtractor or pumpp.task.BaseTaskTransformer

The operators to include when sampling data.

__init__(n_samples, duration, *ops, **kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(n_samples, duration, *ops, **kwargs) Initialize self.
add(operator) Add an operator to the Slicer
crop(data) Crop a data dictionary down to its common time
data_duration(data) Compute the valid data duration of a dict
indices(data) Generate patch indices
sample(data, interval) Sample a patch from the data object