It seems that some functions must be called in a specific order. For instance, some plotting functions cannot be called before Sound.condition or Sound.use_raw_signal. In general, I think it would be better to remove dependencies such as these, or at least make them more clear in the documentation, so that even users with low familiarity can use the framework. In this example, Sound.use_raw_signal could be called by default in Sound.__init__ to avoid these issues.
Is it really necessary to separate the raw/trimmed/final signal? Are there use-cases where you would actually need this distinction in a single Sound object? If you find this is not entirely necessary, Sound.condition and Sound.use_raw_signal could be combined with Sound.__init__.
Signal.filter_noise no longer appears to exist, but the Sound.filter_noise function (which breaks) is still available to call. Although this function may be irrelevant at this point, I was still confused why the trimmed signal would be filtered instead of the main signal.
Note that the documentation for Sound.condition still contains reference to filter_noise, but is missing a reference to the resample parameter.
How were default signal trim times (defined in parameters.py) for the auto_trim feature in Sound.condition chosen? What is the significance of interpolating these?
The self.data attribute in Sound.__init__ appears to be unused and unnecessary.
Moved the call to Sound.condition inside Sound.__init__.
The raw signal is important to listen to it and the conditioned signal to validate that the loading process was done correctly
Removed the filter_noise method and associated documentation
The default signal trim times were determined using the example guitar sounds. The signal can be trimmed shorter when the fundamental is higher, because the sound decays faster.
The default trim times are defined for the frequency of the six guitar strings, interpolating is used to determine a suitable trim time for sounds with an arbitrary fundamental.
Removed the Sound.data attribute
Removed Sound.condition statements in README.md and API tutorial
Sound.condition
orSound.use_raw_signal
. In general, I think it would be better to remove dependencies such as these, or at least make them more clear in the documentation, so that even users with low familiarity can use the framework. In this example,Sound.use_raw_signal
could be called by default inSound.__init__
to avoid these issues.Sound
object? If you find this is not entirely necessary,Sound.condition
andSound.use_raw_signal
could be combined withSound.__init__
.Signal.filter_noise
no longer appears to exist, but theSound.filter_noise
function (which breaks) is still available to call. Although this function may be irrelevant at this point, I was still confused why the trimmed signal would be filtered instead of the main signal.Sound.condition
still contains reference tofilter_noise
, but is missing a reference to theresample
parameter.parameters.py
) for theauto_trim
feature inSound.condition
chosen? What is the significance of interpolating these?self.data
attribute inSound.__init__
appears to be unused and unnecessary.