Jump to content


Photo

Duplex Keyboard


  • Please log in to reply
32 replies to this topic

#1 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 28 January 2012 - 20:41

Duplex Keyboard (v0.98)

Download: Duplex (including Keyboard)
This tool is written for Duplex, the OSC/MIDI communication framework for Renoise.

The Keyboard application is designed as a drop-in replacement of the standard Renoise keyboard with
support for both MIDI and OSC devices. Essentially, the Keyboard application can be used in two ways:
as a standard keyboard (visualized as black & white keys in the virtual control surface),
and as individually-mapped keys/pads, suitable for grid and pad controllers.

duplex_keyboard_key_mode.png


Using the Keyboard
When you are using the application in the keyboard mode, it might receive notes as well as pitch bend and
channel pressure information from the device, which can then be 1) ignored, 2) broadcast as MIDI (unchanged),
or 3) routed internally to any MIDI CC message. This in turn means that you can easily use the native MIDI
mapping in Renoise to map the pitch bend to any parameter.

Furthermore, since we are using internally-triggered notes we have the ability to trigger notes inside a specific
track, using a specific instrument. The default setting is identical to the standard behavior in Renoise, and will simply
use the currently selected track/instrument. But it's possible to select any track or instrument by specifying it in
the options.
 
Note that you can stack multiple Keyboard applications to control/trigger multiple instruments with a single
master keyboard. The "MIDI-Keyboard" device comes with a configuration that demonstrate this ("Stacked Keys"),
in which three instrument are triggered, each with different settings.
 
In grid mode, the Keyboard application is able to visualize the currently selected instrument's key-zone/sample
mappings in real-time. This makes it a lot easier to see exactly where each sound is located, and even works
as you are moving mappings around, or transposing the keyboard octave up/down.

duplex_keyboard_grid_mode.png

Also, all of the UISlider mappings (volume, octave, pitch bend, etc.) support grid mode, as their mappings can be
mapped to buttons just as easily as they can be mapped to a physical slider or fader.
 
Furthermore, the grid mode supports a number of different layouts. Each one has it's own character,
and will invite to different playing styles: 
 
Harmonic: choose this layout if you are playing an instrument within a specific harmonic scale.
Left and right are the keys within the scale, up and down will move through octaves.
 
Isomorphic: this layout is nice if you want to reach all notes (not restricted to a harmonic scale).
Specific finger patterns will result in specific chords, no matter where you press. 
 
Piano: this is a "piano style" layout, useful if you are used to playing a traditional piano but otherwise
not really advisable (it takes up a lot of space to have separate rows of black and white keys). 
 
Harmonic scales and keys
Here is an image that show how each layout will respond to a harmonic scale.
See how the harmonic layout is the only one without redundant pitches...?

scales+layouts-anim.gif
  
In this image, we are setting the scale key to every possible value.

keys-isomorphic-nat.gif

Setting the scale key does not simply transpose the notes - it pushes the scale upwards by the
selected number of semitones. As a result, the trigger pad/button might be assigned to a different
pitch (generally speaking, you do not want to apply a harmonic scale to the isomorphic layout.
It only seemed like a good idea for this screenshot, as it clearly demonstrates what is happening). 

Prerequisites
The Keyboard application will not work unless you have enabled the internal OSC server in
Renoise (Renoise prefereces -> OSC settings). It should be set to "UPD" protocol, and use the same
port as specified in Duplex/Globals.lua - by default, this is set to the same value as Renoise, "8000".


Options
Active Instr. - Choose which instrument to control
Active Track - Choose which track to use
Velocity Mode - Determine how to act on velocity range
Base Volume - Determine how to control keyboard volume
Base octave - Specify the default starting octave
Ch. Pressure - Determine how to treat incoming channel pressure
Pitch Bend - Determine how to treat incoming pitch bend messages
Key-release - Determine how to respond when the same key is triggered
Button-width/height - Specify the button size (when in grid mode)
Upper note - Specify a note as upper boundary
Lower note - Specify a note as lower boundary

Mappings
keys - trigger notes using keyboard
key_grid - trigger notes using buttons or pads
pitch_bend - pitch-bend wheel
pressure - channel pressure
volume - volume control
volume_sync - sync volume with Renoise
octave_down - transpose keyboard down
octave_up - transpose keyboard up
octave_set - set active keyboard octave
octave_sync - sync octave with Renoise
track_set - set active keyboard track
track_sync- sync track with Renoise
instr_set - set active keyboard instrument
instr_sync - sync instrument with Renoise

Additional features
* Voice-manager: the foundation for some of the more advanced features, basically it keeps track of
the currently playing notes, their designated instrument and track + it eliminates the potential problem
of stuck notes when you're changing octave from within Renoise while pressing one or more keys...
* Upper and lower range, to create a split keyboard (so you don't have to edit your instrument to achieve this)


  • Ledger, Conner_Bw, Djeroek and 10 others like this

Tracking with Stuff. API wishlist | Soundcloud


#2 dblue

dblue

    Dodgy Geezer

  • Admins
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 5549 posts
  • Gender:Male
  • Location:Berlin
  • Interests:Code. Music. Graphics.

Posted 28 January 2012 - 21:52

You're a mad man :)

Nice work!

#3 satobox

satobox

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1533 posts
  • Gender:Male

Posted 29 January 2012 - 02:36

Hey danoise, you forget to mention about this Prerequisites:

The Keyboard application will not work unless you have enabled the internal
  OSC server in Renoise (Renoise prefereces -> OSC settings). It should be set
  to "UPD" protocol, and use the same port as specified in Duplex/Globals.lua
  (by default, this is set to the same value as Renoise, "8000").

At first, since notes did not sound at all, I was straying for a while... :rolleyes: ;)

まいどお~きに Renoise-Gate (Japanese Tutorial)


#4 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 29 January 2012 - 02:48

Hey danoise, you forget to mention about this Prerequisites:

Thanks for pointing that out. Added to description

Tracking with Stuff. API wishlist | Soundcloud


#5 sevenscientist

sevenscientist

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 181 posts
  • Gender:Male
  • Location:Australia

Posted 29 January 2012 - 04:26

insanely good!

#6 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 30 January 2012 - 15:57

Satobox has discovered a small issue in which certain messages are doubled (working on a fix).
Once that's taken care of, the standard keyboard will have a Grid Pie configuration Posted Image

Edit: Fixed, download llnk updated with new version

Tracking with Stuff. API wishlist | Soundcloud


#7 mSepsis

mSepsis

    Big Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPip
  • 546 posts
  • Gender:Male
  • Location:Mountain View, CA
  • Interests:MIDI, Lua, Video Production, Animation, Sound Design, Painting, Drawing, Robotics, Chicago Bulls/Bears/Blackhawks

Posted 30 January 2012 - 19:42

Hey danoise - where's your tip jar?
  • Djeroek, dby and maes like this

#8 nightmorph

nightmorph

    Member

  • Normal Members
  • PipPip
  • 35 posts
  • Gender:Not Telling

Posted 06 March 2012 - 02:47

couple of issues:

1. no LED feedback on the monome. is this implemented? i can press a button, and it lights up the on-screen version in renoise, but the actual LED on the monome does not.
2. i don't seem to have any way of assigning samples to buttons on the monome. it doesn't actually seem to interact with the regular sample keyboard/instrument mapping tab that i use for e.g. my mpd18. i used the latest duplex 0.98 beta for renoise 2.8 listed on the download page.

Edited by nightmorph, 06 March 2012 - 02:47.


#9 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 06 March 2012 - 11:37

couple of issues:

Thanks, I did mess up something for the monome in that last release, as acknowledged here.
In any case, the reported issues should have been fixed - I'm hoping to release something tonight.

i don't seem to have any way of assigning samples to buttons on the monome. it doesn't actually seem to interact with the regular sample keyboard/instrument mapping tab that i use for e.g. my mpd18

Are you planning to use the monome or mpd18 for triggering samples? Both are of course possible, also at the same time. If you experience otherwise, this is most likely because that last release didn't play well with the monome to begin with.

Tracking with Stuff. API wishlist | Soundcloud


#10 nightmorph

nightmorph

    Member

  • Normal Members
  • PipPip
  • 35 posts
  • Gender:Not Telling

Posted 06 March 2012 - 12:08

Thanks, I did mess up something for the monome in that last release, as acknowledged here.
In any case, the reported issues should have been fixed - I'm hoping to release something tonight.

Are you planning to use the monome or mpd18 for triggering samples? Both are of course possible, also at the same time. If you experience otherwise, this is most likely because that last release didn't play well with the monome to begin with.

known issue with a fix on the way makes me happy. lookin' forward to tryin' the new version.

i was planning on using both the 128 and the mpd18 for playing certain songs; i'm starting to experiment with one-shots more than the usual mlr-like loops, though both have their place. percussion on the mpd18, melodic stuff on the monome. would be nice if i could use the same drag-and-drop method of sample placement/assigning on both the mpd and the monome.

#11 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 06 March 2012 - 13:37

would be nice if i could use the same drag-and-drop method of sample placement/assigning on both the mpd and the monome.

Ah, OK - I think that is just a question of changing the colors being displayed on the monome in the device configuration. Lights may be blindin' Posted Image
But wait just a little while...this exact part has changed a lot in the upcoming release
  • dby likes this

Tracking with Stuff. API wishlist | Soundcloud


#12 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 09 November 2013 - 15:21

I just made a small change in how this tool works.
Now, when you set the keyboard velocity to a fixed amount it will always output notes at that velocity level.

So, if your workflow involves temporarily switching on/off velocity for your master keyboard as a whole, this tool will now let you use the "keyboard velocity switch" in the Renoise pattern editor toolbar to achieve that.

Tracking with Stuff. API wishlist | Soundcloud


#13 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 27 September 2014 - 13:44

I have just updated the original post to cover the new features in Duplex 0.99.4

* Support for the new "hold" and "mono" trigger modes in Renoise 3*

* Grid layouts: harmonic, isomorphic and piano style

 

Some controller layouts got updated in this process, and have changed a bit. Hopefully for the better, but if you are missing the exact layout offered by the previous version, it's possible to change the harmonic layout into something identical using these settings:

GridLayout.HIGHLIGHT_SAMPLE

HarmonicLayout.ALIGN_NONE

 

Contact me if in doubt as how to apply these settings.

 

* The visual display of held notes will be 100% up to date only when you are *exclusively* using the Duplex Keyboard. In other words, do not try to control the same instrument natively from Renoise and via the Duplex Keyboard when in "hold" mode - the state of lights can become inverted (will turn on when the voice stop playing, and vice versa). 


Tracking with Stuff. API wishlist | Soundcloud


#14 satobox

satobox

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1533 posts
  • Gender:Male

Posted 07 January 2015 - 15:27

Hi danoise, :)

Recently I bought Launchpad mini and tried isomorphic layout in Duplex (let's say 5-5-2 layout).
At first I couldn't understand how to use it, but I found this page and I get it now.
https://hearandknow....ic-note-layout/

But I also found an another page and I like the alternative isomorphic layout (let's say 3X4 layout).
http://mididesigner....ard-on-the-ipad

Isn't there the chance to adopt the 3X4 layout too in Duplex? (only a chromatic scale layout is enough.)

I compared these two layouts and I personally think that the 3X4 layout looks easier than the 5-5-2 layout.
Well, I've already tried to hack the IsomorphicLayout.lua (tried "local pitch = (row*3) + col - 1"), it works to some extent but I give up now, haha.
Thanks in advance.

 

5-5-2.png

 

3x4.png


まいどお~きに Renoise-Gate (Japanese Tutorial)


#15 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 09 January 2015 - 02:30

Hi danoise, :)

Recently I bought Launchpad mini and tried isomorphic layout in Duplex (let's say 5-5-2 layout).
At first I couldn't understand how to use it, but I found this page and I get it now.
https://hearandknow....ic-note-layout/

 

It's pretty typical of me to make something "clever" and not document it properly  :blush:

 

But what you are suggesting sounds interesting too. Have you actually tried playing with that particular layout?


Tracking with Stuff. API wishlist | Soundcloud


#16 satobox

satobox

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1533 posts
  • Gender:Male

Posted 09 January 2015 - 06:15

Have you actually tried playing with that particular layout?

 

Ahh, yes I've tried (if saying correctly, I've touched them only a bit) and I felt not very confortable, (sorry to say).
There are too many doubling-buttons (like 60, 60, 62, 62, etc) so I was confused, to be honest.
I'd like to memorize the cord form as easy as possible. Having a lot of layouts can be counterproductive, imho.
So I like the isomorphic chromatic scale layout. It works great already and I want to practice it mainly.

Well, it's just an opinion of a beginner without the perseverance, so never mind too much, haha. ;)
 

 


まいどお~きに Renoise-Gate (Japanese Tutorial)


#17 DoubleDeep

DoubleDeep

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 120 posts
  • Gender:Male
  • Location:Norway

Posted 26 January 2015 - 22:43

Would love support for the Livid Base! :)



#18 Padlock

Padlock

    Member

  • Normal Members
  • PipPip
  • 42 posts
  • Gender:Male
  • Location:Deltona, Florida
  • Interests:Music production, anime, manga, sounds, breakcore, IDM, roller coasters.

Posted 31 July 2015 - 05:19

I have been trying to use this keyboard application since it launched, and I've still never been able to figure out how to switch layouts and choose scales like you do in that first gif. It's just incredibly unclear in all the documentation and this thread how you achieve that. Using the default launchpad config with an original launchpad for clarification.



#19 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 07 August 2015 - 21:56

I have been trying to use this keyboard application since it launched, and I've still never been able to figure out how to switch layouts and choose scales like you do in that first gif

 

You can switch both scale and key using the supplied mappings (already part of the Launchpad config), or simply by choosing the scale/key manually from the instrument properties in Renoise.  - the Keyboard application will listen for this and change accordingly.  

To change the layout you need to have the Duplex browser visible while the Keyboard app is selected/running, click 'Settings' and choose the layout you want from the option called 'Grid Layout'


Tracking with Stuff. API wishlist | Soundcloud


#20 Heptagen

Heptagen

    Member

  • Normal Members
  • PipPip
  • 26 posts

Posted 12 March 2016 - 17:45

I can't find the grid mode, where the lights represent my keyzones... Other than that, everything works fine so far. Can someone help me?

 

Edit (because this was not specific enough):

 

"In grid mode, the Keyboard application is able to visualize the currently selected instrument's key-zone/sample

mappings in real-time. This makes it a lot easier to see exactly where each sound is located, and even works
as you are moving mappings around, or transposing the keyboard octave up/down."

 

This is what I want to have. But when I load a sample into a new instrument and shrink the keyzone so that it can only triggered by one key, still the whole matrix will light up and not only the one key. Why?


Edited by Heptagen, 12 March 2016 - 18:13.


#21 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 17 March 2016 - 17:55

This is what I want to have. But when I load a sample into a new instrument and shrink the keyzone so that it can only triggered by one key, still the whole matrix will light up and not only the one key. Why?

 

Oops, overlooked this. Yes, you are right - and you're not the first one to notice.

Later versions of Keyboard emphasize the dynamic layouts (isomorphic, chromatic etc.) over keyzone visualization. 

 

I will see what I can do about this, perhaps toggling the visualization would make sense. 


  • Heptagen likes this

Tracking with Stuff. API wishlist | Soundcloud


#22 RachmanEnough

RachmanEnough

    Member

  • Normal Members
  • PipPip
  • 54 posts
  • Gender:Male
  • Location:Not far from the c-base

Posted 25 March 2016 - 06:26

This tool (with Duplex) actually encourages me to invest in a real midi controller again (or build an own). Mouse-free workflow for the win.

 

Which device would you recommend for composing with Renoise (Duplex) primarily and perhaps a bit of Reaper for mixing ? Live-capabilities are secondary.


Edited by RachmanEnough, 25 March 2016 - 06:49.


#23 dplduffy

dplduffy

    Member

  • Normal Members
  • PipPip
  • 13 posts
  • Gender:Male

Posted 01 June 2016 - 01:32

I have a couple questions about this tool/

1. I found the option self.flip_octaves in the layouts. This works great for the harmonic and isomorphic layout. When I flip the octaves on the Piano however, the actual keys get flipped along with the octaves. i.e. the black keys are on the bottom and white keys on the top. Is this intentional?

2. Is there a way to make the keys light up based on the pattern you have selected? Say I have a Launchpad, and the current selected track has notes in it, is there a way to highlight the keys of the notes that are playing on the launchpad? or does the device only work for input?

#24 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6069 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 01 June 2016 - 10:38

I have a couple questions

 

1. Black/white keys being flipped, hm yes that could be seen as an oversight. I never use that particular layout myself :-D
 
2. No, but I could see how very useful this could be. The implementation would need a few milliseconds latency, but as it's a visualization only this should be no big deal. 
Perhaps, when I get the time to bring back keyzone visualization I could take a look at this as well. 


Tracking with Stuff. API wishlist | Soundcloud


#25 dplduffy

dplduffy

    Member

  • Normal Members
  • PipPip
  • 13 posts
  • Gender:Male

Posted 02 June 2016 - 00:08

1. Black/white keys being flipped, hm yes that could be seen as an oversight. I never use that particular layout myself :-D


for anyone wondering, this is a pretty simple fix.  In line 70 of PianoLayout.lua inside Duplex > Applications > Keyboard > Layouts change this

  if self.flip_octaves then
    row = (self.kb.grid_w - row) + 1
  end

 to this

  if self.flip_octaves then
    local row_offset = (row%2==0) and 1 or -1
    row = (self.kb.grid_w - row) + 1 + row_offset
  end