External Synth - MIDI input/output question

Official support for: bitwig.com
RELATED
PRODUCTS

Post

Hello,

I have an external Synth and everything works fine with bitwig... I can play the keys from Bitwig, I see the keys in Bitwig when I play them on the Synth, and I can record the audio without problems. :)

My question is about how to control the different parameters of the Synth from Bitwig. In the External Instrument "Panel" I see 6 Knobs, and I can learn 6 parameters from the Synth correctly. If I modify the parameter in the Synth I see how the knob is moving in Bitwig. The problem is when I try to do an automation with one of these Knobs/Parameters, because the "value/signal" is not being sent back to the Synth, and therefore not working.

I´m doing something wrong? Why I can play the keys of the Synth from Bitwig, read the different Knobs of the Synth but I can´t modify them from Bitwig? :help:

Thanks!!

Post

I would use Midi CC... there is extra submenu in the controller lanes where you can select/add a automation curve for a controller message.. This controller message is send to the external synth.
I use often CC 74 which is many synth attached to the filter.

Post

What's the external synth?
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

The synth is a MophoKeyboard.

4damind, I have already tryed doing that. I took an Automation MIDI CC (with the Synth guide) and tryed to modify it with the "curve", but also was not working :(

The Synth is also with the Settings in order to receive MIDI CC Signals, it is working with the piano.

Post

You need to edit the MIDI script you are using to send MIDI from your controller. It's only 1 way as default. (Input)

Check this thread to find out how. It's simple enough, and just involves changing a 0 to a 1 so it receives as well as sends MIDI.

Post

There seems to be also a limitation with recording CCs (and maybe also other messages).
This time I see only velocity, timbre, gain, pan... typical it needs for such messages a extra or some CC map (the same which is used for the controllers).

I tried to modify a controller script so the synth (for me a Nord Lead) is receiving and sending... but moving the knobs on the synth has no effect. The synth knob can be attached to a macro without problems (midi learn), but the controller messages cannot be recorded...

Anyway, sending of CC is working. So if it has no effect it must be some wrong routing or a CC which is not attached to parameter for the external synth.

Post

A workaround is to use a plugin like Blue Cat's Remote Control. It allows you to name the parameters as well which is very handy.

That's what I'm using. I've set it up for the main parameter changes I tend to want to record for each of my external synths.

Post

There seems to be some confusion here.
I'm not much of a hardware user but maybe I can help with some concepts:

a.) The Hardware Instrument Device sends directly to a Midi-Out-Port of the computer, so that should work regardless of the Controller Script.
I used a Script with no Output for my test below.

b.) You can Midi learn the 8 Macro-Knobs, but that doesn't mean that the Macro-Knobs themselves send out Midi! They control other parameters in the Device Chain directly, not via Midi, even if they are controlled via Midi. ;-)

c.) The Note Expression Lanes in the Editor (Velocity, Gain, Pan and Timbre) are special per Note Parameters, some of which only work for the internal instruments. This area isn't supposed to show Midi CCs.

d.) You can send out CCs if you create Automation, either Clip or Arrangement Automation. For that you need to open the Automation lanes in the Track Header (Button with three vertical Lines) and select the CC you want to control. For simplicity sake, let's say CC 1 for the Mod Wheel. Select it from the dropdown and use the pen tool to draw some automation. This should be sent to the Hardware Instrument on the Track.

e.) I just tried with my CS1X and was able to record the CCs it sends (15, 13, 71, 74, 72, 73, 1, PitchBend) as expected. On Playback it worked as well (see image in next post).
The only CC that is borked ATM is CC64 (Sustain) which get's "translated" into long notes - which is totally wrong ;-)

f.)But Blue Cat's Remote Control may be a good idea as barryfell said, since it allows you to map Macro Knobs to Midi CCs and whatnot and has some interesting options on it's own.

I hope things are a bit clearer now?

Cheers,

Tom
Last edited by ThomasHelzle on Wed Apr 02, 2014 1:18 pm, edited 2 times in total.
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." · Rumi
UrbanFlow.art · Instagram · YouTube

Post

The recorded Automation from my CS1X:

Image

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." · Rumi
UrbanFlow.art · Instagram · YouTube

Post

I wonder if there is something wrong with the factory Controller Scripts.
Could somebody give my LMK3 Controller a go and see if it works with that? I used it in the example above.
Just put it in your user controller script directory and create a new controller using it (you can leave your original controller in as well).
http://www.kvraudio.com/forum/viewtopic ... 5#p5699326

I would like to get to the bottom of this...

Cheers
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." · Rumi
UrbanFlow.art · Instagram · YouTube

Post

ThomasHelzle wrote:a.) The Hardware Instrument Device sends directly to a Midi-Out-Port of the computer, so that should work regardless of the Controller Script.
I used a Script with no Output for my test below.
Does the Hardware Instrument send it's MIDI a roundtrip early? That's how it works on every other DAW I've used.


Is the Hardware Instrument plugin intended for monitoring external synths via Bitwig (input/software monitoring)?

Or is the Hardware Instrument plugin intended for monitoring external synths via an external mixer (direct monitoring)?
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

I think we nailed it. ;-)

There is indeed something "missing" in the factory scripts for use with hardware.

The Controller Scripts split the incoming Midi into two streams or layers. One serves instruments with notes and CCs etc. and the other is responsible for things like "Learn Controller Assignment" and the more nifty stuff controllers can do.

Somehow the factory scripts assume that stuff you use for GUI automation shouldn't go to the notes and the other way around, although that in practice isn't how people usually work IMHO. You may control a macro knob with the mod wheel in one project and use it for classical mod wheeling of the synth in another.

So in my LMK3 Script (Which is basically the same as the Generic Keyboard and can be used for any Keyboard) there is one additional Line that makes the difference:

Code: Select all

 Doepfer = host.getMidiInPort(0).createNoteInput("Doepfer LMK3", "?0????");
 Doepfer.setShouldConsumeEvents(false);
So the first change is, that the return value from the "createNoteInput" command is assigned to a variable ("Doepfer") that afterwards can be used to address that Note Input.
The second change is the line that says that this Note Input shouldn't consume the events it's sending (by setting it to false), which basically means that events go to both the Midi and the GUI assignment stream/layer.
There actually is a third change: the generic script doesn't use a "Filter" after the Device name in the first line. If that is omitted, a generic selection of Note Data is sent through (it's somewhere in the Controller API docs).
Since I want ALL data to go through but only on Midi Channel 1 (I don't use anything else with the LMK3) I set the Filter pattern to all Questionmarks (which means "let through whatever comes in") but the second bit is a 0, since that corresponds to Midi Channel 1 (it's a zero-based hex list going from 0 to f for the 16 possible values).
So if you would want to let everything through on all channels, you would set it to all Questionmarks.

I'll report that ASAP.

Cheers,

Tom
Last edited by ThomasHelzle on Wed Apr 02, 2014 2:41 pm, edited 2 times in total.
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." · Rumi
UrbanFlow.art · Instagram · YouTube

Post

TeePee wrote:
ThomasHelzle wrote:a.) The Hardware Instrument Device sends directly to a Midi-Out-Port of the computer, so that should work regardless of the Controller Script.
I used a Script with no Output for my test below.
Does the Hardware Instrument send it's MIDI a roundtrip early? That's how it works on every other DAW I've used.


Is the Hardware Instrument plugin intended for monitoring external synths via Bitwig (input/software monitoring)?

Or is the Hardware Instrument plugin intended for monitoring external synths via an external mixer (direct monitoring)?
I don't know the answer to the first question.

How you set up your system is your choice. You can either only use the Midi Out of the Hardware Instrument to drive your synth and mix externally, or you return the audio output from the synth into the Hardware Instrument via the Audio In it offers.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." · Rumi
UrbanFlow.art · Instagram · YouTube

Post

ThomasHelzle wrote:I don't know the answer to the first question.

How you set up your system is your choice. You can either only use the Midi Out of the Hardware Instrument to drive your synth and mix externally, or you return the audio output from the synth into the Hardware Instrument via the Audio In it offers.
There's essentially 2 ways to monitor (hear) an external MIDI synth:

(a) Direct monitoring. *Zero* latency. You send the MIDI from the DAW, and the audio from the external synth goes to a mixer, or gets direct monitored by your audio interface's DSP mixer (synth->AD->DA). In this monitoring situation, pre-recorded MIDI (from clips) should NOT be sent early.

(b) Input/Software monitoring. High monitoring latency. Your DAW (+Hardware Instrument plugin) sends the MIDI an audio-roundtrip earlier. The audio then comes out of the synth, incurs input latency, goes into the Hardware Instrument plugin, which then sends the audio to an output (incurring output latency).


If Bitwig's Hardware Instrument plugin is intended for input/software monitoring it must send the MIDI a roundtrip earlier because software monitoring always causes an extra roundtrip of latency for that external synth's audio (synth->AD->DAW->DA).

At the moment, I suspect Bitwig's Hardware Instrument plugin is exclusively working for either scenario (a), or (b). Not both.
Last edited by TeePee on Wed Apr 02, 2014 3:36 pm, edited 1 time in total.
Logic X, El Cap 10.11.3, Mini i7, Live, Reaper, Bitwig (demo)

Clicks at +100 samples: 44.1k / 48k (wav)

Post

Yes, the default controller scripts missing the filter so also channel pressure and incoming CC are handled. It seems there are not so many beta testers using hardware synth ;)

Post Reply

Return to “Bitwig”