Duplex Beta Versions

duplex_big_0.png

Discussion of Duplex, the OSC/MIDI controller framework for Renoise.

Current stable release (v1.05) - June 1st 2017 - release notes

The current stable version can be downloaded ontools.renoise.com

Current alpha/beta (v1.06) - October 16th 2017

https://forum.renoise.com/t/duplex-beta-versions/30625

Source code and Documentation
https://github.com/renoise/xrnx/tree/master/Tools/com.renoise.Duplex.xrnx

Issue tracker (known bugs)

https://github.com/renoise/xrnx/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20duplex

Manual for the 0.98 release , outdated - please use the newer docs
2786 Duplex_manual_0.98.pdf
2849 Duplex_manual_0.98_japanese.pdf

Touchosc & Renoise
Duplex: Mackie Control Layout Suggestion
Custom Launchpad Actions - Best Way?
Duplex: Apc40/20 Layout Suggestion
Midi On Multiple Renoise Instances
Duplex: Mackie Control Layout Suggestion
New Tool Duplex: Xypad
New Tool Duplex: Xypad
Ipad And Renoise
New Tool (2.8) Duplex: Grid Pie
New Tool (3.0): Grid Pie
New Tool (2.8) Duplex: Grid Pie
Ipad And Renoise
New Tool (2.8) Duplex: Grid Pie
Duplex Device: Akai Lpd8
Duplex : Notes On Wheels
Duplex : Notes On Wheels
Duplex : Notes On Wheels
Idea: Independent Time Line
Duplex: Is It Possible To Select Effect?
Idea: Looping Real-Time Sample Recorder / Resampler
Duplex Behavior With Launchpad
Live Pattern Cutter
Need Help Setting Up Duplex And Apc40
Live Looper
Jackaudio On Windows
New tool (2.8) Duplex Repeater
Duplex Keyboard
Duplex: Mackie Control Layout Suggestion
Duplex: Apc40/20 Layout Suggestion
Duplex: New Configurations For Bcr/bcf 2000
Duplex : Notes On Wheels
Duplex crashes when i record automation with bcr2000
Can OSC / Duplex manage pattern names?
Duplex, Launchpad, Keyboard config and drum grid
M Audio's CTRL49 Faders and Fader Buttons
Faders and Fader Buttons using M Audio CTRL49 with Renoise 3.1
midi out from midi controlled objects?
Duplex:Behringer Motor 61 support
Trigger Finger Pro with Renoise
Importing controller mappings
Behringer BCF2000 - Parameter Feedback / Motorized Faders
Assign midi event to "move cursor down"...?
New tool (3.0): Mlrx
padKONTROL in native mode for Duplex
Duplex Novation Launchpad Mini Compatibility
Midi Triggering Patterns
Retain MIDI input settings when replacing instruments?
New tool (3.0): Mlrx
New tool (3.0): Mlrx
New tool (3.0): Mlrx
New Tool (2.8) Duplex: Grid Pie
Renoise - Ultimate Touchosc Ipad Template?
Help needed with a simple Duplex application
Quneo + Duplex
Quneo + Duplex
New Tool (2.8) Duplex: Grid Pie
Touchosc
New Tool (2.8): Behringer Bcf2000 Lcd
I Have A Headache
Tool Idea: Looping
Recording Duplex Sessions?
New Tool (2.8) Duplex: Grid Pie
Using Renoise To Perform Live?
New Tool (2.8) Duplex: Grid Pie
New Tool (2.8) Duplex: Grid Pie
Mackie Hui & Mcu
New tool (3.0): Mlrx
Renoise As A Live Looper
Duplex Stepsequencer
Duplex Keyboard
Choosing A Live Performance Midi Controller Under Linux Os
Duplex Device: Akai Lpd8
Apc 40 And Duplex Problem
Duplex Korg Nanokontrol2 Configuration
Need Help Setting Up Duplex And Apc40
Duplex Doofer control?
No MIDI feedback on BCR2000 with Duplex
Duplex: "Pass unhandled MIDI messages to Renoise" doesn't
New Tool (2.8) Duplex: Grid Pie
Vdrums + Midi + Renoise: Is Note-Off Behavior In Renoise A Limitation?
Midi Mapping Roland Pc-180

Yay, looking forward to trying this out later :) Thanks danoise

This was a problem before too, but when I use the toggle buttons like mute on my Samsung Galaxy Tab (TouchOSC), it usually doesn’t toggle. It kind of seems like it’s switching states very fast, but usually it goes back to it’s initial state. So if I try to toggle mute on for a track, it seems to mute and then revert to mute off very quickly. I don’t think it’s because I’m holding it for too long, because I’ve tried being very rapid, and even then it should toggle continuously between the two states, right?

Sound like TouchOSC isn’t receiving messages from Renoise at all…have you checked that the local IP address inTouchOSC is the same as in Duplex (Tools menu > Duplex Browser > TouchOSC > Settings)?

Very nice update, thank you! :)

I have a general question regarding Duplex and own tools. Is it possible to connect Duplex in some way with the gui of own lua tools? So if there is something changing in the display in the gui of the tool, it would be nice to send it to the midi controller (say launchpad) and have the changned view in the midi-controller as well. In my case I am talking about the StepSequencer I created (see forum post), which can already be controlled via Midi hardware with MidiMapping. A nice feature would be the following: If the Editstep or Page is changed (which changes the view of the highlighted steps in the sequencer), the change should be reported to the connected midi-controller and display the new view. It would be nice if you can give me a hint, if and maybe how this could be done with the help of Duplex?

I don’t think that it’s possible to make tools communicate with each other like that. If you do a rprint(_G), runnings tools are not listed in the global namespace, so I don’t know how it could/should be done.

Btw: check out how the Duplex sequencer is now listening for changes to the pattern itself. You can delete notes in the pattern editor, and the controller will remove those notes from it’s display as well, keeping things in sync at all times. This is achieved by using the powerful line notifiers. Perhaps an idea for the Lauflicht sequencer?:slight_smile:

@Danoise

[s]Doesn’t The Recorder app support the recording in the irregular number of lines??
I’ve tried to record in 60-63 pattern-line, but it cannot record a sample here.

The reason why I used such irregular number is because I tried a strange workaround for triggering sample immediately.

  • make 2 pattern for Looper: Pattern 1 is 63 line, Pattern 2 is only 1 line.
    I thought that maybe in this way we can trigger recorded sample immediately after actual recording (though the last 1 line will be missing :rolleyes: ).

But actually, I cannot done the recording itself in such line numbers.[/s]

[EDIT] Now this bug is fixed, and after all, this workaround works only in some limited situations (depend on BPM or LPB). It cannot be recommended at all. :rolleyes: [EDIT]

Hmmm…not sure what is causing a problem there, but I’m also not sure if it’s really a good workaround…Those are some very special conditions to meet, before using the recorder, don’t you think? Ideally, one should be able to load a(ny) song and add some recordings to it.

Nevertheless, it should be able to record irregular number of lines. I’m wondering if it’s not the very short pattern (1 line) that’s causing the problem… Did the application print any kind of error message in the console?

Renoise console says:
Message from Recorder: could not locate recorded sample!

And I tested in detail. These are the line numbers which can record correctly. (if my test isn’t wrong)
64, 59, 58, 57, 56, 51, 50, 49, 48, 43, 42, 41, 40, 35, 34, 33, 32, 27, 26, 25, 24, 19, 18, 17, 16, 11, 10, 09, 08, 03,

They seems to be located in every four numbers. Can you imagine what’s going wrong?? :blink:

Wow, satobox you’re the best. Very detailed report there!!

I’ll take a good look at this when I get home tonight.

Oki, the irregular line-number thing was quite easy to fix, it was simply that the recorder was too anxious to finish the recording (some line numbers apparently made it finish earlier than others?). Fixed that bug, and also included a number of additional features for the Mixer (download link has been updated).

The Mixer now has two new options, follow_track and track_offset. The first one, follow_track, is easy to explain: it will simply allow you to let the mixer align with the selected track in Renoise. I have put it to use in the Launchpad Recorder configuration, where you get an additional mixer strip (a single channel mixer), which will allow you to set the volume of the active track. Having a single volume slider that follow the active track is probably also useful in other configurations, but here it just seemed obvious.

The second option, track_offset, is made especially for the Ohm64. The track_offset will allow two Mixer instances to act and feel like a single mixer, even though they are in fact separate applications.

Update: from 0.95c, the Recorder is now using the 09xx command to launch new recordings. It seems to work reasonably well (better than expected). The additional option is called “autostart”, and replaces the “writeahead” option (which is now gone).

Download

Yeah, well done trick. B)
Under the present circumstances, probably, this workaround will be the most effective.

But I’m still aware that:

  • the time lag of 1 line or more (only in the very first playback though) are a bit big, I think.
  • depending on a situation (BPM or LPB), sometimes it fails, so we have to adjust the option value manually.
  • such command trick and adjusting the option may be hard to understand for newbies (why & how), even for Renoise users maybe.

So I hope that Renoise core dev team can improve about Autoseek or the time lag itself after recording, in the future update. Since Renoise’s live-sequence + the Recorder’s potential is very attractive. :guitar:

I agree, for the same reason I did not remove the “writeahead” code completely, because it might become useful again.

So, I’d like to know how I can use ANY controller with Recorder, because I just don’t see how yet. There’s no configuration for the BCF, or many other controllers yet. Am I missing something?

Well, you have ANY controller or a specific one? I’m guessing the BCF, so I can provide you a starting point:
Try adding this to Duplex/Controllers/BCF-2000/BCF-2000.lua

  
  
duplex_configurations:insert {  
  
 -- configuration properties  
 name = "Recorder",  
 pinned = true,  
  
 -- device properties  
 device = {  
 class_name = "BCF2000",   
 display_name = "BCF-2000",  
 device_port_in = "BCF2000",  
 device_port_out = "BCF2000",  
 control_map = "Controllers/BCF-2000/BCF-2000.xml",  
 thumbnail = "BCF-2000.bmp",  
 protocol = DEVICE_MIDI_PROTOCOL  
 },  
  
 applications = {  
 Recorder = {  
 mappings = {  
 recorders = {  
 group_name = "Buttons1",  
 },  
 sliders = {  
 group_name = "Encoders",  
 },  
 },  
 options = {  
 -- loop_mode = 2,  
 -- auto_seek = 2,  
 -- beat_sync = 1,  
 -- trigger_mode = 1,  
 -- autostart = 4,  
 }  
 }  
 }  
}  
  

The options are commented out, because those are the application defaults. Uncomment them to experiment

I would probably add the Mixer as well, they work really well together.

Thank you. I have read in the code of duplex and learned that every external midi-controller has its own fixed Midi-CC to control it (e.g. their LEDs). That brought me a step further, also your hint to use the line notifiers. I hope I know now how to come a solution to synchronize my step-sequencer with a midi-controller and will try it soon.

Sorry for the late reply. They have the same IP and the in/out ports are the same. The faders work fine both ways. Pressing the mute buttons gets through to Renoise/Duplex, but it acts as an impulse/push switch instead of a toggle switch. Pressing the mute buttons in Duplex actually reflects fine in TouchOSC on the device (a Samsung Galaxy P1000). So the problem only appears when going from TouchOSC to Duplex. I guess the most obvious thing would be that something is double firing.

It’s working perfectly here on my iPhone, perhaps something went wrong when you installed the tool?

Did you use the latest version of Renoise? Latest release of Duplex? You’re using the ‘simple’ template that comes with Duplex?
Can you perhaps try re-installing Duplex (drag-drop the xrnx on Renoise) and see if that helps?

FYI: While this release has been up for a couple of weeks, I’ve been busy helping a Renoise user bringing the Ohm64 up to date. It had some issues, which we have now ironed out.
So expect this release to be replaced by 0.96, after which the whole thing will also be updated on SVN etc.

0.96 will also introduce an important new feature: realtime control of application options via the Duplex browser.