Need Help Setting Up Duplex And Apc40

Thanks! Let me just investigate why the release events are not fired. I should read the whole APC manual as well, to learn why those codes are needed in the first place (ableton version number, wtf?). I’ll be back in a day or two

Actually, the version number values seem not so important.
I tried 0x00, 0x00, 0x00 as the version values, it works too. ;)
If there isn’t such values at all, it doesn’t work though.

And for reference, this is the result which is shown in the Terminal when I hit “F-3” button once.
Strangely there are many signals, aren’t there?

MidiDevice: Akai APC20 received MIDI 90 35 7F  
MidiDevice: Akai APC20 send MIDI 80 35 0  
MidiDevice: Akai APC20 received MIDI 80 35 7F  
MidiDevice: Akai APC20 send MIDI 80 35 0  
MidiDevice: Akai APC20 send MIDI 80 35 0  
MidiDevice: Akai APC20 send MIDI 80 35 0  

I really got sidetracked this last month,and see that you guys are kicking ass on this. In fact, you have lost me. I still haven’t figured out how to retrieve midi return codes from the device in Renoise in fact, and the Duplex Midi Dump thing is a complete mystery to me.


Was the .xml layout file helpful at all?

I have to admit envy of your technical skill as I am a complete MIDI noob and this is seems to be well outside my scope thus far. I am still playing around with Renoise, but had to buy a full copy of Ableton to be able to use this hardware for anything. Worst $350 USD I have ever spent BTW.

The good news is that I am using Renoise to make loops for other applications (i.e. Ableton) using the Akai MKP25 (no duplex.) The bad news is that since cant take advantage of my performance controller (APC40) with Renoise it saves tons of time using something else to take loops and turn them into compositions. I have faith that you guys will work it out eventually.

It looks like you are almost there. Let me know if you need any more half baked .xml files (I didnt have any way to even see if it displayed properly since my web server does not have all of the icons Duplex uses, and without an .lua file I couldn’t open it in Renoise.)

Happy New Year!

Hi spyderdyne, Happy New Year!! :)

First, thanks for your effort for making XML file.
Probably, if there was no XML of yours, I would not buy APC20 and would not edit Duplex files for it.
And of course I referred your XML, but unfortunately it didn’t work so well.
So I remade the XML file for APC almost completely selfishly. I’m sorry for that…

Then currently, I think that the XML (button & knob layout) for APC40 is almost completed.
But about the application mapping, we want APC40 owner’s opinions.
I temporary made the application mapping like this image:

1523 apc40-mapping.png

  • 1: Matrix
  • 2: Navigator
  • 3: Blockloop button
  • 4: Device Selector (Vol/Pan device ~ 15th device)
  • 5: Mixer Pre/Post button
  • 6: Solo
  • 7: Mute
  • 8: Volume Faders
  • 9: Pan knobs
  • 10: Page change for Matrix & Mixer(Left/Right/Up/Down)
  • 11: Device Parameters
  • 12: Page change for Device Parameters
  • 13: Go to Previous/Next Pattern
  • 14: Transport (Play/Stop/Edit)

Since I only have APC20 and danoise doesn’t have APC series, we cannot test this layout actually.
So we want APC40 owner’s opinions. Good or Bad or anything else.

This is the APC test folder.


To test this:

  • Install Duplex v0.96
  • Open;
  • Remove the default “APC20” folder
  • Place the “APC” test folder
  • Reload all Tools

Please give us some feedbacks. Thanks in advance.

Woops, I forgot the important thing. :o

I updated the test file above.
So please download again or change the Sysex message in the APC.lua (line 24) to;


I hope it will work.
(“0x73” means APC40. APC20 is “0x7B”)

Yeah, a big Happy New Year from me as well!!

Absolutely - and the APC40 isn’t that different from the APC20. No work has been done on my part since before new year (I’ve been on vacation), but I’m confident something will happen in the next few days - so if you could test any progress with the APC40 that would simply be awesome, as neither me or satobox actually own one of these devices :slight_smile:

Don’t know whether I’m just too stupid for all that but whenever I try to select APC40 Renoise tells me the following: “Whoops! Device configuration contains unknown application class: ‘Navigator’”
Sorry for bothering you with this. Any help’d be highly appreciated.

Are you using Duplex 0.94?
“Navigator” app is included in 0.96 or higher.

I tried to apply Duplex 0.97 but Renoise tells me it’s not compatible with my version (2.6.1). Guess I’ll just wait for the full 2.7 to be released.
Thanks anyway for your fast help!

At first, the linked file was wrong.
So please try to re-download.
I think it should work now. :)

Hi Everyone, I’ve recently discovered Renoise and I’m hooked! I’ve been trying the Apc40 with duplex with partial success. Some sections always work and others I’ve managed to get them to work ocasionally.

Always working:

Clip Stop
Track Selection
Clip / scene Launch
Pan knobs
Bank Select
Activator / solo / cue

Not working:
Device Knobs
Push buttons underneath.

By enabling-disabling-turning on-off the apc and switching song I can get the device knobs to respond but they don’t work for vey long.

Also, any quick way of assigning the cue knob to the b.p.m.? I’m having a look to edit the script myself.


By device knobs, you mean he ones used for controlling device FX? Don’t know what the problem is, but it should either work, or not. Are you sure you’re not simply changing the active DSP device, which in turn would change the values for the knobs?

Controlling BPM is long overdue - mostly because absolute MIDI CC value is limited to a range of 127, which kinda sucks when using it to control the tempo (you would only be able to control a certain range, like from 64-191 bpm, or whatever). But since the cue knob is relative, it’s much better suited for this purpose (it’s range is practically unlimited). It’s on the TODO list.

Thanks for your reply. Yes I mean those knobs. When they work they move the active dsp but when they didn’t they didn’t respond at all! I’ve been messing around with the mapping files and managed to get the device knobs to work. Changed the channel to 1 (from 9) and they seem to behave now. I still can’t get the cue level knob to work (even though it’s not mapped to anything) and I’ve also noticed there is a serious delay on the flashing “timeline” (clip stop buttons).

Regarding the bpm control, I was wandering why something that’s easy to midi map (like the bpm) is not possible to map via osc.


Seems that perhaps the APC40 is perhaps a bit different than the APC20? I don’t have either, it is satobox who’ve been working on it and he only has the APC20. One can only come that far without the actual controller at hand. But since the APC40 is a mother of a controller - one of the best out there - I’m eager to help in whatever way I can.

That’s because it’s a relative controller, which output values differently than normal dials and fader do. This type of input method is currently unsupported by Duplex, and although not hard to make, unfortunately work has offered me little spare time for Duplex lately (I’d rather use some of that time for music TBH)

Hmmm…timeline? And…Duplex has clip stop buttons?
Various ‘timelines’ I can think of: Matrix pattern-trigger buttons, Navigator (blocks within pattern), and StepSequencer (pattern lines). A serious delay could be caused by a scheduled pattern (will respond when playback reach the end of the currently playing pattern)…I’m really guessing as to what you mean by this?

Oh, let me make an excuse about “midi Ch9” please.
I remember that I simply followed the image below. It is written with “midi ch9” on the top-left of the device knobs there. :unsure:
Anyway “Ch1” must be a correct answer if they work fine. Thanks for your reporting, Johnny!!

And about “clip stop buttons”, maybe he means the :huh: since I assigned Navigator to the “Clip stop” buttons on the APC40. I don’t experience such a serious delay on APC20 though…??

Hi Everyone, sorry for my funky explanations, I was so into editing the scripts I was thinking in hex, anyway, Just as a confirmation, device knobs and buttons under them (clip/track, etc) work as they should on channel 1. If anyone wants the fixed xml let me know. The timeline I was talking about is the clip stop buttons flashing from left to right in sync with the song, on my system (macbook pro i7) the button´s led goes green nearly a sixteenth of a beat late while the pattern indicator (scene launch buttons) go perfectly in time with the pattern change.

Also, I’m not a programmer but I can mess around with scripts and code and make it work, I’ve been trying to edit lua / xml with mixed results and I’m sure any of you can give me the code pretty easily :) My questions are:

Can you implement midi through lua directly? Been able to midi map would make mapping easier.

Can someone give a sample code (that I can understand! Not much luck reading the bundled ones) on how to integrate OSC messages through lua or duplex? Is it possible?

What I’m trying to achieve is the following:

  • Buttons (Device arrows L R? that scroll through the values of the block loop range and a knob to control it too
  • Control pattern tempo
  • Control lines per beat
  • Crossfader to control global dry wet in dsps in relative mode
  • Momentary pushbuttons: if hold they go off on release event.
  • incorporate the step sequencer mode as another page
  • Assign the pan knobs to something useful
  • Nudge buttons to page through renoise
  • Control sample editor loops
  • Use send pages to control sends

I don’t know if they’re all possible, but with a bit of help I’m sure I can implement the possible ones!

BTW Renoise and the apc feel very good together, snappy and flowing.

Thanks for your replies!

Thanks for the input, Johnny!

As you already know, Duplex works by writing small scripts (applications) which you can then attach to the desired buttons. So we should probably consider making a “Tempo” application which cover a number of useful features like LPB (set value, or increase/decrease in multiples), BPM (relative and absolute control, with various useful ranges for absolute/7-bit controllers), and special buttons for tap-tempo and BPM nudging.

I’m also working on releasing some more documentation on how to write applications yourself, as a series of increasingly complex tutorials.
It should help you a lot to have something like this, if you want to attempt to hack any of the following features into Duplex:

This sounds like it should belong with the Navigator (which is already controlling the block loop position & size). Perhaps Navigator should simply be called Blockloop?

Something for the “Tempo” application I was talking about?

How would you achieve this, when not (all) effects has a dry/wet parameter? I simply use my own custom (hydra-controlled) setups for this kind of thing.
Edit: ah, you mean controlling it using a relative input. I guess once Duplex supports relative message, this would be working as-it-is

Already there, but only when it makes sense - did you try switching the matrix triggers to “loop enabled” (then they’ll trigger when released, otherwise they trigger immediately when pressed).

I think I know what you mean, but it’s not possible to ‘stack’ applications like that ATM. You probably want to try switching device configurations using keyboard shortcuts, or by MIDI mapping another controller (in order to control which preset is running on the APC)


You got the Trackselector for selecting tracks. You got page up/down for the pattern sequence, and next/previous for tracks. You also got previous/next/left/right for the StepSequencer.

+1, I would like this too…

You have a special mapping in the Mixer which will take you straight to the first send track (also, first sequencer track and/or the master track).

All of this of course assuming that you’re using the latest (beta) release of Duplex.

:wub: I have been looking all over for this. THANK YOU!

Hey sato. I have downloaded the file com.renoise.Duplex.0.98b12.xrnx, and all assigned buttons work :D

Awesome. :yeah:

Oh, nice to hear this. :)
Also, there is newer thread here. (include some example configs)