Intro to Controller Scripting - Bitwig Studio 1.0.x

Post Reply New Topic
RELATED
PRODUCTS

Post

AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.
4damind wrote:I provide this script for the M-Audio Axiom series:

- it uses the transport section of the Axiom to stop/record/play/forward/rewind/loop.
- it uses the knobs S10 to S18 on the Axiom Pro 61 to select scenes 1 to 9
- filter is enabled to record aftertouch and controller messages (if the knobs on the Axiom are moved)

m-audio.rar (https://4damind.com/fs/2v)
help me bro i have an axiom pro 61,now trying to understand this api scriptint thing,some detailed instruction will be great

Post

husserl wrote:has anyone figured out a script allowing PolyAT to send per note timbre values with the KMI Qunexus keyboard.

I understand that it should involve assignPolyphonicAftertouchToExpression, NoteInput.NoteExpression, and TIMBRE_UP or TIMBRE_DOWN in some way, but don't know how to implement it.

My attempts to adapt ThomasHelzle's polyAT scripts to the qunexus have all failed spectacularly, so i'm clearly missing something.

assistance plz sympathetic codemonkies?

Any help would be met with hurrahs and such. Thanks!

http://www.keithmcmillen.com/QuNexus/downloads <-- documentation... haven't found anything to indicate it isnt possible tho
Don't know about your Keyboard but here are some things to go through:

- Make sure your Keyboard is actually sending PolyAT. My MPD18 for instance by default sends ChannelAT and needs to be explicitly set per Pad to send PolyAT.

- When you declare your Note Input, make sure to assign it's return value to a variable, otherwise you don't have a "handle" on it. This is similar to an URL or Address.
From my MultiController:

Code: Select all

MultiCon   = host.getMidiInPort(0).createNoteInput("MultiCon - Omni", "??????");
Here I assign the "Return Value" from the creation of the NoteInput to "MultiCon" which is a variable. So later I can refer to this specific NoteInput with this Variable.

- Then I make sure that the Note Input doesn't "eat up" all the Midi:

Code: Select all

MultiCon.setShouldConsumeEvents(false);
I use the Variable from above as an "address" to the specific NoteInput and tell it not to consume the Events but also hand them on to other parts of the script.

- Finally this row does the PolyAT to Timbre:

Code: Select all

MultiCon.assignPolyphonicAftertouchToExpression(0,   NoteExpression.TIMBRE_UP, 5);

Again I use the MultiCon Variable with the "handle" to access the specific NoteInput and then set the Midi Channel 1 (in code this is counted from zero up), Timbre-up and a nonconsequential 5 for Pitch Bend Range which isn't used with Timbre.

I hope this helps.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Thanks for your time to do these tutorials,
much needed & Much appreciated . :tu:
New Drum & bass and trance mixes for April 2014 (also Breaks And eclectic DJ mix sets) http://www.mixcloud.com/SubJacent/

Post

ThomasHelzle wrote:Sorry, I have absolutely no clue what the Lemur needs. You can look into the more advanced scripts for other controllers to see how they work, but it's getting rather involved fast.

Is there a dedicated Lemur forum? Maybe you can find some more users with an interest in Bitwig or talk to the Lemur Manufacturer directly?

Cheers,

Tom
Thanks Tom, it's actually not that big a thing really, the lemur can respond to midi feedback, like mixers with moving faders... like with Ableton, if I assign a lemur midi cc to a fader with learn, and I move that fader on Ableton, it will send the midi message out to the lemur and the fader will move to the correct position on the lemur, at the moment, it can go 1 way in and not back out.... so I just need to figure out how the controller scripts allow some devices to send midi out and not just midi in... actually I don't even understand why the generic midi device doesn't allow midi feedback....

Post

dsan@mail.com wrote:Here's a start Ikariya:
https://github.com/search?q=bitwig&ref=cmdform

Several scripts to run various controllers.

I keep a watchful eye there hoping for some scripts to utilize my controllers.

So far the one there for Akai APC40, by stylemistake, works well.

In the early pages of this thread, which is stickied BTW, 4damind contributed an Axiom Pro 61 script. I couldn't get it working completely on my Pro 49 (transport issues); however, it may help you start in the right direction.

Happy Musiking!
dsan
Haha oops my bad this is stickied, I must be blind! :P
Thanks for the link, I'd stumbled onto a few of those already, was just hoping to see it all get consolidated soon. :) Glad to hear Tom that this is in the works. :D

Post

Ikariya wrote:
dsan@mail.com wrote:Here's a start Ikariya:
https://github.com/search?q=bitwig&ref=cmdform

Several scripts to run various controllers.

I keep a watchful eye there hoping for some scripts to utilize my controllers.

So far the one there for Akai APC40, by stylemistake, works well.

In the early pages of this thread, which is stickied BTW, 4damind contributed an Axiom Pro 61 script. I couldn't get it working completely on my Pro 49 (transport issues); however, it may help you start in the right direction.

Happy Musiking!
dsan
Haha oops my bad this is stickied, I must be blind! :P
Thanks for the link, I'd stumbled onto a few of those already, was just hoping to see it all get consolidated soon. :) Glad to hear Tom that this is in the works. :D
I'm not happy with this scripting system, no, let me rephrase that, I like it, but I hate the fact that I am limited to just control surfaces... a midi keyboard with 8 knobs is not good enough... like my issue with the lemur, there is this misunderstanding that the lemur is a control surface, it can be, but it's actually a generic controller that happens to be able to send and receive any kind of midi message... in Ableton you don't even need a controller script, the generic vanilla midi controller works just fine, because Ableton is passing every message through and allowing you to do bi-directional midi... there should be a fully generic controller in Bitwig that acts the same way, you shouldn't have to script every midi message and layout, there are so many controllers, do we seriously have to do this for every single one.... it's too hard.

Post

dsan@mail.com wrote:Here's a start Ikariya:
https://github.com/search?q=bitwig&ref=cmdform

Several scripts to run various controllers.

I keep a watchful eye there hoping for some scripts to utilize my controllers.

So far the one there for Akai APC40, by stylemistake, works well.

In the early pages of this thread, which is stickied BTW, 4damind contributed an Axiom Pro 61 script. I couldn't get it working completely on my Pro 49 (transport issues); however, it may help you start in the right direction.

Happy Musiking!
dsan
I have an APC40 also, it works OK... but there is A LOT missing, I'd like to see that updated soon if possible.... I mean there are no controller banks which is one of it's biggest features... sure I can learn knobs, but what about macros, I haven't had a chance to use macros even once.

Post

Just a quick heads-up: I currently need to attend to other matters so I can't help you guys. I'm sorry.
But feel free to use this thread to exchange tips and help each other out.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Hello! I have a problem with the keyboard axiom 49. Downloaded script here previously laid under it, but only works snim keyboard. If there is please let who that still worked transport panel. Thanks in advance!

Post

Hi Thomas,

I cannot seem to get poly aftertouch working with your script, I have my controller set to channel 2 but get no aftertouch into the devices.

Any pointers would be really appreciated.

Cheers

Andy

iZueL wrote:
ThomasHelzle wrote:Hey,

since the generic Script doesn't really work well for most people I thought I create one to serve most situations for most Keyboards:

Download:
Toms Generic Keys


This script offers:
- Omni as well as 16 separate Midi Channels.
- Sends Midi to the GUI as well as to the Note Channel, so you can record and play CCs and also map GUI controlls.
- Sends Out MidiBeatClock.
- Supports Polyphonic Aftertouch per Channel (Omni only on Channel 1 I fear)
- In and Output.

I hope this helps.

Put it in your user directory for Controller Scripts:
On Windows this is:
C:\Users\YourUserName\Documents\Bitwig Studio\Controller Scripts
On OSX it is located in:
Users/YourUserName/Documents/Bitwig Studio/Controller Scripts

It will show up under "Add Controller Manually"->"Generic"->"TomsGenericKeys" in Preferences after a restart of Bitwig (which is more reliable than reloading).

Cheers,

Tom
Should we modify that with something?? How to know the MIDI Port Name?? Do you mean MIDI channel?

Code: Select all

host.addDeviceNameBasedDiscoveryPair(["YourMidiInPortNameHere"], ["YourMidiOutPortNameHere"]);

Post

Ok, sorry my stupidity. Need to use the TMB modulation source.

Working perfectly now.

Have you any idea of how to actually get Poly AT into plugins that support it?

Post

Polyphonic Aftertouch doesn't work in a straight fashion in Bitwig Studio ATM. (Definitely not for my lack of trying to change that ;-) ).
The only way to use it is translating it to the Bitwig "Timbre" per Note Expression (or one of the others that are available) and use that with the factory devices. I don't know of any way to re-translate this into "real" PolyAT to use it with VSTs with native PolyAT support like the u-he range or Alchemy etc. as of BWS 1.0.8.RC2...

In theory VSTs can support all those BWS Note Expressions directly, but they need special coding to be able to react to them and I don't know if and when such adoption is planned and by whom. Most Developers have their hands full as it is already ...

I hope I was able to convince them that Poly AT should be supported directly with it's own Parameter Lane in the Note Expression Section, given the fact that it actually is the only polyphonic Controller that already exists for ages as part of standard Midi Protocol and is available both in existing VSTs as well as being playable with existing controllers.

Not the highest priority though I fear...

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Hi Tom,

Thanks for the info.

It seems a shame that BW doesn't support Poly AT to plugins, I will email them to add a feature request.

Cheers

Andy

Post

ThomasHelzle wrote:Polyphonic Aftertouch doesn't work in a straight fashion in Bitwig Studio ATM. (Definitely not for my lack of trying to change that ;-) ).
The only way to use it is translating it to the Bitwig "Timbre" per Note Expression (or one of the others that are available) and use that with the factory devices. I don't know of any way to re-translate this into "real" PolyAT to use it with VSTs with native PolyAT support like the u-he range or Alchemy etc. as of BWS 1.0.8.RC2...

In theory VSTs can support all those BWS Note Expressions directly, but they need special coding to be able to react to them and I don't know if and when such adoption is planned and by whom. Most Developers have their hands full as it is already ...

I hope I was able to convince them that Poly AT should be supported directly with it's own Parameter Lane in the Note Expression Section, given the fact that it actually is the only polyphonic Controller that already exists for ages as part of standard Midi Protocol and is available both in existing VSTs as well as being playable with existing controllers.

Not the highest priority though I fear...

Cheers,

Tom
If Bitwig added PolyAT support I would buy it.

And it makes me mad that modern DAW's don't fully support the midi protocol. It is especially frustrating that there are more new reasonably priced controllers now available that support PolyAT and lots of of softsynths support it. DAW's add all sorts of fancy and extraneous stuff and don't let the user just record all the midi data their controllers produce.

The main lack in Live for me is PolyAT and that is what makes me open to switching DAW's. I'm already annoyed at Ableton for not adding this long before now. No way I want to spend $400 just to be annoyed at the same deficiency.

I'm also unimpressed by the note expression stuff... It's useless for realtime playing.

harumph!

Post

I basically agree with you guys, and I think I annoyed the hell out of the Bitwiggers with my FRs for this. ;-)
It's especially aggravating since BWS has everything in place, it really "just" needs to connect the dots.

I think I somehow understand why they may not go into supporting everything Midi, since that basically means you need an event editor and other "supporting acts", which isn't exactly Bitwiggish IMO. I can live with some special stuff needing 3rd party plugins, but having the nicest per Note Event Editor and not supporting the one existing and playable per Note Event is, well, funny... ;-) :party: :clown:

It's definitely a good idea to send in FRs for this so they know it's not just me ;-)

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post Reply

Return to “Controller Scripting”