<div dir="ltr"><div>tabread4~ does interpolation, but no on-the-fly resampling. soundfiler and readsf~ do this (IIRC), but they only support a (very small) handful of uncompressed file formats, one of which is dead already, but still seems to get some use in the computer music community for historical reasons.</div><div><br></div><div> I always thought that we had an object in the library somewhere that interfaces to libsndfile. Probably it's Tim Blechman's sndfiler~, but it doesn't seem to be built right now, although we include the sources. So I think that we should try to get this working, if only because libsndfile is the queen of reading and writing sound files in FLOSS land, and supports an abundance of audio file formats. Alas, there's one notable exception -- it doesn't support mp3 at present either. But at least there's an open ticket for it (<a href="https://github.com/erikd/libsndfile/issues/258">https://github.com/erikd/libsndfile/issues/258</a>) and there seems to be some work going on, so there's a faint chance that we might get it eventually.</div><div><br></div><div>Sorry, Joseph, I wish I had better news for you, but I think that the best solution that you can offer right now is to point your customers to some mp3 => ogg conversion tool. FLOSS developers just don't care much about mp3, even though the patent expired, as we have ogg which was free from the get-go (and many say that it's superior anyway). If your users want to take advantage of open source, they should be aware of these sentiments and willing to accommodate.<br></div><div><br></div><div>Best,</div><div>Albert</div><div><br></div><div><br></div><div>It looks to me<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 18, 2020 at 5:28 PM Ivica Ico Bukvic <<a href="mailto:ico@vt.edu">ico@vt.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 9/18/2020 11:08 AM, Jonathan Wilkes wrote:<br>
> On Fri, Sep 18, 2020 at 11:00 AM Ivica Ico Bukvic <<a href="mailto:ico@vt.edu" target="_blank">ico@vt.edu</a>> wrote:<br>
>><br>
>> On 9/18/2020 10:55 AM, Jonathan Wilkes wrote:<br>
>>> On Fri, Sep 18, 2020 at 10:12 AM Ivica Ico Bukvic <<a href="mailto:ico@vt.edu" target="_blank">ico@vt.edu</a>> wrote:<br>
>>>> Based on the help file this object needs a lot of love to be truly usable. See the transposing part on anything other than the 3 apparently hardcoded sampling rates...<br>
>>> So it can't play back vbr mp3s?<br>
>> Well, as of right now it can't do anything since it does not work :-).<br>
>> However, even if it did, it appears that vbr is not supported.<br>
>><br>
>>   From the help file:<br>
>><br>
>> "The player supports mono and stereo MPEG Layer III files. Any bitrate<br>
>> is supported - but we have tested 128Kb/s and 32 Kb/s only.<br>
>><br>
>> The sample rate of the output depends on the system sample rate of pd:<br>
>><br>
>> If the sample rate of pd is set to 44100, files having the sample rates<br>
>> of 44100, 22050 and 11025 are correctly played, other files will be<br>
>> transposed."<br>
> How do `[tabplay~]` and `[readsf~]` handle this?<br>
<br>
I can only think off top my head how tabread4~ does it, which is via <br>
4-point interpolation. Basically, if we can import the mp3 into array, <br>
all our problems will be solved. This would therefore limit our need to <br>
support the conversion/exporting part only, instead of also usability of <br>
yet another object that recreates much of the functionality. The would <br>
only leave the streaming part as a separate object that could <br>
potentially in-part piggy-back on the conversion thingy...<br>
<br>
><br>
> -Jonathan<br>
><br>
>>> -Jonathan<br>
>>><br>
>>>> That said, it would be great to be able to support mp3 file manipulation. What would be even better if you could simply load it into an array natively and export from it, then all the problems this object already has would become moot.<br>
>>>><br>
>>>> On 9/16/2020 7:06 PM, Linux ROUEN Normandie wrote:<br>
>>>><br>
>>>> Le 17/09/2020 à 00:01, Jonathan Wilkes a écrit :<br>
>>>><br>
>>>> On Wed, Sep 16, 2020 at 4:49 PM Linux ROUEN Normandie<br>
>>>> <<a href="mailto:linux.rouen@free.fr" target="_blank">linux.rouen@free.fr</a>> wrote:<br>
>>>><br>
>>>> Thanks Jonathan,<br>
>>>> But that means it's not usable by a standard project user.<br>
>>>><br>
>>>> What means that?<br>
>>>><br>
>>>> Well, translation from a poor French man speaking poor English (LOL):<br>
>>>> What I meant is that if you are not a guy who builds patchs/subpatchs using available objects but only a one who is using a ready-to-go project (assembly of patchs) built by someone else, you will never do what have been suggested. Not everybody is a developer-programmer, even I. So, what about a standard user of Purr Data / Pd Vanilla!<br>
>>>><br>
>>>> You have to<br>
>>>> put your hands under the hood and then into the dirty engine.<br>
>>>> I just checked [mp3play~] with 'iemlib' r.1.17 properly installed and<br>
>>>> declared under Pd Vanilla v.0.50.2 and it's the same bad behavior than<br>
>>>> under Purr Data v.2.13.0. Even more, here 'mp3play~-help.pd' is not<br>
>>>> present at all.<br>
>>>><br>
>>>> Do you know where the source code is for the version of mp3play~<br>
>>>> available through Vanilla?<br>
>>>><br>
>>>> As I wrote it, it's not available under Pd Vanilla 0.5.2 / iemlib 1.17 but only under Purr Data, as far as my little experience.<br>
>>>> I attach to this email what I guess could be the main source file (mp3play~.c), but with no guarantee at all, awa its help file (mp3play~-help.pd).<br>
>>>> This 'C' file seems to have been tested/working only on: 'debugged for windows 013-03-2003' (line 13 of the file).<br>
>>>> These 2 files and few others can be found on your Git repository at: '/purr-data/externals/iemlib/iem_mp3/' (accordingly to the copy I have on my GNU/Linux PC).<br>
>>>><br>
>>>> - Joseph<br>
>>>><br>
>>>> -Jonathan<br>
>>>><br>
>>>> -Joseph<br>
>>>> - - - - - - - - - - - - - - - - - - - -<br>
>>>> Le 16/09/2020 à 21:13, Jonathan Wilkes a écrit :<br>
>>>><br>
>>>> On Wed, Sep 16, 2020 at 2:37 PM Linux ROUEN Normandie<br>
>>>> <<a href="mailto:linux.rouen@free.fr" target="_blank">linux.rouen@free.fr</a>> wrote:<br>
>>>><br>
>>>> Hello Folks,<br>
>>>><br>
>>>> I'm looking for some advises regarding Recording and Playing MP3 files -directly- inside Purr Data v2.13.0+ under GNU/Linux and Windows.<br>
>>>><br>
>>>> In my MIDI/Audio projects under Purr Data I'm already using successfully:<br>
>>>> - [oggwrite~] / [oggread~] for .ogg (Vorbis) files (with lossy audio compression), and<br>
>>>> - [writesf~] / [readsf~] for  .wav, .aif, .au and .snd files (with uncompressed linear pulse-code modulation).<br>
>>>><br>
>>>> But some users are requesting, among other demands, the possibility to handle also MP3 (with lossy data-compression) for extending the number of compatible Audio equipment (like TVs) able to read them.<br>
>>>><br>
>>>> After analysis I found only 2 objects -not tested yet- from the 'unauthorized' library being able to deal with MP3:<br>
>>>> - [mp3write~] an MP3 file recorder v.0.4, and<br>
>>>> - [mp3cast~] an MP3 streamer v.0.5.<br>
>>>> But there is nothing about an MP3 file reader/player.<br>
>>>><br>
>>>> Despite the many libraries installed by default, Purr Data could not create any of the following objects (see towards the end of the link - FR):<br>
>>>> - [mp3amp~],<br>
>>>> - [graphic-mp3amp~],<br>
>>>> - [mp3live~],<br>
>>>> - [mp3streamout~],<br>
>>>> - [mp3streamin~],<br>
>>>> - [mp3fileout~], and<br>
>>>> - [mp3play~] from 'iemlib library'.<br>
>>>><br>
>>>> * [mp3play~] should be in the 'iemlib' library but it's not there when its help file is well present in '/opt/purr-data/lib/pd-l2ork/extra/iemlib/mp3play~-help.pd'.<br>
>>>> One strange thing is that the 'mp3play~.c' file is well present on the Git copy I made from Jonathan's repo for my French translations in:<br>
>>>> - '/home/joe/GitLab/purr-data/externals/build/src/mp3play~.c' (47 bytes), and<br>
>>>> - '/home/joe/GitLab/purr-data/externals/iemlib/iem_mp3/src/' (107 kB).<br>
>>>><br>
>>>> mp3play~ is not currently getting built (and wasn't in Pd-extended, either).<br>
>>>><br>
>>>> What a weirdo class structure! After compiling it, you must first create this:<br>
>>>><br>
>>>> [iem_mp3]<br>
>>>><br>
>>>> Which will then go in and trigger the setup routine for mp3play~, so<br>
>>>> that you can then do this:<br>
>>>><br>
>>>> [mp3play~]<br>
>>>><br>
>>>> Both will create properly. I was able to play the test file and it<br>
>>>> seemed to output something, though couldn't get my headphones to work<br>
>>>> so I don't know if it sounded right.<br>
>>>><br>
>>>> It appears there are no dependencies for this object, so if we add it<br>
>>>> then it will work in the web app, too!<br>
>>>><br>
>>>> I guess the first thing to do is look in Pd Vanilla and see if anyone<br>
>>>> has done work on this object since 2003.<br>
>>>><br>
>>>> -Jonathan<br>
>>>><br>
>>>> Any ideas - suggestions about an available and working [MP3 file reader/player] object?<br>
>>>> Thank you.<br>
>>>> - - - - - - - - - - - - - - - - - - - -<br>
>>>> Best,<br>
>>>> Joseph Gastelais<br>
>>>> LINUX ♥ ROUEN ♥ Normandie<br>
>>>> - - - - - - - - - - - - - - - - - - - -<br>
>>>> _______________________________________________<br>
>>>> L2Ork-dev mailing list<br>
>>>> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
>>>> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> L2Ork-dev mailing list<br>
>>>> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
>>>> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> L2Ork-dev mailing list<br>
>>>> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
>>>> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> L2Ork-dev mailing list<br>
>>>> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
>>>> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> L2Ork-dev mailing list<br>
>>>> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
>>>> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
>>>><br>
>>>> --<br>
>>>> Ivica Ico Bukvic, D.M.A.<br>
>>>> Director, Creativity + Innovation<br>
>>>> Co-Director, Human Centered Design iPhD<br>
>>>> Institute for Creativity, Arts, and Technology<br>
>>>><br>
>>>> Virginia Tech<br>
>>>> Creative Technologies in Music<br>
>>>> School of Performing Arts – 0141<br>
>>>> Blacksburg, VA 24061<br>
>>>> (540) 231-6139<br>
>>>> <a href="mailto:ico@vt.edu" target="_blank">ico@vt.edu</a><br>
>>>><br>
>>>> <a href="http://www.icat.vt.edu" rel="noreferrer" target="_blank">www.icat.vt.edu</a><br>
>>>> <a href="http://www.performingarts.vt.edu" rel="noreferrer" target="_blank">www.performingarts.vt.edu</a><br>
>>>> <a href="http://l2ork.icat.vt.edu" rel="noreferrer" target="_blank">l2ork.icat.vt.edu</a><br>
>>>> <a href="http://ico.bukvic.net" rel="noreferrer" target="_blank">ico.bukvic.net</a><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> L2Ork-dev mailing list<br>
>>>> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
>>>> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
>>> _______________________________________________<br>
>>> L2Ork-dev mailing list<br>
>>> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
>>> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
>> --<br>
>> Ivica Ico Bukvic, D.M.A.<br>
>> Director, Creativity + Innovation<br>
>> Co-Director, Human Centered Design iPhD<br>
>> Institute for Creativity, Arts, and Technology<br>
>><br>
>> Virginia Tech<br>
>> Creative Technologies in Music<br>
>> School of Performing Arts – 0141<br>
>> Blacksburg, VA 24061<br>
>> (540) 231-6139<br>
>> <a href="mailto:ico@vt.edu" target="_blank">ico@vt.edu</a><br>
>><br>
>> <a href="http://www.icat.vt.edu" rel="noreferrer" target="_blank">www.icat.vt.edu</a><br>
>> <a href="http://www.performingarts.vt.edu" rel="noreferrer" target="_blank">www.performingarts.vt.edu</a><br>
>> <a href="http://l2ork.icat.vt.edu" rel="noreferrer" target="_blank">l2ork.icat.vt.edu</a><br>
>> <a href="http://ico.bukvic.net" rel="noreferrer" target="_blank">ico.bukvic.net</a><br>
>><br>
>> _______________________________________________<br>
>> L2Ork-dev mailing list<br>
>> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
>> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
> _______________________________________________<br>
> L2Ork-dev mailing list<br>
> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
<br>
-- <br>
Ivica Ico Bukvic, D.M.A.<br>
Director, Creativity + Innovation<br>
Co-Director, Human Centered Design iPhD<br>
Institute for Creativity, Arts, and Technology<br>
<br>
Virginia Tech<br>
Creative Technologies in Music<br>
School of Performing Arts – 0141<br>
Blacksburg, VA 24061<br>
(540) 231-6139<br>
<a href="mailto:ico@vt.edu" target="_blank">ico@vt.edu</a><br>
<br>
<a href="http://www.icat.vt.edu" rel="noreferrer" target="_blank">www.icat.vt.edu</a><br>
<a href="http://www.performingarts.vt.edu" rel="noreferrer" target="_blank">www.performingarts.vt.edu</a><br>
<a href="http://l2ork.icat.vt.edu" rel="noreferrer" target="_blank">l2ork.icat.vt.edu</a><br>
<a href="http://ico.bukvic.net" rel="noreferrer" target="_blank">ico.bukvic.net</a><br>
<br>
_______________________________________________<br>
L2Ork-dev mailing list<br>
<a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
<a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a></blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Dr. Albert Gr"af<br>Computer Music Research Group, JGU Mainz, Germany<br>Email: <a href="mailto:aggraef@gmail.com" target="_blank">aggraef@gmail.com</a>, web: <a href="https://agraef.github.io/" target="_blank">https://agraef.github.io/</a></div></div></div></div></div></div>