I'm laughing myself silly/crying after wading through the details for almost *one month* of full time work. It's a balance of updating an almost 20 year old section of Pd *without* breaking what currently works while adding required features.
If all y'all want updates/changes, you need to find a way to contribute beyond list discussions.
I am able to focus on this right now as we use libpd for a major project at work (which also supports infrastructure and guest artist works) and we have legacy projects using 32+ channel AIFC and CAF files. We need to be able to playback such files within libpd to support our historical repertoire. If we had a need for MP3, I probably would have implemented that, but uncompressed audio is easier to stream form disk as there is minimal conversion needed, specially with so many channels. Before I even began this work, I proposed a general architectural refactoring of the code base and have fixed a number of bugs.
As for sample loop points, those are probably in the instrument / sampler chunks in the AIFF, WAVE, and CAF file specs. Since I am flush with file format knowledge at the moment, I will try implementing either a [soundfiler] meta flag or 3rd outlet. I make no explicit promises.
If you don't know what I'm talking about, you can either read the 30+ year old official file format spec documentation or the file format overviews on Wikipedia, for example AIFF: https://en.wikipedia.org/wiki/Audio_Interchange_File_Format https://en.wikipedia.org/wiki/Audio_Interchange_File_Format
On Feb 12, 2020, at 9:31 AM, pd-list-request@lists.iem.at wrote:
Message: 4 Date: Wed, 12 Feb 2020 09:31:19 +0100 From: IOhannes m zmoelnig <zmoelnig@iem.at mailto:zmoelnig@iem.at> To: pd-list@lists.iem.at mailto:pd-list@lists.iem.at Subject: Re: [PD] Sample loop - start and end point (WAV files) Message-ID: <a72428ac-1ab7-2e7e-d90d-c4f74350286c@iem.at mailto:a72428ac-1ab7-2e7e-d90d-c4f74350286c@iem.at> Content-Type: text/plain; charset="utf-8"
On 12.02.20 01:21, Christof Ressi wrote:
To be clear: I agree that Pd probably shouldn't support MP3 or other compressed audio formats by itself, it should just make it easy to add such support as plugins.
totally. i've been talking with dan about this, and we kind of came up with the start of an "architecture" to allow other decoding/encoding backends.
to keep expectations low: this mainly started to get rid of a lot of boiler-plate code in the current implentation, and the "architecture" is currently only a struct (so dan is probably loughing himself silly when i call it "architecture"), and it only supports uncompressed formats, but that could very easily be extended.
fgamsdr IOhannes
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Of course it would be fantastic to have reading this information directly implemented in the [soundfiler] object!
Ingo
From: Pd-list [mailto:pd-list-bounces@lists.iem.at] On Behalf Of Dan Wilcox Sent: Wednesday, February 12, 2020 9:48 AM To: Pd-List Subject: Re: [PD] Sample loop - start and end point (WAV files)
I'm laughing myself silly/crying after wading through the details for almost *one month* of full time work. It's a balance of updating an almost 20 year old section of Pd *without* breaking what currently works while adding required features.
If all y'all want updates/changes, you need to find a way to contribute beyond list discussions.
I am able to focus on this right now as we use libpd for a major project at work (which also supports infrastructure and guest artist works) and we have legacy projects using 32+ channel AIFC and CAF files. We need to be able to playback such files within libpd to support our historical repertoire. If we had a need for MP3, I probably would have implemented that, but uncompressed audio is easier to stream form disk as there is minimal conversion needed, specially with so many channels. Before I even began this work, I proposed a general architectural refactoring of the code base and have fixed a number of bugs.
As for sample loop points, those are probably in the instrument / sampler chunks in the AIFF, WAVE, and CAF file specs. Since I am flush with file format knowledge at the moment, I will try implementing either a [soundfiler] meta flag or 3rd outlet. I make no explicit promises.
If you don't know what I'm talking about, you can either read the 30+ year old official file format spec documentation or the file format overviews on Wikipedia, for example AIFF: https://en.wikipedia.org/wiki/Audio_Interchange_File_Format
On Feb 12, 2020, at 9:31 AM, pd-list-request@lists.iem.at mailto:pd-list-request@lists.iem.at wrote:
Message: 4 Date: Wed, 12 Feb 2020 09:31:19 +0100 From: IOhannes m zmoelnig < mailto:zmoelnig@iem.at zmoelnig@iem.at> To: mailto:pd-list@lists.iem.at pd-list@lists.iem.at Subject: Re: [PD] Sample loop - start and end point (WAV files) Message-ID: < mailto:a72428ac-1ab7-2e7e-d90d-c4f74350286c@iem.at a72428ac-1ab7-2e7e-d90d-c4f74350286c@iem.at> Content-Type: text/plain; charset="utf-8"
On 12.02.20 01:21, Christof Ressi wrote:
To be clear: I agree that Pd probably shouldn't support MP3 or other compressed audio formats by itself, it should just make it easy to add such support as plugins.
totally. i've been talking with dan about this, and we kind of came up with the start of an "architecture" to allow other decoding/encoding backends.
to keep expectations low: this mainly started to get rid of a lot of boiler-plate code in the current implentation, and the "architecture" is currently only a struct (so dan is probably loughing himself silly when i call it "architecture"), and it only supports uncompressed formats, but that could very easily be extended.
fgamsdr IOhannes
Dan Wilcox
@danomatika http://twitter.com/danomatika
danomatika.com http://danomatika.com
robotcowboy.com http://robotcowboy.com
On Wed, Feb 12, 2020 at 10:14 AM Ingo ingo@miamiwave.com wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues, but they can also theoretically be placed in the "smpl" chunk: https://sites.google.com/site/musicgapi/technical-documents/wav-file-format#...
On Wed, Feb 12, 2020 at 10:56 AM Kjetil Matheussen k.s.matheussen@gmail.com wrote:
On Wed, Feb 12, 2020 at 10:14 AM Ingo ingo@miamiwave.com wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues,
Hmm, or maybe they are usually defined in the "smpl" chunk, I don't remember...
But here's the code to get loop data from a wav file in radium: https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugin_wav_p...
First it checks if there is a loop in the "smpl" chunk. If there isn't loop data there, it checks for "Loop Start" and "Loop End" cues.
Great!
-----Original Message----- From: Kjetil Matheussen [mailto:k.s.matheussen@gmail.com] Sent: Wednesday, February 12, 2020 11:24 AM To: Ingo Cc: Dan Wilcox; Pd-List Subject: Re: [PD] Sample loop - start and end point (WAV files)
On Wed, Feb 12, 2020 at 10:56 AM Kjetil Matheussen k.s.matheussen@gmail.com wrote:
On Wed, Feb 12, 2020 at 10:14 AM Ingo ingo@miamiwave.com wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue
Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues,
Hmm, or maybe they are usually defined in the "smpl" chunk, I don't remember...
But here's the code to get loop data from a wav file in radium: https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugi n_wav_parse.c#L253
First it checks if there is a loop in the "smpl" chunk. If there isn't loop data there, it checks for "Loop Start" and "Loop End" cues.
libsndfile also can extract loop points from a variety of formats. The relevant code for wav is here https://github.com/erikd/libsndfile/blob/master/src/wav.c#L1140-L1163
Kjetil Matheussen wrote:
On Wed, Feb 12, 2020 at 10:56 AM Kjetil Matheussen k.s.matheussen@gmail.com wrote:
On Wed, Feb 12, 2020 at 10:14 AM Ingo ingo@miamiwave.com wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues,
Hmm, or maybe they are usually defined in the "smpl" chunk, I don't remember...
But here's the code to get loop data from a wav file in radium: https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugin_wav_p...
First it checks if there is a loop in the "smpl" chunk. If there isn't loop data there, it checks for "Loop Start" and "Loop End" cues.
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
hello all, i don't know if it is relevant, but my simple google search returned this software too:
http://loopauditioneer.sourceforge.net/
LoopAuditioneer is a software for evaluating, creating and manipulating loops and cues existing in wav file metadata. It's envisionaged to be useful for sample production for virtual pipe organs, like for instance GrandOrgue http://sourceforge.net/projects/ourorgan/ software.
Is available on http://sourceforge.net/projects/loopauditioneer/ by SVN.
Em qua., 12 de fev. de 2020 às 08:15, Giulio Moro via Pd-list < pd-list@lists.iem.at> escreveu:
libsndfile also can extract loop points from a variety of formats. The relevant code for wav is here https://github.com/erikd/libsndfile/blob/master/src/wav.c#L1140-L1163
Kjetil Matheussen wrote:
On Wed, Feb 12, 2020 at 10:56 AM Kjetil Matheussen k.s.matheussen@gmail.com wrote:
On Wed, Feb 12, 2020 at 10:14 AM Ingo ingo@miamiwave.com wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue
Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues,
Hmm, or maybe they are usually defined in the "smpl" chunk, I don't
remember...
But here's the code to get loop data from a wav file in radium:
https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugin_wav_p...
First it checks if there is a loop in the "smpl" chunk. If there isn't loop data there, it checks for "Loop Start" and "Loop End" cues.
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->
https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
How would loopautitioneer automatically reed the loop points from within Pd and transfer them?
I can reed the loop points externally with no problem. My problem is to set the loop points automatically from within Pd.
Ingo
From: José de Abreu [mailto:abreubacelar@gmail.com] Sent: Wednesday, February 12, 2020 3:08 PM To: Giulio Moro Cc: k.s.matheussen@notam02.no; Ingo; Dan Wilcox; Pd-List Subject: Re: [PD] Sample loop - start and end point (WAV files)
hello all, i don't know if it is relevant, but my simple google search returned this software too:
http://loopauditioneer.sourceforge.net/
LoopAuditioneer is a software for evaluating, creating and manipulating loops and cues existing in wav file metadata. It's envisionaged to be useful for sample production for virtual pipe organs, like for instance GrandOrgue http://sourceforge.net/projects/ourorgan/ software.
Is available on http://sourceforge.net/projects/loopauditioneer/ by SVN.
Em qua., 12 de fev. de 2020 às 08:15, Giulio Moro via Pd-list <pd-list@lists.iem.at mailto:pd-list@lists.iem.at > escreveu:
libsndfile also can extract loop points from a variety of formats. The relevant code for wav is here https://github.com/erikd/libsndfile/blob/master/src/wav.c#L1140-L1163
Kjetil Matheussen wrote:
On Wed, Feb 12, 2020 at 10:56 AM Kjetil Matheussen <k.s.matheussen@gmail.com mailto:k.s.matheussen@gmail.com > wrote:
On Wed, Feb 12, 2020 at 10:14 AM Ingo <ingo@miamiwave.com mailto:ingo@miamiwave.com > wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues,
Hmm, or maybe they are usually defined in the "smpl" chunk, I don't remember...
But here's the code to get loop data from a wav file in radium: https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugin_wav_p...
First it checks if there is a loop in the "smpl" chunk. If there isn't loop data there, it checks for "Loop Start" and "Loop End" cues.
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Can someone send me example files with encoding loop positions? I started with demo soundfile meta data reading/writing but now I need some sample files to work with. I saved a couple via Logic Pro X but the region info is saved as simple markers, not using instrument or sampler chunks.
On Feb 12, 2020, at 3:48 PM, Ingo ingo@miamiwave.com wrote:
How would loopautitioneer automatically reed the loop points from within Pd and transfer them? I can reed the loop points externally with no problem. My problem is to set the loop points automatically from within Pd.
Ingo
From: José de Abreu [mailto:abreubacelar@gmail.com] Sent: Wednesday, February 12, 2020 3:08 PM To: Giulio Moro Cc: k.s.matheussen@notam02.no; Ingo; Dan Wilcox; Pd-List Subject: Re: [PD] Sample loop - start and end point (WAV files)
hello all, i don't know if it is relevant, but my simple google search returned this software too:
http://loopauditioneer.sourceforge.net/ http://loopauditioneer.sourceforge.net/
LoopAuditioneer is a software for evaluating, creating and manipulating loops and cues existing in wav file metadata. It's envisionaged to be useful for sample production for virtual pipe organs, like for instance GrandOrgue http://sourceforge.net/projects/ourorgan/ software.
SOURCE CODE:
Is available on http://sourceforge.net/projects/loopauditioneer/ http://sourceforge.net/projects/loopauditioneer/ by SVN.
Em qua., 12 de fev. de 2020 às 08:15, Giulio Moro via Pd-list <pd-list@lists.iem.at mailto:pd-list@lists.iem.at> escreveu:
libsndfile also can extract loop points from a variety of formats. The relevant code for wav is here https://github.com/erikd/libsndfile/blob/master/src/wav.c#L1140-L1163 https://github.com/erikd/libsndfile/blob/master/src/wav.c#L1140-L1163
Kjetil Matheussen wrote:
On Wed, Feb 12, 2020 at 10:56 AM Kjetil Matheussen <k.s.matheussen@gmail.com mailto:k.s.matheussen@gmail.com> wrote:
On Wed, Feb 12, 2020 at 10:14 AM Ingo <ingo@miamiwave.com mailto:ingo@miamiwave.com> wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues,
Hmm, or maybe they are usually defined in the "smpl" chunk, I don't remember...
But here's the code to get loop data from a wav file in radium: https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugin_wav_p... https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugin_wav_parse.c#L253
First it checks if there is a loop in the "smpl" chunk. If there isn't loop data there, it checks for "Loop Start" and "Loop End" cues.
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list https://lists.puredata.info/listinfo/pd-list
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
Dan, do you mean a simple soundfile that has loop markers embedded? I have tons of them.
Do you need .wav or .aiff or both? Mine are usually .wav but I can convert it to .aiff as well.
I'll have to check on my old computer first to make sure whether the files header contain the loops.
Ingo
From: Dan Wilcox [mailto:danomatika@gmail.com] Sent: Friday, February 21, 2020 1:47 PM To: Ingo Cc: José de Abreu; Giulio Moro; k.s.matheussen@notam02.no; Pd-List Subject: Re: [PD] Sample loop - start and end point (WAV files)
Can someone send me example files with encoding loop positions? I started with demo soundfile meta data reading/writing but now I need some sample files to work with. I saved a couple via Logic Pro X but the region info is saved as simple markers, not using instrument or sampler chunks.
On Feb 12, 2020, at 3:48 PM, Ingo <ingo@miamiwave.com mailto:ingo@miamiwave.com > wrote:
How would loopautitioneer automatically reed the loop points from within Pd and transfer them?
I can reed the loop points externally with no problem. My problem is to set the loop points automatically from within Pd.
Ingo
From: José de Abreu [mailto:abreubacelar@gmail.com] Sent: Wednesday, February 12, 2020 3:08 PM To: Giulio Moro Cc: k.s.matheussen@notam02.no mailto:k.s.matheussen@notam02.no ; Ingo; Dan Wilcox; Pd-List Subject: Re: [PD] Sample loop - start and end point (WAV files)
hello all, i don't know if it is relevant, but my simple google search returned this software too:
http://loopauditioneer.sourceforge.net/ http://loopauditioneer.sourceforge.net/
LoopAuditioneer is a software for evaluating, creating and manipulating loops and cues existing in wav file metadata. It's envisionaged to be useful for sample production for virtual pipe organs, like for instance http://sourceforge.net/projects/ourorgan/ GrandOrgue software.
Is available on http://sourceforge.net/projects/loopauditioneer/ http://sourceforge.net/projects/loopauditioneer/ by SVN.
Em qua., 12 de fev. de 2020 às 08:15, Giulio Moro via Pd-list < mailto:pd-list@lists.iem.at pd-list@lists.iem.at> escreveu:
libsndfile also can extract loop points from a variety of formats. The relevant code for wav is here https://github.com/erikd/libsndfile/blob/master/src/wav.c#L1140-L1163 https://github.com/erikd/libsndfile/blob/master/src/wav.c#L1140-L1163
Kjetil Matheussen wrote:
On Wed, Feb 12, 2020 at 10:56 AM Kjetil Matheussen < mailto:k.s.matheussen@gmail.com k.s.matheussen@gmail.com> wrote:
On Wed, Feb 12, 2020 at 10:14 AM Ingo < mailto:ingo@miamiwave.com ingo@miamiwave.com> wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues,
Hmm, or maybe they are usually defined in the "smpl" chunk, I don't remember...
But here's the code to get loop data from a wav file in radium: https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugin_wav_parse.c#L253 https://github.com/kmatheussen/radium/blob/master/audio/Sampler_plugin_wav_p...
First it checks if there is a loop in the "smpl" chunk. If there isn't loop data there, it checks for "Loop Start" and "Loop End" cues.
mailto:Pd-list@lists.iem.at Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list https://lists.puredata.info/listinfo/pd-list
mailto:Pd-list@lists.iem.at Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list https://lists.puredata.info/listinfo/pd-list
Dan Wilcox
@danomatika http://twitter.com/danomatika
danomatika.com http://danomatika.com
robotcowboy.com http://robotcowboy.com
Yeah, one of each. I'm following the file format specifications but I also need real files to read & compare my own output with.
I've been so deep in this soundfile overhaul that I might as well see if we can add this.
On Feb 21, 2020, at 1:58 PM, Ingo ingo@miamiwave.com wrote:
Dan, do you mean a simple soundfile that has loop markers embedded? I have tons of them. Do you need .wav or .aiff or both? Mine are usually .wav but I can convert it to .aiff as well.
I'll have to check on my old computer first to make sure whether the files header contain the loops.
Ingo
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
Thanks a lot, Kjetil!
That's the information that I have been looking for!
Ingo
-----Original Message----- From: Kjetil Matheussen [mailto:k.s.matheussen@gmail.com] Sent: Wednesday, February 12, 2020 10:56 AM To: Ingo Cc: Dan Wilcox; Pd-List Subject: Re: [PD] Sample loop - start and end point (WAV files)
On Wed, Feb 12, 2020 at 10:14 AM Ingo ingo@miamiwave.com wrote:
Thanks, Dan!
They must be embedded in the "Marker Chunk" in AIFF and in the "Cue
Point Chunk" in the WAV format.
This gives me a further idea for searching on.
Yes, loops are usually defined as "Loop Start" and "Loop End" cues, but they can also theoretically be placed in the "smpl" chunk: https://sites.google.com/site/musicgapi/technical-documents/wav-file- format#smpl