Patching renoise binary not ok, right? Abstraction layer in LUA?

Hi,

I would like to patch therenoise.app():show_status(message) function globally, so under OSX,

it would tick only with a maximum of 60 fps or so…

Now I looked into the bundled LUA libs, but the function seems to be included in the Renoise binary…

My idea was to provide a global LUA class that overwrites / overloads the show_status() function,

so all LUA tools would immediately benefit from it without the need to patch each.

Now I am not a cracker or so, and I am fully aware of the fact that I am not allowed to patch the binary in any way…? I mean, in this case, would it be ok, if I would just publish a simple manual to do that, since this patch has nothing to do with cracking? Or is it a absolutely no go?

Since I guess you also do some checksum check and would not tell me about that of course, maybe my approach is just stupid.

I thought I look into the R binary with a hex editor, search for “show_status”, rename it and then add a global LUA lib that provides show_status again…? Is this even possible to add functionally to Renoise.app() using LUA?

Or is it possible that you devs provide a simple abstraction layer for such cases?

How could I do a patch of show_status() in a global way?

Thanks for help.

EDIT: Err,maybe this should be moved into LUA section :blush:

You can not really “patch” it that way. It’s a bit more complicated. And yes, it’s a bad idea.

That “show_status” problem affects only one or two tools, so why not simply fixing it there?

yes I could do this, but I thought, if there are many tools installed that maybe call each show_status(), this interaction could also result in short slowdowns… Also it seems to be much more comfortable to fix it globally for the devs.

btw. I am really no lua expert, but currently i am trying to understand that metatable lua stuff… Do you know if I can “overload” the show_status() from within lua, or is renoise:app() a read-only object?

Or something like:

local _rapp = renoise.app()

renoise.app = function()

_rapp.show_status = function(txt)

print(txt)

end

return _rapp

end