Patch share - midi looper for beginners (polymidiXL)

midi

#1

Hello, this is a bit of a duplicate post (as I posted in SirSickSik too).

But here is my basic midi looping patch, in case it helps other beginners out there.

It uses SirSickSik's polymidiXL to loop any incoming midi on the DIN input (midi cable), and then it outputs this to the midi DIN output.

Separately, you can control the recording and playback of the midi looper using midi note 1 of a connected USB controller, and also delete all notes using midi note 7 on the same USB controller.

There is a metronome, so you can play along (this looper is for syncronised quantised playback with other devices).

It's not really perforamnce ready, lots of glitches, but hopefully it helps another beginner.

images and axo file attached to this post. I've tried to comment things, but having spent so long already on this, it's not so thorough. Feel free to ask any questions.

sharp midi looper_v10_working.axp (23.4 KB)

Main patch

Sub patch A - USB controls for start and stop

Sub patch B - main midi looping and metronome (built on the excellent sss polymidiXL)


#2

if i go with patcher 3 live:

! C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.h.gch
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp: In member function 'void rootc::instancectrl0x123::MidiInHandler(midi_device_t, uint8_t, uint8_t, uint8_t, uint8_t)':
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:302:6: error: 'attr_mididevice' was not declared in this scope
if ( attr_mididevice > 0 && dev > 0 && attr_mididevice != dev) return;
^
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:303:6: error: 'attr_midiport' was not declared in this scope
if ( attr_midiport > 0 && port > 0 && attr_midiport != port) return;
^
make: *** [C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.bin] Error 1
shell task failed, exit value: 1
Compiling patch failed ( patcher_3 )

if i start the main patch a pulsating noise is outputted...


#3

You should only go live with the main patch, after updating patcher_3 and patcher_2 to suit your setup. I think the pulsating noise is the metronome, which you can find and mute in patcher_3.

It worked fine for me, although it took some to figure out how it worked. Make sure you pick the right midi channel, as well as change the trigger for recording and clearing the loop (patcher_2) to suit your controller.


#4

Thanks for the explanation.

I’d love to make it simpler and performance ready but I just find the Axo too hard and time consuming to get working (coming from a pd and MaxMSP background), or rather I’m choosing to put my efforts into other music/tech projects.


#5

I guess I’d rather spend my time building something complicated on pd as I have more options to port to other things - raspberry pi, bela, etc. And I think the learning curve is a little less steep working in an events driven world (instead of the signal world of Axo)

Or maybe the live performance tools I want to make are more events based rather than signal based (I’m not trying to build synths and effects and that’s the main aim of the Axo)