Source code for pycomposer.noisesampler.midi_noise_sampler

# -*- coding: utf-8 -*-
import numpy as np
from pygan.noise_sampler import NoiseSampler


[docs]class MidiNoiseSampler(NoiseSampler): ''' Generate samples based on the noise prior by Gauss distribution. ''' def __init__( self, batch_size=20, seq_len=10, min_pitch=24, max_pitch=108 ): ''' Init. Args: batch_size: Batch size. seq_len: The length of sequneces. The length corresponds to the number of `time` splited by `time_fraction`. min_pitch: The minimum of note number. max_pitch: The maximum of note number. ''' self.__batch_size = batch_size self.__seq_len = seq_len self.__dim = max_pitch - min_pitch
[docs] def generate(self): ''' Generate noise samples. Returns: `np.ndarray` of samples. ''' generated_arr = np.random.uniform( low=0.1, high=0.9, size=((self.__batch_size, self.__seq_len, self.__dim)) ) if self.noise_sampler is not None: self.noise_sampler.output_shape = generated_arr.shape generated_arr += self.noise_sampler.generate() return generated_arr