Most recent patches:
midi looper full fat v5.0.axp (101.9 KB)
midi looper basic cheap v5.0.axp (68.4 KB)
lpad 3trak v2.0.axp (218.1 KB)
lpad 1track v2.0.axp (94.0 KB)
I posted an earlier version of this in my contrib thread, posting it here to stop that thread getting bogged down in looper talk before it's ready for the library.
Anyway, it's my new midi Looper setup. I'm still working on it but I've been on a bug hunt and I think it's pretty much done.
It's 6 new objects - clock receiver, note recorder, pitch bend recorder, cc recorder, poly touch recorder and channel touch recorder. I've tested it fairly thoroughly and it seems to hold up. If anyone wants to test and let me know any problems they come across that would be great. Feedback is welcome!
Modular - take out the features you don't need (don't want to record poly touch? delete the object, just make sure the offsets are chained).
Polyphony - The polyphony is high! It should be possible to have 32 notes trigger at the same start point, and possibly more playing at once with different start points. I haven't hit the limit yet... You can set a range of notes, a smaller range of notes will lower the dsp load. Notes outside that range will not be recorded. So, if you're recording a16 pad grid, limit the note range to those 16 notes and it'll use less processing. Poly touch recording has a poly limit of ten.
Resolution- Each of the recorder objects can be set to its own resolution, from 24ppq to 192ppq
Quantize - 6 quantize amounts: 1 bar, 1/2 bar, 1/4, 1/8, 1/16, 1/32. If triplets are turned on this changes to 1 bar, 1/3, 1/6th, etc. Or record unquantized at whatever the ppq is set to. Note lengths are preserved (I.e. Note end moves the same amount as the note start.)
Clipslots - adjustable amount of slots you can record into. Triggering the slot works similarly to Ableton. If you trigger an empty slot it will record, trigger it again or it reaches the maximum bar length, it will play. Trigger a playing slot and it will restart, etc.
Clip length - you can set a maximum amount of bars for the loop.
Quantized transport- triggering/stopping clips is quantized to the bar.
Erase shift - if erase shift is on and you hold a note, any recorded instances of the same note that play will be erased.
Clear- you can clear/delete clips while another is playing.
Undo - deletes the note you recorded last.
Cc recording - it uses three tracks, any track will record any cc.
Table sizes - sizes of table needed can differ drastically depending on the max bar and max slots settings. And also the resolution of the cc/bend/touch recorders. The resolution of the note recorder doesn't affect the table size needed, but it may save a little processing when lower.
My 'full fat' 7 clips, 8 bars maximum, all recorders at 192ppq patch needs a table size of at least 1304576. My super cheap 1 slot, 4 bar maximum Looper with just note and pitch bend recorders, with notes at 192ppq and bend at 24ppq, needs a table of at least 1792.
You can see the table size needed by using a display object hooked up to the last offset output.
Notes/instructions are in the patch.
To be worked on -
the poly touch recorder at present doesn't delete corresponding touch when notes are deleted from the player, it just clears all when the clip is cleared. It works fairly well as is, but things might get confused when overdubbing a lot.
Full fat - all recorders at 192ppq, 7 slots, each with an 8bar maximum.
midi looper full fat v2.0.axp (99.6 KB)
Cheap basic - just notes and bend, with notes at 192ppq, bend at 24ppq. 1 slot with a 4 bar maximum.
midi looper basic cheap v2.0.axp (66.2 KB)