Duplex 0.92

Maschine has 2 buttons at side of every row of pads so I could use upper to trigger row and second to schedule it, if possible. At least I could make proper template with all buttons which someone could modify to their needs.

umm… I’ll just wait until someone uses it in template so I understand how it works (=copy & change essential).

Same here.

I have understood it is format which daws like Logic, Cubase, etc. support. Two way communication which can also send track names, plugin parameters, etc. something like automap and others so controller shows it on screen. Not sure is that V-Pot so sophisticated, but it was only one (maybe?) sending hi-resolution data… :D

Nice, soon I can scroll thru more than 2 first effect.

Again, way over my coding skills, which are close to none.

Ok, here’s what I have got so far:
1254 maschinorr.jpg
crappy camera, even worse photoshopping but it works already quite well in use.

My “TODO” list, when I know how or even possible:

  • Add all buttons + in right places, they were there but couldn’t make matrix navigation and triggers to work then.
  • Fix device select
  • “Play” button start&stop
  • “Restart” → New pattern loop button
  • “Tempo” → BPM
  • “Swing” → Groove settings
  • “Auto write” → Automation record
  • “Snap” → Save song
  • “Grid” changes pad behaviour how it works right now
  • “Step” → pads → Step sequencer
  • “Control” → pads → midi notes
  • Schedule row with buttons under triggers
  • Track navigation
  • New page with block loop range and some other extra

I dont think those are gonna happen any time soon though :)

Heres also duplex and maschine templates for those who want to try out or make improvements.

I made test template with MCU V-Pots and buttons to try with Logic and I think they are just normal midi #CC and note messages which are converted by software, for example environment monitor shows MCU Buttons “<Channel” & “Channel>” as note “C-2” and “C#2”, then I made two buttons to send those notes and they worked just the same. I haven’t used Maschine MCU mode with Logic much as I have Remote Zero SL for that, but soon as I added Mackie Control as surface with corresponding midi port, it outputted every custom track name from Logic on Maschine screen and exact values of volume, pan, eq freq, slope, plugin parameters… just about anything I could think and try.

There are other (non-mackie) controllers too with MCU support like Novation Remotes, Euphonix MC, M-Audio ProjectMix, Behringer BCF, some iPad & iPhone apps… and theres also LC Xmu which can emulate MCU on any midi controller with onsceen display of parameters.

Something I found that might be useful: http://controsc.sourceforge.net/
Open source software that uses MCU to control OSC (which is already supported?), high resolution control and text on screens.

I’ll try to learn understand LUA and coding in general.

edit: http://web.archive.org/web/20080126093602/http://members.aol.com/mhigrules/MCMap.htm
“Own a Mackie Control? Do you want to know what it’s saying to your computer?”

and found Logic Control pdf: http://stash.reaper.fm/2063/LogicControl_EN.pdf

especially this part is what I’d like to try out first:

LCD:
Received:
, 12, oo, yy, …, F7 => Update LCD
oo => Display offset to write from: 00 thru 37 for upper line, 38 thru 6F for lower line.
yy => Data: ASCII equivalents for display characters written from left to right, including line wrapping between upper and lower line. Up to 112 data bytes may be sent in one message.

Example:
The following message writes “Hello” to top left of the LCD on a Logic Control master section
F0 00 00 66 10 12 00 48 65 6C 6C 6F F7

Does someone how to send that to midi channel, or is it possible?

Uuuuhhh! It’s ze Maschine you’re working on

That makes sense, since the buttons are aligned right next to the “4x4” matrix. But the problem isn’t because of how Duplex is designed, it’s more a question of looking at the Matrix application, and possibly change a few things.

It’s quite easy to explain. You want the up/down/left/right to be laid out as on a keyboard, but the UISpinner is an “increase/decrease” control made from two buttons. So, the layout you proposed is not possible, as the buttons are laid out next to each other, but these ones are:

[▲][◄][►] ← up/down is vertical
[▼]

  • or -

[▲][▼][◄][►]

I think the last one is the best, as you have the remaining E/F/G/H buttons all nicely organized in a single row?

As for setting BPM via controls, the Transport already has a few sketchy details, but I didn’t implement anything as I don’t really have much use for it. There’s the whole limitation of the 7-bit MIDI control, which means that you have to decide which range you are working in, like 72-200bpm. But a dedicated Tempo application could be interesting, where you can use a couple of controls to more easily match the beat of something, tap the tempo etc.

Some of the links you send me are people who are reverse-engineering devices, and making MIDI implementation charts themselves. And the actual communication protocol is proprietary, which makes me wonder if it’s worth the effort as long as the controllers we support have standard ways of communication. The Machine is fully MIDI-enabled, right?

Changing options are not supposed to be programming, it’s configuration. It’s this simple: open your device configuration (Machine.lua), and make sure the following comes right after Matrix.mappings

options = {
switch_mode = 4,
play_mode = 4,
}

This is all it takes to change the playback retrigger and switch to SCHEDULED mode…

Sure its has all basic midi functions (-sysex) but what makes MCU far more interesting is ablity to send text on controller screen from software, instead of “Track 1, 2, 3…” and volume, freq… values 0-127 you could see real name of the track, -3db and 440hz on screen. Also since knobs are sending only direction of movement, you can dial parameters accurately (like volume exactly to 0db, which really isnt that necessary but one of many things that trouble me in life far more than should). Sadly there is no way to use screen from software without MCU V-Pots.

But all this MCU implention was just a thought, not even sure would I have any use for it in the end. :)

edit. Had to play around still a bit, managed to make fader in Logic environment which sends one letter on screen and scrolls thru all letters with the fader… :D so if its possible to get track name from renoise to duplex and convert it to sysex, it should work. At least one V-Pot has to be assigned under screen so controller receives sysex text.

I think the issue of MCU protocol support is worthy of a separate thread.

One thing is the protocol itself, it seems to involve either 1) official support from the guys who invented it, or 2) trial-and-error by members of this community. Another thing is the “representation” of this information - check out the “Better Mixer” app for an excellent example of how it could be done.

As for Maschine support: maybe the best thing would be to turn the tables around, and make a dedicated Maschine application?
What I mean is, to take the parts from existing applications that seems to work fine (the step sequencer by Daxton could be adapted to work a bit like the native Maschine sequencer), and then add some special touches that fit with a Maschine workflow. I mean, it’s an awesome instrument?

Awesome aksn! Can’t wait to try this out! Your Renoise Maschine template is already so useful.

Ok, so I downloaded and unzipped Maschine_duplex_v0.2. What do I do with the Maschine folder with the following files?:
Maschine.lua
Maschine.xml
Maschine.bmp

In Scripts/Libraries folder?

It keeps getting better, now at version 0.93. Original download link has been updated.

--------------------------------------------------------------------------------  
Done 0.93  
--------------------------------------------------------------------------------  
 
* UIButtonStrip, for controlling/displaying a sequence  
o Can control position and range simultaneously (Matrix sequence triggers)  
o Optimized for monochrome devices  
 
* UISpinner improvements (better togglebutton support)  
o TouchOSC and other controllers using togglebutton input should now   
display the UISpinner correctly at all times...  
 
* Browser:   
o Switch between device presets/configurations using function keys  
o Forward keypresses to Renoise (except those we use for switching)  
 
* Application:   
o Application.options[].on_activate(): specify a method to be executed   
immediately before the application is started - for example, to provide a  
UIComponent with values *after* it has been constructed  
 
* Matrix:  
o Updated to support interactive pattern looping (via UIButtonStrip)  
o Utilize "blinking" feature to display a scheduled pattern  
o "follow_player" mode in Renoise will now update the matrix immediately  
 
* StepSequencer:  
o Display playposition and volume simultaneously (via UIButtonStrip)  
o Better support for other/monochrome devices (Monome)  

Just create a folder called Maschine inside /Duplex/Controllers and put them there…

Is there a reason this isn’t going on the Tool page?

Mostly that the TouchOSC support was kind of flakey. It’s better now, thanks to better handling of togglebutton input.
But if no big issues are reported in the next few days, it’s definitely going up.

Is it possible to have the pattern triggers set the selected pattern as the next after the current has played, instead of going there instantly?

Go into your device configuration (you didn’t say which one, but it’s the .lua file located in the Duplex/Controllers/YourController folder).
Then, locate the section that define the Matrix mappings and options (search for “Matrix”, “options” or “switch mode”).
Then, change the following:

– switch_mode = 4

to

switch_mode = 4

(yes, it’s your lucky day - the option was already there, just commented out).

Next, reboot Duplex and enjoy scheduling patterns with fabulous new blinking buttons :slight_smile: For l33t skillz : you have four different options just for switching the active pattern, and many other options which are all explained in detail in the Matrix application class itself (Duplex/Applications/Matrix.lua). Just look for “switch_mode” and you’ll see how it’s possible to customize the Matrix).

That’s just great! Sorry to bother you with this next question (I’m very new to this scripting, but slowly get my head around it) But is it also possible to Hardwire a pattern jump button to a certain track?
for instance, that button number ‘two’ always go to track pattern number ‘7’. Thank you for Duplex making things much easier!

I guess what you’re aiming for are the ability to map buttons to certain events in the song, like the chorus, verse, etc.? This is not possible as such, the Matrix app is a 1:1 representation of the pattern matrix. It would also require that the Matrix app started to save certain settings along with your song, or the mappings would not be available the next time you wanted to work with the song.

A better approach would be for someone to write a custom trigger application. Then, the “Matrix” configuration could easily be adapted to contain both the matrix and the custom song triggers. This is what a “device configuration” is about, combining useful apps into a single preset.

Bump because 0.93 just got released officially on tools.renoise.com. Yay!

In my current live situation I have to wait to load the next song.Apart from the cheering of the crowd, this is really lame.
My aim is to load all the songs into one xrns file and go trough the songs in the order I want at that moment by a push on a button.
besides from that I want to add tracks next to the ‘normal’ songs with variations of the song in it.
maybe even some loops to do a live jam. So I’m exploring what I can achieve with scripting and if that’s enough for me.
I already saw that Ableton Live, pretty much, answers all my biddings, but I’m so used to Renoise, I want to exploit the current possibilities to the max.

Will completely trash the old bundle (except the *.xml in the bundle root) in the next beta before updating the bundle, so we hopefully get rid of such probs in other tools as well…

A small bug report:

  • start Duplex, Remote SL MKII
  • add 8 or more than 8 devices into a track in Renoise
  • select the track. in this track also select the 8th or any device behind the 8th one in Renoise
  • click on any of the device selector buttons in the Duplex virtual UI (second button row from top)

->

.\Duplex/Applications/Effect.lua:311: attempt to index field ‘?’ (a nil value)
stack traceback:
.\Duplex/Applications/Effect.lua:311: in function ‘on_change’
.\Duplex/UIToggleButton.lua:187: in function ‘__invoke_handler’
.\Duplex/UIToggleButton.lua:154: in function ‘toggle’
.\Duplex/UIToggleButton.lua:91: in function ‘do_press’
.\Duplex/UIToggleButton.lua:233: in function ‘handler’
.\Duplex/MessageStream.lua:208: in function ‘input_message’
.\Duplex/Display.lua:438: in function ‘generate_message’
.\Duplex/Display.lua:485: in function <.\Duplex/Display.lua:483>

For those checking out source directly from http://code.google.c…source/checkout, Duplex and all the other tools have been updated for Renoise 2.6 beta7

Also, the bug above has been fixed

Hi,

I just got a novation zero sl mkII and I’m trying to use it with renoise through duplex and automap. In the duplex browser it says "load the provided automap configuration before using (the file is located in controllers/remote-sl-mkII). Where on earth is this file? I’m on OS X.

Sorry if this is in the wrong place but I didn’t think it was worthy of it’s own thread.