grrrr/nsgt

assemble_coeffs function in ./examples/spectrograms.py returns error

JamesOwers opened this issue · 3 comments

Observing c created on line 108, I see it generates objects of dimension 1 x 66 (a 2d array) therefore the function complains that the index [2] is out of range. This error may well be due to my misunderstanding of arguments.

$ ./spectrogram.py /path/to/wav/audio.wav'
Traceback (most recent call last):
  File "./spectrogram.py", line 112, in <module>
    coefs = assemble_coeffs(c, ncoefs)
  File "./spectrogram.py", line 27, in assemble_coeffs
    out = np.empty((ncoefs,cq0.shape[1],cq0.shape[2]), dtype=cq0.dtype)

If it helps, here is info about the wav file being input:

$ soxi 'MASS/sargon-silenci (metal)/sargon-silenci_1-19_with_effects.wav'

Input File     : 'MASS/sargon-silenci (metal)/sargon-silenci_1-19_with_effects.wav'
Channels       : 2
Sample Rate    : 44100
Precision      : 24-bit
Duration       : 00:00:18.00 = 793801 samples = 1350 CDDA sectors
File Size      : 4.76M
Bit Rate       : 2.12M
Sample Encoding: 24-bit Signed Integer PCM

Seeing as the default for --sr is 44100 I thought it would be fine to run with no additional args set.

I've had a crack at diagnosing - struggled with the generators. Running np.array(list(c)).shape returns (3, 2, 66) i.e. c is a generator that produces lists of lists ('shape' (2,66)). Is this as expected or is something going wrong upstream? I'm afraid I've run out of time trying to pick through NSGT_sliced.forward.

grrrr commented

The list of lists is on purpose, because the output is not necessarily rectangular (only with —matrixform it is).

I would suggest that you start with a set of trusty command line options, like

myinput.wav
—output=myoutput.h5
--fmin=80
--fmax=14000
--bins=202
--scale=log
--real
--matrixform
--reducedform=2
--fps=100
--downmix-after

and --plot, if you like

Am 15.06.2016 um 17:49 schrieb James Owers notifications@github.com:

I've had a crack at diagnosing - struggled with the generators. Running np.array(list(c)).shape returns (3, 2, 66) i.e. c is a generator that produces lists of lists ('shape' (2,66)). Is this as expected or is something going wrong upstream? I'm afraid I've run out of time trying to pick through NSGT_sliced.forward.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub #15 (comment), or mute the thread https://github.com/notifications/unsubscribe/AAJ-JisjRSf-5mS_qIsH7wOibQVIqd7Vks5qMB8jgaJpZM4I2Yv8.

Ok, thanks for the tip. I can get it to run with just the argument --matrixform added. The documented help for this is simply "Use regular time division over frequency bins (matrix form)"; have you any clues as to why running without this doesn't work? Is there a bug here or is this simply expected?