Mixing And Jamming Tool

Hello,

I’m kind of newbie in Renoise, just bought it last week. Although I worte songs in Milkytracker/LMMS/LSDJ before.

I’ve played around a bit and got this idea for a tool:

The tool allows to mix and jam with two Renoise instances simultaneously.

One Renoise instance is the master, it runs the tool and it’s master track is the final destination of audio signals. The other instance is a slave, it runs the slave client and communicates with the tool of master instance.

It’s like two turntables with mixer, but instead of turntables there are pattern buttons:


| vol,pan,bpm,etc | vol,pan,bpm,etc |
|------------[crossfader]-----------|
| pattern buttons | pattern buttons |
| OOOOOOOOOOOOOOO | OOOOOOOOOOOOOOO |
| OOOOOOOOOOOOOOO | OOOOOOOOOOOOOOO |
| OOOOOOOOOOOOOOO | OOOOOOOOOOOOOOO |
| OOOOOOOOOOOOOOO | OOOOOOOOOOOOOOO |
| OOOOOOOOOOOOOOO | OOOOOOOOOOOOOOO |

OOOOOOOOOOOOOOO OOOOOOOOOOOOOOO
— --- O O O O O O O O — ---
— ---O_O_O_O___O_O_O_O— ---

… ^ … ^
… | … |
assignable … pads
effect
controls

The left side controls Master Renoise instance, the right side controls the Slave Renoise instance.

Patters buttons are akin to Grid pie, I want to implement playback modes like:
[continuous] - play all the column down from triggered pattern button.
[repeat] - repeat the pattern non-stop.
[one-shot] - play pattern once

Effect controls can be assigned to any parameter of any effect present in song.
Pads can be assigned to any instrument/sample of the song for fast access.

MIDI mapping to effects/pads should be there as well, ofcourse.

For pattern buttons MIDI mapping, I like how it’s done in grid pie, but I want to have the ‘big’ picture of all song and small adjustable pattern area selector that travels over it.

As an option - slave(right) part can be disabled and hidden. In this case we just play with one song.

Possible usage - mixing, jamming and having fun :)

I have not found something like that in tools, and, well, I want to do that.

From API point of view, this all seems to be possible.

If there is some tool with the same functionality, please let me know)

And of course any ideas/criticism/suggestions/feedback is highgly appreciated.

PS. There were some scratching techniques for Renoise, maybe it’s worth to implement some ‘scratching’ XY pad as well :)

question: how does one create two GUIs with the Renoise API which are able to talk to eachother within two separate instances of Renoise?
is the concept to write something to a file on your harddrive and for the “slave-gui” to notice the file has changed and to read that?

I’ve been through API docs last night, it has the support for Sockets, so communication between two Tools is not a problem (it should as well be possible to have the master on one computer and slave on another, if we have the connection between them).

As for the sound redirection - so far I have only one solution - route the output from Slave Renoise instance to one of Master Renoise instance’s inputs and then use the Line In device on separate track to mix it. It can be done easily with JACK. However, in this case the routing from output to input should be done manually (like in Qjackctl). Maybe some helpers akin to LASH can be used here.

Regarding routing sound in Windows - I use Renoise is Linux and have little knowledge of Windows audio management, so any ideas with routing sound (and espicially in Windows) are appreciated as well.

Added:

On the other hand, maybe there is no need for routing at all, two Renoise instances will just play together. All global effects and controls will be just duplicated for both instances. This approach is easier than routing. And there are not many drawbacks (if any).

This sounds interesting/promising. Please keep us updated as to what you come up with.

I plan to post some screenshots of prototype once it’s ready. Just to make words/plans more material.
No ETA on this, but the tool is not abandoned, I’m on the way.