A set of Pure Data utilities used for looping input from a MIDI keyboard.

Nathan Christopher McRae f09712383b Add looping and qlist retriggering based on ms timer; pretty much working now 3 years ago
README.md ac2768f07e Have controls directly modify midilooper state instead of using states 3 years ago
armablemidirouter.pd cc54c86a7a Add initial files 3 years ago
channelctlin.pd cc54c86a7a Add initial files 3 years ago
convertosc.pd cc54c86a7a Add initial files 3 years ago
loopermidiout.pd cc54c86a7a Add initial files 3 years ago
midi_sustain.pd 9140f2afce looks like I just updated some documentation and maybe cleaned up. it's been a while 3 years ago
midilooper-help.pd 7198f84140 Start moving to ms timer based looping 3 years ago
midilooper-test.pd cc54c86a7a Add initial files 3 years ago
midilooper-wrapper.pd 7198f84140 Start moving to ms timer based looping 3 years ago
midilooper.pd f09712383b Add looping and qlist retriggering based on ms timer; pretty much working now 3 years ago
my_testtone.pd 64687a5d0d Add midi_sustain and my_testone 3 years ago
oscdemo.pd cc54c86a7a Add initial files 3 years ago
sustain.pd 94dd85594a Add sustain mocker 3 years ago

README.md

pd-midilooper

A MIDI looper written in Pure Data. Requires nothing but Vanilla PD (developed using Pd-0.47-1-64bit on a Mac).

The motivation is to provide a Pure Data looper capable of real-time recording MIDI events (notes, cc, pitch bend) and then looping the recording. Currently, the feature set is very simple: only recording, playing, stopping and clearing the loop are supported. In theory it's also possible to improve the looper to support step-based recording, quantization and changing the tempo of a loop while it is playing.

Usage demonstration can be found in midilooper-help.pd

TODO:

  • update help and give example of muting, tempo change
  • BUG: pitch bend doesn't seem to work well
  • test CC looping

Nathan's Notes

alterred midilooper-help.pd to allow multi-track recording.

I use loopMIDI to route MIDI messages between this and pianoteq.

Problem: I want to be able to loop based on raw start-end times rather than on beats like it's currently architected.

Maybe base looping on another ms counter instead of beats.