ModLoop Tool of doom!

Ey, stil getting the following notice in 0.26 when using your tool in a track, then opening up a new songfile;

‘C:\Users\pluge\AppData\Roaming\Renoise\V3.1.1\Scripts\Tools\ca.tonyscc.ModLoop.xrnx\main.lua’ failed in one of its notifiers.

The notifier will be disabled to prevent further errors.

Please contact the author (artaslove [bonafide@martica.org]) for assistance…

.\process_slicer.lua:111: main.lua:351: attempt to index global ‘gui’ (a nil value)

stack traceback:

C: in function ‘error’

.\process_slicer.lua:111: in function <.\process_slicer.lua:98>

‘C:\Users\pluge\AppData\Roaming\Renoise\V3.1.1\Scripts\Tools\ca.tonyscc.ModLoop.xrnx\main.lua’ failed in one of its notifiers.

The notifier will be disabled to prevent further errors.

Please contact the author (artaslove [bonafide@martica.org]) for assistance…

std::logic_error: ‘trying to access a nil object of type ‘class RenoiseSong’. the object is not or no longer available.’

stack traceback:

C: in function ‘__index’

[string “do…”]:37: in function <[string “do…”]:35>

main.lua:380: in function ‘close_tool’

main.lua:771: in function main.lua:769

Sorry about that Djeroek I fixed that in v0.27. It involved the timer I just added. Thank you again for all your testing!

Yeah that was a tricky one, it was actually the notifier and has been broken for a while. However I’m confident you’ll find v0.27 more reasonable as far as new songs.

Edit: I’m still not handling it quite properly. I have to do some additional work, because while it traverses new songs now the renoise song object is still nil. Argh! :wink: I’m having fun though.

Hurrah! I finally got that sorted out. It handles new songs, including blank songs, whether or not the tool is currently working!

Now I can focus on some of the other features. :slight_smile:

(I uploaded the latest version however it’s still marked v0.27 … I’m continuing to work)

I had no idea that moving the loop points outside of the current playback position would work the way that it does with the restore right now function during playback, however there are certainly some interesting effects , like being able to jump around depending on loop types and positions! Looks like depending on where you are the loop type set can change whether it moves or jumps to the loop. I might be able to change the loop type for an instant before moving the points to always enable a jump back to the original loop (Right now it restores the loop type at the same time). Hmm. This would help a lot with random mode. :slight_smile:

bumped to version v0.28 for clarity (additional code cleanups, moving some init stuff to functions).

My apologies for all the recent trouble, I hope we’re at a solid version 1 sooner rather than later. I still have many plans for the tool.

Finally fixed loose mode getting stuck… I had written code for it previously that I realized just now left out two important considerations. v0.29

Edit: Alas, still not perfect. I have to look ahead a few steps to really fix it.

It’s certainly been a while since I’ve thought about this, but I spent some time this weekend experimenting and patched up the code a bit. V0.30 still far from perfect, but seems more stable to me.

I’ve concluded that many of my plans won’t be possible as a renoise tool because I don’t have information I need like the exact sample playback position and direction at any one given moment in time, however I’ve been spending some time thinking about how I might be able to create a DSSI or VST plugin instead.

V0.31 has a fix for a bug in pitch mode… silly lua starting arrays at 1… I’ll get used to it someday :slight_smile:

When I MIDI map some knobs on my controller to the “Maximum speed” and “Maximum Frames” sliders in ModLoop’s GUI, and then twist those knobs down far enough, I get errors like these:

Error Message: ‘/home/me/.renoise/V3.2.2/Scripts/Tools/ca.tonyscc.ModLoop.xrnx/main.lua’ failed in one of its notifiers. Renoise LOG> Error Message: The notifier will be disabled to prevent further errors.
Error Message: Please contact the author (artaslove [bonafide@martica.org]) for assistance…
Error Message: ./process_slicer.lua:111: std::logic_error: ‘ViewBuilder: invalid value for slider: ‘0’. value must be [1 - 2048].’
Error Message: stack traceback:
Error Message: [C]: in function ‘error’
Error Message: ./process_slicer.lua:111: in function <./process_slicer.lua:98>
ScriptingEngine: ./process_slicer.lua:111: std::logic_error: ‘ViewBuilder: invalid value for slider: ‘0’. value must be [1 - 512].’
stack traceback:
[C]: in function ‘error’
./process_slicer.lua:111: in function <./process_slicer.lua:98>

Thanks for reporting this bug! I hope version 0.32 fixes this for your application!

@Tony_L - would this happen to be able to move the start/end points around (like a window/frame), and is it able to take advantage of the start point of sample playback’s ability to be contained within the window vs. starting at the beginning of the sample? Looks like another neato granular/loop tool and I’m going to start fiddling with it now.

And got some errors:

std::logic_error: ‘invalid loop_end index ‘11334355’. valid values are (1 to 1898496).’
stack traceback:
[C]: ?
[C]: in function ‘__newindex’
[string “do…”]:22: in function <[string “do…”]:9>
main.lua:410: in function main.lua:406

std::logic_error: ‘invalid loop_end index ‘11334355’. valid values are (1 to 1898496).’
stack traceback:
[C]: ?
[C]: in function ‘__newindex’
[string “do…”]:22: in function <[string “do…”]:9>
main.lua:410: in function ‘restorerightnow’
main.lua:541: in function main.lua:519

std::logic_error: ‘invalid loop_end index ‘11334355’. valid values are (1 to 204578).’
stack traceback:
[C]: ?
[C]: in function ‘__newindex’
[string “do…”]:22: in function <[string “do…”]:9>
main.lua:410: in function <mai

I got another error for you. This one came up after I created a new song with a simple sine wave as the only instrument. Then, when I tried to start ModLoop, I got this error:

‘/home/me/.renoise/V3.2.2/Scripts/Tools/ca.tonyscc.ModLoop.xrnx/’ failed to execute in one of its menu entry functions.
Please contact the author (artaslove [bonafide@martica.org]) for assistance…
std::logic_error: ‘ViewBuilder: invalid value for slider: ‘225.84’. value must be [-84 - 84].’
stack traceback:
[C]: in function ‘slider’
main.lua:680: in function ‘create_gui’
main.lua:798: in function main.lua:793

I added some checks to the startup that should prevent such GUI drawing problems in v0.33

I just noticed your errors. I’m guessing you were changing samples or something when it happened?

1 Like

Hard to say, brain damage on my end erased a lot of my memories. I’ll say this, though - what I’m generally trying to do to audio files is create granular textures and to get the play head to start from anywhere within a defined region. The defined region often can be shifted by LFO in both position and size.

Like so:

As far as jumping around in the sample, I wanted to do something like that, but it won’t work reliably in a renoise lua script the last I checked, because there isn’t enough information about the current position and direction available.

Turning modloop into a plugin is still on my to-do list, which in theory would allow for additional tricks.

Lol! For some reason, until this moment, I had not noticed

This code is awesome because using doofers bypasses all of the silly things I struggled with to keep it from crashing when the user is changing focus.

Ok. I’ll probably study this and work on my lua script some more. I still won’t be able to do everything I wanted, but I did want to modulate the loop points of multiple samples!

Ah, I see!

All I know is that the last update allows for the start position of the sample playback to now be adjusted, so the sample can be played back from any point.

I’m a pest - knocking on the doors of folks who are so near to “finished” on their Renoise tools - each of their tools now technically ‘can’ do this, they need to be adjusted code-wise, which is difficult. There are three that I know of! Exciting to me :grinning:

That being said, this technique is for sloppy sample skipping, not exacting or precise sample playback. It’s a textural tool. While there are plenty of fine “repeater” tools; this is for random, glitching audio chunks. Making beautiful ambient drones, pads; spacious clicks ‘n pops, hums. I am drooling over what Renoise seems soon to be able to do natively; I do not use VST/AU plug-ins. I love Renoise’s sound on its own.

No pressure :smiley: I’m glad you’re looking at it at all.

Three loop modification tools? What’s the third one? :smiley:

There’s SMC Tool, Loop Control, and Rx Markers and hopefully yours. Rx Markers so far is the only one that’s adapted to the new Lua availability of the ‘start’ marker position change, but it’s in heavy beta right now.

Thanks for the heads up, I have some exploring to do!

1 Like