How to use controller object?


#1

Hey :smile:

Yesterday I was trying to set up a controller object to pass audio through Axoloti. I want to connect output of one Axoloti to input of another and just pass the audio through.

I tried putting the subpatch on the sd-card, in the root and name it "InOut.axs". And then I entered this into the controller object preferences to call it up: "cardname/InOut.axs". But no luck. I tried with a regular .axp patch too, but that didnt work either. I also tried just entering "/InOut.axs" in the controller object preferences, but that also didnt work.

@johannes @thetechnobear Any ideas?

Thanks


Switching patches
Program Change CC Number?
Presets - how to tips?
Preset Manager help
#2

controller patches are added to an existing patch... on compilation.

to use we simply create a new 'controller object', the easiest way to do this is to create a subpatch
then we just reference this object in the preferences (file->preferences)

example:

so in this example,
a) I've got a new directory in my search path , where I keep my custom objects.
/Users/kodiak/Documents/axoloti/objects

b) Ive then created a sub-directory in that directory called controllers, where I can store my 'controller' objects,

c) I then created a sub-patch called test.axs which I save in that directory
i.e. its stored in
/Users/kodiak/Documents/axoloti/objects/controllers/test.axs

d) now I have an object called 'controllers/test' which I could explicitly use in patches, but instead I'm referencing as a controller object in the preferences so its added to all patches.

e) as with all 'custom objects' if you add a new one, you will need to use 'reload objects' from the file menu (or restart axoloti)

to test is simple,
simply create a blank patch and then 'go live' and see if the functionality is included.
when a patch uses your controller object you will see a message in the console log, similar to
"Using controller object: /Users/kodiak/Documents/axoloti/objects/controllers/test"
if you dont see this, it probably cannot be found, so check the paths and names, and also try 'reload objects'

then you can build you normal patch, then when you go live , the controller patch functionality is included.

the reason its named controller patch, is really the 'intended use',
(though it could be used for any functionality you want to default)

imagine you want to have it such that for every patch you build, you want to have program changes switch a presets.. you could add this functionality as a controller patch, so you don't have to add the subpatch to every patch you build. (and more importantly, if you download a 3rd party patch it would work for that too without having to change their patch)

its 'limitation' is it cannot interact directly with the 'main patch', so you would tend to use midi outputs (or I guess audio as you are doing) ... this is intentional, since if it has wires, you would then have to wire it into the main patch, which is what Im trying to avoid, since if you do that you might as well use a sub-patch.

btw, the in/out ... there is a much better way to do this, that I want to add... the hardware codec has a built-in mixer, which allows input to be copied to output, we just need to add support for this in firmware (or an object) , this would mean the CPU would not have to get involved with doing this audio thru.
(important for FX patches, where this would act like a 'mix')


Tutorial: How to change program on Axoloti from external controller!
Confused on loading multiple patches
#3

Ahhh... It is intended for controlling not routing?

Sound great with the build in mixer idea. Would be really great if something like that would be possible. I was hoping, like you, to avoid having to put a subpatch in every patches with the in/out routings. It would be nice if it was prerouted so it would be possible to use Axoloti as normal without worrying about that :smile:

BTW where should the controller object be saved and called up? /cardname/InOut.axs? and then enter that exact name into the controller object preferences?

Thanks :smile:


How to use patch banks and controller object with s1 and s2 buttons
#4

its intended for functionality that you want to add to every patch ... not limited to controllers, but thats the 'obvious' use case.

the controller object is compiled/folded into main patch at the time you compile the main patch.

its kind of 'similar' to adding functionality to the firmware but at user level...

you cant really use for routing, since you cannot wire it in... but you don't need this anyway, since you would do this by adding (re-useable) sub patches.

you can put it wherever you want on your computer! it gets compiled into you patch when you hit LIVE (or transfer the built patch to the card)

fyi: the board has no ability to compile AXP/AXP files, so you would never transfer them to the axoloti board / sdcard. all compilation is done on the Mac/PC and then transfers a binary image to the axoloti board.


#5

Cool. That clarified a few things :smile:

I think I should test it with program chaneg that works and see what happen :smile:


#6

After playing with using stereo input object into a subpatch in the main, instead using the controller object, I noticed that if you have the input in a subpatch the audio will be played from, even if not cabled to an output. Thats nice for the situation im in. BUt if you want to put effects on it is not so good, cause you cant control volume of it or where to route it.. Anyway it works fine for what I need it for now :smile:


#7

ok so really stupid question.... how do I make a controller patch I'm super confused, but I think this could save me a lot of time with programming patch changes into each patch.


#8

I can see I need to do a demo ... Im obviously not describing it well :smile:

anyway, just create a patch that has the functionality you want for the controller patch,
save as mycontroller.axp (or whatever you want to call it)
then reference that from the preferences dialog, make sure its 'enabled'

now load another patch, take it LIVE and see how magically the functionality contained in your controller patch is available :smile:
(if you transfer to the SDCARD it will be similarly available)

EDIT : see my first post, Ive updated to clarify, and remove things which may be misleading


#9

I for example dont know how to patch the program change /preset change thingy that it supposed to be inside the controller object. and how and where to reference to the patches on the sd card.. there are many things to consider I guess... I havent tried yet.. Maybe sometime later..


#10

HA! just found it took me some time I was looking in the settings dialog found in the patch window. not the preference dialog found in the axoloti window.


#11

Ok, I've noticed that something change between my initial dev of this, and the release.
so Ive updated my first post here, to ensure it contains 'correct information'
(as some things here were misleading)


#12

So, I tried following these instructions and got this message in the console window of axoloti:
Using controller object: Controllers/Program Change Control
attempt to create object from subpatch file : objects/Controllers/Program Change Control.axs
attempt to create object from subpatch file : /Users/Mubali/Documents/axoloti/objects /Controllers/Program Change Control.axs
Unable to created controller for : Controllers/Program Change Control
Generate code complete

What am I doing wrong?

edit- I should add that I'm the one Jaffa is referring to with the performance coming up, and I used the exact same patch as what was uploaded in Jaffa's post regarding getting the patch changing to work.


#13

can you try to remove the spaces from the names.

also, /Users/Mubali/Documents/axoloti/objects /Controllers/Program Change Control.axs
looks a bit odd, there appears to be a space after objects and before controllers...
can you check the object search path doesnt have a leading space in the name.


#14

That was it. I since the full path isn't shown in the controller object path, I didn't see the extra space. Looks like it loaded up fine now. Thanks man. Glad it was something simple.


#15

yeah, on the new stuff, I'll add file dialogs, so you don't have to enter path names, will make it easier


#16

That would definitely help, thanks for your efforts on this!


#17

Got it working too, following the new instructions :smile:

Routing the audio input directly to the output in a controller object also works now. I tried that ealier with no luck, but I think it was because of the wrong path for the controller object.

Thanks :smile:


#18

I got mine to work, but I have a strange quirk that happens. In order for me to be able to send patch changes to the axoloti from Live 9.5, I have to enter card reader mode, and then eject the sd card from finder. Then I can play only one patch that I have selected, and when I select a different patch, there is no sound. I have to redo the process of entering card reader mode and so on again.

I'm wondering if anyone is having a similar issue?


#19

This is unlikely to be about controller objects, and more about patch loading generally.

I think we need to test and isolate the issue in 2 ways:
- don't use controller objects.
- check its not something within your patch, i.e. use a very simple patch

can you try with a very simple patch
e.g. create 2 patches , one that just plays a sine wave, the other a saw... and has your program change logic in the patch directly. (i.e. not using controller objects)

post them here too...
(if you find its not controller object, please create a new topic in the helpdesk)

Im a bit limited in time at the moment so don't have time to do the above to test it, so would be helpful if you could give it a try.... then I can pickup on what you have done :wink:


#20

Ok, so I tried the tests to isolate the issue, and was not able to isolate it. I cannot select more than a single patch if the logic change is in the patch itself or the controller object. I made two simple patches that have the functionality built into it, but that didn't work either. Totally puzzled as this was working more or less as of yesterday. MUBSaw osc basic.axp (3.5 KB)
MUBSine osc basic.axp (3.5 KB)