It took some time, but now we have a good SC interface. We also found some ironing was needed in some of the Max code that way, so win-win. We now need you to work with it, and make your list of missing bits, best of, etc for the plenary which is in 5 weeks (yikes!)… speaking of which, I’ll write to you soon about it - format content and expectations from you and us.
Here is a cursory changelog. Nobody wants to read dozens and dozens of commit messages, right?
I hope you enjoy. Please let us know if anything is wrong. It should be all fine, but there are some daring changes in there!
Major changes in the SC interface. Most of your code will break but this is for the best. To make it short, read the help files and example code. They rock.
- we can now populate dataset 3 ways: via Dictionaries, via single buffer triggered from language (Routine, the old way, but faster) and all on the server-side (via Done.kr and triggers). And it is mixed and matched too!
- added utilities to build corpus change their format
- all help files have examples
- the learning examples are updated too
Some in Max too.
- unified dataset builder helpers format
- helpfiles have had a lot of typos/loading issues now sorted
- super mega bug in TB1 that nobody found before because it was so edge-case… now sorted
Some in both:
- 3 new sounds as an example (feel free to let us know what is missing, and who knows, you might even want to contribute)
- [breaking change] human-readable JSON
Keen to learn some more SC with this stuff
me too to be honest… @groma is daboss, and @weefuzzy is getting dangerously good too. Humbling!
First of all, this new version is amazing. BRAVO!!! I am currently processing a 5gb folder with 36000 points. We’ll see if it makes it!
- Are the startFrames and endFrames of files supposed to overlap like this:
[ SergeCMC1.wav, IdentityDictionary[ (bounds -> [ 0, 3195394 ]), (numchans -> 2), (sr -> 44100) ] ]
[ SergeCMC5.wav, IdentityDictionary[ (bounds -> [ 10373230, 12423251 ]), (numchans -> 2), (sr -> 44100) ] ]
[ SergeCMC6.wav, IdentityDictionary[ (bounds -> [ 12423251, 13063118 ]), (numchans -> 2), (sr -> 44100) ] ]
[ SergeCMC4.wav, IdentityDictionary[ (bounds -> [ 7394495, 10373230 ]), (numchans -> 2), (sr -> 44100) ] ]
[ SergeCMC2.wav, IdentityDictionary[ (bounds -> [ 3195394, 3925478 ]), (numchans -> 2), (sr -> 44100) ] ]
[ SergeCMC3.wav, IdentityDictionary[ (bounds -> [ 3925478, 7394495 ]), (numchans -> 2), (sr -> 44100) ] ]
The last frame and the first frame of the next buffer are the same. It seems to me that things are off by 1. For example, the first buffer I have is 3195394 long, but it says the first frame is 0 and the last frame is 3195394. Shouldn’t it be 3195393? Or is there a gap in the integrated buffer? Or maybe it just starts at 1?
Glad you’re finding things improved! Yes, that’s the way I coded it, purely because it was very simple that way (see
FluidLoadFolder.play), but I could be persuaded of your case