piz midi looper (beta!)

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

insertpizhere wrote:At the moment it always follows the host tempo. I can add an option for using the MIDI file's tempo, but I need to think about how to handle it when playing multiple MIDI files with different tempos simultaneously...
Hold off on that feature, I'm thinking I found a way around the problem by talking to MIDI-OX and VSThost by MIDI CC messages in order to change its tempo when I need to.
insertpizhere wrote:It shouldn't send any MIDI messages other than what is stored in the sequence, so those CCs at the end of the loop must be in the MIDI files you loaded. Someday I'm going to add CC editing so it will be possible to remove things like that from within midiLooper.
I loaded the MIDI files back into my sequencer (Rosegarden) and looked in the event viewer, but there are no CC events in there. So I'm going to have a project here trying to figure out where that's coming from or how to block it. Right now midiLooper is set to output straight to the MIDI interface output. I'm not sure if possibly VSThost is possibly still in the loop there or not. I have never written a VST before, so I don't know if everything still goes through VSThost, or if a VST still has direct access to the OS and can talk to devices directly.

Post

captain caveman wrote:
insertpizhere wrote:At the moment it always follows the host tempo. I can add an option for using the MIDI file's tempo, but I need to think about how to handle it when playing multiple MIDI files with different tempos simultaneously...
Is there a way to use it freestyle (recording) at the moment? Maybe this is the cause of the lost first notes issue I am having because I am expecting it to work when I record at any tempo in Sample mode?
If you want to record without reference to tempo, you should set Loop Step Size to "1 Tick", otherwise it will move the loop end point to fit a whole number of bars (or beats, etc.). Sample sync mode just means it ignores the host's playback position.

When you start recording close to an increment of the Loop Length Step, it moves the loop start forward, but it's not supposed to do that in Sample mode, and it's supposed to trim any held notes to start at the loop start time. So, there could be a bug there...
wrongtastic, baby
tucson's number one gothic rock band since 1995

Post

Cool, I'll give that more of a bash later. I checked it out but ran across this bug when trying to tidy the events up...

- When a larger note is dragged either horizontally or vertically through a smaller note in the PRV, either the selection changes to the smaller note or the size of one or both notes is altered.

(When it's a smaller note being dragged through a larger note there is a visual change during the drag, but returns to normal when the note leaves the area of the note being dragged through).

Post

guitard00d wrote:I loaded the MIDI files back into my sequencer (Rosegarden) and looked in the event viewer, but there are no CC events in there. So I'm going to have a project here trying to figure out where that's coming from or how to block it. Right now midiLooper is set to output straight to the MIDI interface output. I'm not sure if possibly VSThost is possibly still in the loop there or not. I have never written a VST before, so I don't know if everything still goes through VSThost, or if a VST still has direct access to the OS and can talk to devices directly.
If you use the direct MIDI output from midiLooper, it doesn't go through VSThost. I tried and looked at the code but couldn't find any extra messages being generated... If you wouldn't mind sending me a MIDI file that has the problem, I'd be interested to see what's going on.
wrongtastic, baby
tucson's number one gothic rock band since 1995

Post

captain caveman wrote:Cool, I'll give that more of a bash later. I checked it out but ran across this bug when trying to tidy the events up...

- When a larger note is dragged either horizontally or vertically through a smaller note in the PRV, either the selection changes to the smaller note or the size of one or both notes is altered.

(When it's a smaller note being dragged through a larger note there is a visual change during the drag, but returns to normal when the note leaves the area of the note being dragged through).
I noticed that... now it's changed (version 1.4.7) so this won't happen when dragging notes through other notes, but it will still get weird if they're still overlapping when you stop dragging.
wrongtastic, baby
tucson's number one gothic rock band since 1995

Post

Thanks, that has indeed sorted that out.... good idea with the rectangle showing original position too (unless I am totally tripping and that was in there before! :) ).

How do you feel about seperating Scale and Transposition btw? I was, as I reported before, using the Scale/Transpose channel to play chords in order to force the MIDI to a chord. This is good fun and improvements on the Splitting behaviour would be most welcome for this.

In a slightly more organised jam though, it should be possible to set the Scale globally and seperately from the Transposition value. At the moment if the Scale Channel is used it is tied to the Transposition value. So transposing slots up and down in a different key is not possible without going through every single slot and disabling/changing the Scale since pressing one key to attempt a transpose changes the Scale to one note.

On a similar transposition note, I came across an excellent "plugin" in Bars n Pipes where you can limit the amount of transposition of a track (read slot (obviously (just sayin'))) to X octaves/semitones above/below original notes. So instead of transposing C5 to A6 in a 9 semitone transposition, it would become A5.

It would be fantastic if you could implement that!

Post

captain caveman wrote:In a slightly more organised jam though, it should be possible to set the Scale globally and seperately from the Transposition value. At the moment if the Scale Channel is used it is tied to the Transposition value. So transposing slots up and down in a different key is not possible without going through every single slot and disabling/changing the Scale since pressing one key to attempt a transpose changes the Scale to one note.
Well, it is possible, but you have to press all the notes of the scale every time; the lowest held note is used for transposing. Or you could transpose with host automation instead of note input. But it wouldn't be hard to add a second slider for separate scale and transpose channels, and I guess it wouldn't add too much more complexity.

(Also note, for most settings you can hold ctrl while clicking to set it for all slots at once)
On a similar transposition note, I came across an excellent "plugin" in Bars n Pipes where you can limit the amount of transposition of a track (read slot (obviously (just sayin'))) to X octaves/semitones above/below original notes. So instead of transposing C5 to A6 in a 9 semitone transposition, it would become A5.

It would be fantastic if you could implement that!
I might try this in my dedicated transposer plugins first (midiTranspose, midiForceToKey) before trying to find room for it on the midiLooper GUI...
wrongtastic, baby
tucson's number one gothic rock band since 1995

Post

Awesome work on the new version. Now I can finally channel different instruments through each loop using midi thru, which is very cool (and useful).

My only major issue is that after I record midi, there's a significant delay added to the notes when they're saved as a pattern. I hear no delay when I record the notes, but when I stop recording, they're all shifted to the right offbeat. I don't get this shift when I record normal midi tracks in Reaper.

On a side note, as already mentioned by others, I also get muted initial notes when I start playing my sequence with some loops set to Play.

Post

I'll check the timing in Reaper. Recording from Reaper's virtual keyboard it seems right, but there was another report of the timing being wrong when recording from an external midi input in Reaper so I'll have to test that.
wrongtastic, baby
tucson's number one gothic rock band since 1995

Post

So far, I'm able to "work with it"...But there are a couple oddities that are causing me grief. I don't know what language this was written in, but if you have a way of compiling a DLL with debug code in it, that may help. The two issues I'm encountering are this...

1. I can only use 3 sequence loops of about 150 events each, or my CPU usage goes through the roof. This is odd because this is only MIDI data, not samples or extreme processing. Even the little laptop I'm running it on (a dual core Pentium 4 at 1.66 GHz per core with 4 gigs of RAM) is able to handle far more complex MIDI data with other programs just fine.

2. Memory allocation errors when jumping back and forth quickly between MIDI loops. This is odd as well because this would indicate arrays being allocated and not properly disposed of, or arrays repeatedly being allocated (same sequence being loaded over and over into a new array index number).

The only way I can get around issue #2 is to shut down VSThost after about 10 songs and then restart it, so I could actually use it in a live setting. However, issue #1 is a real burden to work around. If I go over the limit stated in the above, when I do trigger a MIDI loop with a lot of events in it, the poor laptop drags like my old 286 when I was trying to run Cakewalk within 1 meg of RAM. I don't run anything else on the laptop, no security software at all, and every unnecessary feature of Windows 7 disabled, no eye candy at all. So I'm way baffled at how MIDI data in a VST can turn the thing into a slug, but it can run way more complex stuff in Reaper, including audio with MIDI tracks.

Post

Piz
for same performance / cpu usage reason as guitard00d said
i was hesitating to ask before but

what would you think for 1 slot version of midiLooper?

in Reaper x64 ML x64 i didn't care that much of cpu usage..
lately i am using with Audiomulch ML x32....
it would be really great if we can use multiple instances of ML ...
and i am hoping this 1 slot version will do the job done with minimal cpu usage..

edit...
i am new customer of AM, just purchased a few days ago... still discovering things in it

Piz
if it will help to reducing the cpu usage ;
please consider making 1 ( or 16 max ) slot version of ML .

because it is really incredible to use with Audiomulch
even we don't need to scale input or transpose input channel in AM.
Metasurface Snapshots does all the jobs done very well so far i tried, its really incredible and all new to me !


final edit
i change my mind ...1 slot wasn't flexible or usable as i aspect in Audiomulch sorry ...
but now
i am trying one of the older versions (midiLooperMulti) its only 16 slots and works good so far ...
so if less slot numbers will help to reduce the cpu usage
( at least in my tests with old version it does )
16 slots would be excellent

Greetings

Post

The CPU usage is something I'm working on. Some older versions used a different method for playing back the loops and it was more usually more efficient, but sometimes dropped events. Now it plays flawlessly (I think) even when you change speed, beatshift, transpose, etc. indepentently for different slots during playback. I will see if reducing it to 16 again will help, but the heaviest code is skipped for empty slots...

Anyway, the next update will be at least somewhat more efficient.
wrongtastic, baby
tucson's number one gothic rock band since 1995

Post

midiLooper 1.4.9:
- Somewhat more CPU efficient playback.
- Has separate settings for Scale Channel and Transpose Channel (They default to being equal, and you can set them to the same value by shift-dragging the sliders).
- Bug fixes related to using multiple scale channels simultaneously.
wrongtastic, baby
tucson's number one gothic rock band since 1995

Post

Thanks, Piz !

Post

Many thanks from me too!

There appears to be an issue with the seperate Scale/Transpose now.....

- When Use Transpose Ch is selected and Thru and Monitor are enabled, the Note Ons (but apparently not Note Offs) from the Transpose Ch are passed thru to the active slot, resulting in notes that shouldn't be played and that hang.

Post Reply

Return to “Instruments”