Realtime Arrangement Tool

Hello. I`m not into Lua much, but i want to know from Lua pros here, i have an idea and want to know is it possible to do with Lua script to make a tool i want.
Here is the concept:

Imagine i have one pattern, it got beats/bass/synth i.e. a hook, a loop, a groove.
It`s looped. I play with it live in many many ways (all possible vst fx, internal renoise stuff, etc).

So is it possible to make the tool with Lua, which will:

  1. clone original pattern while the play position stays at the original 1st pattern and its looped
  2. record all manipulations i do with the original pattern into already cloned patterns

i`m not good at english, but overall it looks like a realtime arrangement tool.

so i have 1 pattern looped, play with it for a 5-7 minutes, manipulating it, mangling with fx, automations etcetc and all this must be captured (recorded) into a full live arranged song. so at the end of live playing, i have a completed-like song, so i can then manually correct all stuff in the song step by step using traditional renoise editing (the normal way we write songs in renoise).

If you dont get the idea, i can make a little screenshot explanation to what i want.

So, finally, what you think of this idea? Is it possible with Lua in Renoise?

You mean like Auto Clone Patterns?

a little but. for sure idea came from your tool ) and also from the way i compose tracks, i mean i prefer “hands on desk” method, it means i like to write 2-4-8 patterns and play them live and record the outpur to a wav and then edit the wav file. u know what i mean? so, im not a big fan of arranging stuff, but the tool i want is the saviour for me. but the way it works...not exactly what i want. im not at home now, so when ill be, ill try to write more info on the tool i want to make, the way i want it to work.

sure sounds interesting

Here is the picture of my 2 pattern loop project.

as u see here these two patterns are looped (highlited with white) and current played pattern is looped too.
as i explained earlier, i like to record my songs “live” (hands on desk). so i`m just playing these two patterns, muting (on/off) channels, moving volume/panning faders, mangling with vst or native fx, changing note scales, flip them, expanding, shrkinking, moving the playing position mannualy with keyboard arrows, starting song/stopping it, playing additionally some notes here and there and mangling the song in many other ways really.

so is it possible to make a tool which will capture all my on-the-fly changes, while the play position still on these two patterns i`m playing with, meanwhile for sure this tool must capture all what i do to these patterns and for sure make a song structure automatically - means cloning, but with changes i did.

heh, somebody here understand what i mean here? )

p.s. once again sorry for lack of eng language skills. any questions,help,suggestions very welcome.

Ok I understand what you mean now, and it would be a great tool!

I think it would be hard to do with the current scripting possibilities, since it is very likely to need some realtime functions. I imagine a good way to do it would be to run two renoise instances, one being to one you’re playing with, and the second being a kind of recorder. The two instances would be somehow synced for everything (DSP’s, tracks, etc…) except transport. The player instance would send every note, pattern effect, dsp tweaking that it plays to the recorder instance to record. This communication between the two instances could be done in OSC, but for now, OSC communication is not fast enough for realtime input.
I don’t want to stop you from experimenting, but I would wait till renoise gets a realtime API. Any tool that does this now would be some kind of hack, and is not likely to work reliably…

Ah, it’s the Session Recording idea! I like the idea, but theres many things to consider before it can be realized.

For example, what would you expect to happen when you enter a block loop? Should the result be an “endless” pattern, repeating over and over? Should the same apply when you hit pageup/down?

“Simply” streaming the performance into another pattern, or even Renoise instance, couldn’t even support this because we have an upper limit to the size of a pattern (512 lines). Should the tool’s “stream target” then automatically divide the input into equally sized patterns?

A perhaps more efficient way to achieve something similar within Renoise would rely on Duplex. If we imagine for a moment that the track muting, pattern navigation etc. is happening “through” Duplex, then Duplex is also able to memorize the performance - and therefore, recall it. But instead of creating a new song from one’s performance, you could end up with an editable list of events:

00:01:52 - Mute matrix slot (Pattern 1, Track 1)
00:02:12 - Volume adjust “-5.1db” (Master track)

Personally, I like this approach because you can then fine-tune and adjust your performance afterwards. The catch is that the performance relies on Duplex. And not everybody has controllers.

i like the way you think danoise, but i am a lazy person when it comes to programming, so i just re-thought my idea and i hope soon i`ll post the result. i have a solution for SESSION RECORDING, its not that much super friendly, but it works! )

Here is it!!!