Thanks Diemo —
And thanks for your patience (we just finished up the Forum Montreal, so I’m catching up…)
I’m trying to open these SDIF files using Daniele & Andrea’s cage library in Max for score representation — specifically using their [cage.sdif.peaks.toroll] Max object. I may need to consult them as well, but the issue I’m noticing is that I can’t obtain a peaks SDIF file from [pipo.peaks] that fully resembles the format generated by supervp, and thus doesn’t get properly parsed by their bach/cage externals. To be sure, I’m not getting any actual error messages, but an SDIF generated by [pipo.peaks] and [mubu] simply does not load into their score objects, presumably because it can’t parse those missing columns and/or identify the matrices & frames.
However, I’m noticing that their [bach.readsdif] object simply parses whatever columns are present in the SDIF file it takes; so, in a peak analysis generated with supervp, those columns missing in the [pipo.peaks] output are written into the bach-specific llll syntax and are displayed properly by their score objets. The peak SDIF files formatted by supervp contain the additional phase and confidence columns along with 1PIC matrices and frames.
The pipo.peaks.maxhelp file is what I’ve been using to generate new SDIFs:
[mubu.process peaks-help audio slice:fft:peaks @name peaks @slice.wind hann @slice.size 256 @slice.hop 10 @fft.size 256 @fft.mode logpower @peaks.numpeaks 100 @peaks.keep strongest @process 0 @progressoutput input @info gui "interface traces, colormode fgcolor, paramcols Frequency Amplitude, shape steps, paramautodisplayrange color 1, mixedlayout superposed, bounds 0 1090"]
These values are slightly different from the defaults given in the help file, and I’m simply adding syntax outlined in the “writing SDIF files” tab in the general mubu.maxhelp file:
At least part of my problem must occur here. If I try to include your type definitions above, like this:
track peaks info SDIF.StreamId 0 SDIF.FrameSignature 1MTD 1PIC { Frequency Amplitude Phase Confidence } SDIF.MatrixSignature 1FTD 1PIC { 1PIC PickedPeaks } SDIF.MatrixName PickedPeaks
it generates this 1st sdif file: peaks.expOut.v04a.sdif.zip (3.4 MB)
If I adapt it slightly:
track peaks info SDIF.StreamId 0 SDIF.FrameSignature 1MTD 1PIC SDIF.MatrixSignature 1FTD 1PIC SDIF.MatrixName PickedPeaks
it results in this 2nd attached sdif file: peaks.expOut.v04b.sdif.zip (3.4 MB)
Still none of my attempts over the weekend, including these two above, load properly into the bach score objects. If I define using 1MTD anywhere in this message to [mubu], it results in both matrices and frames of type 1MTD, but interestingly they also result in the type definition properly written into the SDIF header. But, ultimately I don’t see 1PIC frames or matrices anymore; it seems the definition message can only contain one element (1PIC) instead of 2 (1MTD 1PIC). What I was doing before formatted the 1PIC frames in the resulting SDIF file. So, I’ve tried reconfiguring variously; for example only including the PickedPeaks matrix name, but no change. I’ve also tried passing a string containing your exact syntax, like this:
track peaks info SDIF.StreamId 0 SDIF.FrameSignature "1MTD 1PIC { Frequency Amplitude Phase Confidence }" SDIF.MatrixSignature "1FTD 1PIC { 1PIC PickedPeaks }" SDIF.MatrixName PickedPeaks
But if I do this and then send a writetrack
message, I get a console error “MuBu: no data to write.”
So, I’m unclear as to how you’d recommend setting these new type definitions, suggested by your response.
Nor does [mubu.process] actually write the phase & confidence data anywhere inside the track, so it seems to me that there is some option missing in the help file I’m using, which would reveal those phase & confidence columns. Simply setting names for these columns, as outlined by the documentation, doesn’t work.
Please let me know what you think, whenever you have a chance.
Cheers —
L