Forum rss-feed

Forum

Software: Workbench: adding kgroup

Most Recent

written by: john

Hi Randy

You can wire a Scaler upstream of a Keygroup and get it to work if you want. The reason that it won't do so automatically is that Keygroup doesn't have a frequency input (which is the signal that the Scaler adds) and so you will be missing this downstream of it. In order for the smart plumbing to work when you make the high level connection (which is making a load of lower level connections for you automatically as you can see when you expand the Agent) it needs to see an input with the right name on the downstream Agent.

Keygroup does have some general purpose Ports that get switched along with all the keys though. These currently, by default, have names like 'pedal input 1', but you could use one of those to route your frequency through the Keygroup and it should work just fine, just explicitly connect the frequency signal on both sides upstream and downstream to whichever one you use.

For some downstream Agents you could directly wire the frequency, bypassing the Keygroup, as they don't start doing anything when the frequency changes and it would be ignored if a key on their input keygroup wasn't down. Some Agents however start making a noise with a valid frequency input at any time, like the clarinet oscillator, so this won't be good in those circumstances.

The problem you had has kicked off quite a bit of discussion here about the way that Keygroup works and may result in the creation of some new Agents that do multiway signal switching in a more agnostic way in the future. This won't happen in 2.0 though as it requires some careful thought to get right and would represent a significant change in some setups.

I hope that makes this issue clearer.

John

written by: carvingCode

Sun, 8 Jan 2012 01:22:50 +0000 GMT

I'm putting together a simple setup in Workbench and am having trouble getting the output wire from a kgroup agent to connect. I tried to connect it to a scaler and to a audio unit agent. The output wire does not want to make the connection. I'm being very careful to place the wire in a spot where it should make a connection.

I noticed in the Pico example that it's kgroup was connected to a synth rig, so I figured that the scaler agent was probably not a good one to connect to. But, kgroup should connect to a audio unit agent, right?

Randy


written by: geert

Sun, 8 Jan 2012 09:21:49 +0000 GMT

Hi Randy,

You probably forgot to create an output in the keygroup, it should have at least one to send the data to another agent. Outputs are used to switch inside the same keygroup, for instance between different instruments.

Hope this helps,

Geert


written by: john

Sun, 8 Jan 2012 09:42:59 +0000 GMT

I think it might be a good idea if we had Kgroup be created with one output already there. This would probably confuse me too.

John


written by: alistair

Sun, 8 Jan 2012 10:00:36 +0000 GMT

To add the kgroup output, expand the kgroup agent by clicking on the triangle. In the list of ports you will see one called output. This port has a little button in its top right corner. Click this button. Select OK when the Create new kgroup output dialog appears. A new kgroup output will be created in the output port. (you may have to expand output to see it) Now you should be able to connect either from the top level of the kgroup agent (as you were trying to do before), or you can wire directly from the kgroup output itself.


written by: carvingCode

Sun, 8 Jan 2012 13:11:02 +0000 GMT

Thanks for the assist, all.


written by: carvingCode

Sun, 8 Jan 2012 16:00:35 +0000 GMT

OK. Building on the tutorials, I added a kgroup between the scaler and audio unit agents. I added an output to the kgroup and wired it to the audio unit. I've added the settings from the Pico example for course size and key map to the kgroup. But am not getting any output.

Screen shot of section.

Suggestions?



written by: NothanUmber

Sun, 8 Jan 2012 16:09:00 +0000 GMT

Perhaps it's easier to try to help if you explain which goal you want to achieve. Having the kgroup behind the scaler looks unusual on first sight..


written by: carvingCode

Sun, 8 Jan 2012 16:25:17 +0000 GMT

You're probably right about the placement of the kgroup. I'm definitely guessing.

What I'm trying to do is modify the setup produced in the Workbench tutorial #2 so that the Pico keyboard is laid out in the standard fashion, e.g.: 2 courses, offset by 4. I assume I need to add a kgroup to do this.


written by: NothanUmber

Sun, 8 Jan 2012 17:54:00 +0000 GMT

Here a demo setup that shows how to set up just one audio unit for Pico with the default layout.
Steps to create:
* add the following managers:
- pico manager (automatically adds keyboard pico 1)
- kgroup
- scaler
-midi converter
- audio unit
- audio
- interpreter (we will need this to change the layout)

* open the kgroup and click on the "+" sign at "output" to add a new output
* connect keyboard pico 1 -> kgroup 1 -> scaler 1 -> midi converter 1 -> audio unit 1 -> audio 1
* open the EigenCommander and type "kgroup 1 hey k as 1 choose". Now tip the keys one after the other in the desired order. Tip the last key twice. (This sets up all keys in course 1 - like in the standard setup). Alternatively you could also just have set the key map property of the kgroup 1 to "[[1,1],[2,2],[3,3],[4,4],[10,5],[11,6],[12,7],[13,8],[5,9],[6,10],[7,11],[8,12],[14,13],[15,14],[16,15],[17,16],[9,17],[18,18]]" and the course size property to "[[18,0.0]]", but the way via the commander is perhaps more intuitive. (You need the Belcanto interpreter agent in your setup to get the EigenCommander to work)

Now you can experiment, e.g. by adding additional courses, changing the layout, playing with the scaler, adding a mixer - whatever :)

P.S.: The Audio unit has the Alchemy (full version) plugin loaded, if you don't have that you might need to exchange it. When playing with scales it could help to add the "scale manager agent", this can e.g. be used to browse scales etc.


written by: carvingCode

Sun, 8 Jan 2012 18:33:47 +0000 GMT

Thanks, Ferdinand. I Just moved the kgroup before the scaler agent, rewired and got correct output.

I had previously entered key map settings, so didn't go thru the EigenCommander method you describe. But this is good to know about. I assume that this will record the key map based upon any order the keys are pressed, correct?


written by: NothanUmber

Sun, 8 Jan 2012 20:04:55 +0000 GMT

carvingCode said:
I assume that this will record the key map based upon any order the keys are pressed, correct?


Yepp :)


written by: geert

Mon, 9 Jan 2012 08:55:51 +0000 GMT

Small suggestion here, it's not needed to open the EigenCommander to enter choose mode. There's a 'chooser' port in the kgroup agent. When you give it a number as value, it and press enter or set, it will enter choose mode for the course that corresponds to the number you entered.

Note, that this is a temporary solution that we added at the end of the last year to make it possible to get 2.0 and Workbench out. It will be replaced by a proper GUI solution that makes this obvious.


written by: john

Wed, 11 Jan 2012 15:32:10 +0000 GMT

Hi Randy

You can wire a Scaler upstream of a Keygroup and get it to work if you want. The reason that it won't do so automatically is that Keygroup doesn't have a frequency input (which is the signal that the Scaler adds) and so you will be missing this downstream of it. In order for the smart plumbing to work when you make the high level connection (which is making a load of lower level connections for you automatically as you can see when you expand the Agent) it needs to see an input with the right name on the downstream Agent.

Keygroup does have some general purpose Ports that get switched along with all the keys though. These currently, by default, have names like 'pedal input 1', but you could use one of those to route your frequency through the Keygroup and it should work just fine, just explicitly connect the frequency signal on both sides upstream and downstream to whichever one you use.

For some downstream Agents you could directly wire the frequency, bypassing the Keygroup, as they don't start doing anything when the frequency changes and it would be ignored if a key on their input keygroup wasn't down. Some Agents however start making a noise with a valid frequency input at any time, like the clarinet oscillator, so this won't be good in those circumstances.

The problem you had has kicked off quite a bit of discussion here about the way that Keygroup works and may result in the creation of some new Agents that do multiway signal switching in a more agnostic way in the future. This won't happen in 2.0 though as it requires some careful thought to get right and would represent a significant change in some setups.

I hope that makes this issue clearer.

John



Please log in to join the discussions