Concatenate a folder using fluid.bufcompose

You should be able to specify a folder of files and have them be concatenated (with or without optional arguments) rather than manually joining individual pairs of buffers.

To be honest, that feels like a feature-creep too far – at least to do in Max / SC – as we’d have to introduce filesystem access etc. @danieleghisi has suggested that a command line interface would be useful: this would need to work with the filesystem instead of buffers, so such a thing might be possible there (although something like Sox probably already does this).

Does this patch fulfill your current needs?


----------begin_max5_patcher----------
1843.3oc0Z07abhCE+7j+JPndLMAiAFlJ0UpR6Vo8vp8vpc2CUqF4A7LwMfM
BLIoaU6e60e.DXlAvShmz1CYH7rwu2626Ca+r+7EKb2vd.W457FmO3rXwmuX
wBEIIgEMuuvMG8PRFpR0MWJ9d1lO5dotIN9AthbU8lJNgWywNaYYoNaPzcsc
ph+oLrpWsTn04rZdFlqFS+FpEHdxMD5t0k3DtVlB78ux6RmX0u.Pn7gjjy+0
7MjT0.KDoW6urc30iM+SEX8nH3q3utuQvcBsi4RZe4hKj+bogXPNtpBsCeHH
HFSx+ic7b7LU2Ayp6.Pj7QT7j5d335t8z6Qr8ap2tEW9UmzJt8L4f.kBGsbR
0FNpZuMig3R6txS73X.vdXPgSN5VrSd0NKX48gQWEdoSPfBIVFMID3epV9AL
FW1nqMJ6B2sjL7c3xJBi1q2KbQEE8Hun2mHQnOxTCzxK6HQnZRvNRk36Hsee
PGUToP84BcutTCWODE393vvRwkzZRm4RYqtnc.6bZBUfDzSgXvPO4i.POLSX
W2kwRtEqfNuVhrBLkPKJwUXJGwajttlSwaQ0Y70aYTUnsRLj73HsuEkfG8io
nbs18tRBJqU+b2URRYToPL.qkjaY2Gbzo8j+9nxn5AEUbjOV3UHvkQZrRnj0
UaPkRSwFsCpeaibFKaXSceWFdKuo4BBktGJxYEi2XIY2MS7saXhFymZrUsTs
tlpacsHVjutBc2PzlixxZBNGN7OfnjbDGyIZSfuWWiXJRnn2TkTxxxFnu5Vt
6HsjJ7hSv2SR42nXTemAQ2IEsNQtcV4TxNbEeHMNZW0PJGjvXgbV0lnz0bbd
QlPKF1gASe2OjreZrAzmJc1vTZbGhCoeKGJfilXerLaqBjI1.Apn0X39I1NH
4VeFcP9MBUkfW9Xv.bXN9Es44axe7yAXoyhEoRoEAk.2TXE3mFrp.kbqXMRU
mNfALAv7CT9U.+kyAYqlDxl.nfuL.0uzsNRagPMwedZfZ0b.zxY8oFGi7sHF
Umio0mJT.MBJVATqXHdNnHxcvvUJlOmKRKqmmn+LNSE9MXeHZNHxq2j.2spL
Q1gKk+HWK8DAp8ZPBMxUIYaLe3lb1KBtjkHZ1QHwh.4WCz+.bdk7+dkeOZuB
1aaAVNNek9Q3x4lFI.9TCzsIfpF0yCR3oW7a6uiNEwyIdtu+cBKW31wOP1Iz
T7C1dlDsbdp.mmI.GL.XFx464ZRr3SBWdbQ8YD5XqlSoBx1ONfUwpKSZsiMY
tcFpMhUmxIzts37gtUXI6mQlqSUF7MTFhNyx.v.YPrT.G+yjL.LDGVcFwAfo
NDfyoPXnwX4YTFhNAGBvYRFVYnsPNu0YCHZG74SQ3MpTzPrshLtxMkmtVW.h
0HNujrolqSo0uDSmzFk2kw1fxZ1FbWYTlZWyOt05KdTdsSY9RwawkYr6sPQ9
.w50bBUSAENYQ9fmbM9rmJK5CIuN27RZ6OegM8VoJrIbJcNb7x4ejMyd1Jt8
qc.1qhtP3piuwqAJdvjJ9YWi2g4xPWmJTdQko5NbdcWWa13IM5AASeFNW9R3
wuMqljd0l5shkyUvpve0hkzeoZyJ.uIOMm.vnnvKzoYThKvzTGwiLYUssW1N
OU1tUSdpNvfuio6d6asxg2AE1aPTTTXjH2dndWFSd5kPuuyQ8HNVrfGqjrSX
jE15vUpjcgASo1fUeGO3RtXYMDKLsFLPooMA2SOUNH9oOslEcySX0TNtzTkO
X1Lag5ioFDEO0bafv4z91+FGEBs+IWqp71y1MnMGWTv7mbM3GlSt1tmduu19
CiAFfA9+nfAkL4EWofUTqNhM6kQPeB9wSCCfWp6sxLy1Kdtk7fMlrWe2MZt4
JSq8wuDy0mVxJj2qgNUWvk1ptKutRCXkgA6M5nNY+J0pZCCG4NZ7TLvOE8r+
4jbDCHply5bx6YB6CG+669meSJUu62e+6GCVfyCKsy56Momua2.M54oX1Yo3
136JG4+.k7m+0at9uqvkUWytGSu9WEleAvc86wI2vtVfXWK2aSFt55VAn+wv
jvnIHN3p6Q20cbLZZ9CncKI41zx5bfO3nz887FPuhhJwxFBFgLXD559OuWhp
GCKhr1oY+RC035bXwRGTjvwJGT3ikC5.2Si4T+pvMFiVZIFMmFEaC9DZBzAs
.mBMxH4aCcxDvK.XANAVY.mFTFc2bRZASjJnwU2GnWvgdSV.H3J+vCdEzby.
BWdU6aOSAGZhbaCqtbOwyxIavHfAQl6IL6aJB0SADqer5w2dtd9lfAg1HqQf
QbJvVbZN7FXinYfIYn.8N1imtNALgS1XZDUn0bnWfMrSPOSQuQiKfAgWE0VR
nlxfpyZodyFlW+4Bb8rAnGahKqTbBrAmLxQBNJnGp1OZnmJku7Mfe66OWoyH
27XKkSdNSKvFyCGa9zvGrty8te3RVr28Beu6D9g2G7wuK36eOvEb9KW7MqtE
FnC
-----------end_max5_patcher-----------
2 Likes

Yup, that does it!

I only mentioned it as that’s what I imagined the external would be for in the first place.

Well, this object has sort of evolved a bit by accident: it was originally for helping PA make the help files, so more orientated to mixing than joining. It’s wild that it’s the object that’s getting so much attention, really. For me, it’s teetering on the edge of being usable and if people value being able to do these things, we should come up with a much better interface before this stuff goes public.

applying window functions or short fades to beginning and end of the source buffer before copying to the destination might be another useful feature

If windowing is needed, it can be done in many other objects after loading (hirt has one for instance) - I think I will vote that this object keeps doing what it does: sum 2 buffers to a 3rd one. With that and clever user-scripting, we have a new feature in max. Granularity of code is important and i think that sampling rate conversion and enveloping can be done elsewhere.

@rodrigo.constanzo Hi rodrigo, the ears library I’ve posted in the other thread should solve this problem. Look at the sample patch “concatenatefolder.maxpat”. Hope that’ll help.

1 Like

Daniele, this is great!!!
Just one quick question for the concatfolder patch. The very last sound in a folder seems to be the first element in the new buffer. From there on all other files are from the beginning.
The right side of the screen shot is the original folder. I added a bach.reg to see the output from
bach.path2llll

Hi, I am away from keyboard, but it may be that the file system doesn’t sort them properly. That happened on filesystem change of OSX.
Put a bach.flat and a bach.sort before the ears.fromfile and that should solve it…