Automap feature

Novation has a famous feature called AutoMap for its Remote Zero SL midi control surface. It allows you to store presets for your applications and when your applications becomes the active window, it automatically loads that preset.

So for example, when Propellerheads Reason becomes the active window, your Reason presets automatically load. Then if you click on Pianoteq, your Pianoteq midi assignments would automatically load.

Right now, this feature is implemented for Windows on the application level via an AutoMap Server that developers must code into their apps.

Is it possible for Ardour to create such a feature without requiring devs to recode their apps?


To clarify, I’m talking about a Generic AutoMap feature that will work with any MIDI control surface(not just Novation controllers).

This can be done, but it would be stupid to make it an Ardour feature.

You’d want some small standalone app that watched for window-manager-related events concerning top-level window focus (X11 doesn’t have a direct comparison to the concept of “active window” - the closest is “window to which key press and release events will be delivered”). it would then do what was necessary.

Defining what is necessary at any point in time is the hard part.


The function of AutoMap (according to your description) is to change the function of the controller based on the selected app. As Paul said, this is not something you would put into Ardour itself, but into the controller mechanism.

It looks like maybe what you are after is the “reverse” of AutoMap. You want multiple controllers to have “presets” that control Ardour. This is certainly possible. There is already a framework to map MIDI and/or OSC controls to Ardour, and someone could create a mechanism to switch between control maps on the fly.

However, because Ardour is an open-source project, there is even more flexibilty than you will find in a proprietary app. It is possible for manufacturers to control Ardour in a very “deep” tightly integrated way. When the ramifications of this becomes clear to the controller manufacturers, then we will see some serious innovation in this field.

-Ben Loftis

hello i project to make a special surface control for ardour…

There is already a framework to map MIDI and/or OSC controls to Ardour

Where can i find info about this ?

The osc support of ardour is more than simple transport/action operation for now ?


I’ve been thinking on and off about this sort of thing for a while. Let me get one thing clear first – Ardour is not the place for the lion’s share of the work. That is a background daemon/server process that effectively runs an event and messaging subsystem.

Basically Ardour will listen to events, do something and possibly give feedback
when something under Ardour’s control changes (e.g. if you move a fader in Ardour with the mouse, and e.g. a rotary encoder on a BCR2000 is mapped to it, the rotary encoder should be notified of the change). How exactly depends on the design of the automapping system, and doing a fully general system is not easy.

There needs to be a separate project that talks with developers of audio applications to think this out. Certainly it shouldn’t distract from other pressing issues with Ardour.

Is anybody interested in discussing how a free automap like system should work? (As an Automap Universal on Mac user myself, I consider the current implementation far from perfect, and a free open system is the way to go.)

JohnAllSup, I just have to say that this thing is actually the thing I’ve been hoping for for a long time! That would really be a superb piece of software.

the closest i can get to an understanding is that people want multiple apps connected to a single controller, and some way to make sure that only one app at a time gets events from the controller, without changing the signal routing. as the GUI “focus” moves from one app to another, the target for event delivery would follow it.

as i mentioned above, this doesn’t need any interaction with audio apps at all. you need an app that interacts with the window system (on X11, with the window manager) to track changes in whatever should be considered the “active” window. that app would also be the only place that MIDI (or whatever) would arrive; it would route the events out to the relevant app based on the window state.

this is not an ardour feature, and it doesn’t require any work by ardour developers or developers of other music apps.

I kind of see paul’s point. What I am about to write makes heavy use of the word virtual…

What you really want is to virtualise the control surface so that each app sees a different virtual control surface. You connect the virtual control surface to the app, rather than the real one, and this virtual surface remembers the values of its virtual controls. When an app becomes active, the active virtual surface changes and the virtualiser then updates the hardware to reflect the selected virtual control surface.

That much requires no additions to ardour, though would require creating and destroying midi ports based on the apps currently running.

What e.g. Novation Automap allows is multiple ‘control clients’ per app, so that each plugin also gets its own mapping to the hardware, and the automap server lets you choose between them. Currently Automap accomplishes this with a hacked workaround that involves wrapping AU and VST plugins and using a wrapped version of the plugin in place of the original.

If you had a client-server virtualisation system you could do something similar, and that too would require no work in ardour.

I’d envisaged a much more comprehensive system, though couldn’t figure out the best way to go about designing one.

Hey all,

I know this isnt the solution that your looking for,
but as a workaround for the time being, can we not use MIDI
channels to route one Keyboard/controller to every App we want?

I mean, Hyrdogen (or whatever) on channel 16, then start
a Qsynth on channel 1, 3 ZynSubAdd’s at 2-4?

Im doing that at the moment and it works perfectly!


» En ucuz host
» ikizdere pirinç
» ikizdere çeltik
» ömer gavuzoğlu
» yakup gavuzoğlu
» şaban gavuzoğlu
» fotokopi servis
» dizi
» resimleri


S3 Trio3D/2X English Display Driver 2.00.01 For OS/2, Gainward ExperTool 3.23 Windows 9x/ME/2000/XP, Lexmark i3 Color Inkjet Printer Driver WinXP, Elo TouchSystems Monitor Driver 1.0 Serial Windows CE 4.00/4.10, ACER Aspire 5670 Notebook TouchPad Driver v7.12.13 Windows XP, HP Business Inkjet 3000 Printer for Microsoft Windows 2000, Genius TVGo A03 Driver 1.0 Windows 2000/XP, Diamond Supra Max K56 FLEX Firmware Update, HP Photosmart 7350 Printer version for WinXP, HP Mopier 320 version 3.7.5 for Win2000, HP 2000cse Printer for Microsoft Windows ME, Gestetner Printers P7026/P7026n PCL 6 Driver Ver. Windows Server 2003/2000/XP, Fargo DTC550 Printer Driver v2.07 Windows 2000/XP/Server 2003, HP Pavilion dv5000 Notebook Intel 945GM Driver A Windows Vista x32/x64, HP Deskjet 3620 Color Inkjet Printer version for win2000, Biostar M7TDF BIOS 0424b, ATI Radeon 9000/Xx00/X1000 Catalyst Software Suite 9.8 Windows XP(32/64), Biostar M7TDB BIOS 0424s, Encore ENF656-ESW-NDPR (MD92XP) Modem Driver Windows ME, Konica Minolta PagePro 1350W Printer GDI driver 1.6.1120.0 Win2000/XP, Logitech Keyboards Driver iTouch v2.21 Windows 98/ME/NT/2000/XP, Aopen Mainboard MX4SG-4DN BIOS R1.05 For Windows, Pine DSC-2CF PC Camera Driver Windows 98/ME/2000/XP, Genius Camera G-Shot D613 Driver Beta Windows 98SE/ME/2000/XP, Sweex Wireless ADSL Modem/Router annex B CD400010 Firmware, HP LaserJet 5100 Printer for Microsoft Windows 98, Allied Telesyn AT-WCC200G Wireless CardBus Adapter Driver 1.20 Windows 2000, Intel Processor Identification Utility 3.5 Windows 2000/XP/XP x64/2003/2003 x64, EIZO ColorEdge CG220/CG210/CG21/CG19/CG18 ColorNavigator Calibration v4.1.0 Windows 2000/XP, Samsung SCX-4321 Printer Driver ver.1.55.11 Win 98/ME/2000/XP, Sony PCG-NV200/PCG-NV290 Toshiba SD-R6012 DVD-RW Firmware Update Utility 1S34 Windows XP, Acer TravelMate 3000 Notebook Broadcom LAN Driver 10/100 v4.23.0.0 and Giga v6.64.0.0 Windows XP, HP Business Inkjet 1100d Printer for Microsoft Windows ME, Linksys LNE100TX Version 2.0 EtherFast 10/100 LAN Card Driver, HP Deskjet 855cse Printer version 9.2 for win3.11, Genius DPF-111K Photo Converter Software v1.0 Windows 2000/XP/Vista, HP LaserJet 500 Plus Printer version 30.728 for SO/2, ACER Extensa 5220 Notebook ATI VGA Driver Ver.8.371 Windows XP, MSI D16 DVD-ROM Manual 1.0, HP Photosmart p1100 Printer version for Win2000, HP LaserJet 9000hns Printer Version 3.0.27 for win2000, Aztech Modem AMR MR2800 Driver Windows ME, HP Color LaserJet 9500gp Printer for Microsoft Windows XP 64-Bit Edition, Razer DeathAdder Mouse Driver 1.06 Windows 2000/XP(x32/x64)/Vista(x32/x64), Acer TravelMate 5620 Notebook Broadcom Wireless 802.11BG v4.102.15.53 Windows Vista, ATI All-In-Wonder Driver Catalyst 7.5 Drivers for Windows XP Media Center Edition, HP Deskjet 1220c/ps Color Inkjet Printer version 1.0 for win98, LiteOn LDW-411S/LDW-411SX DVD Dual Firmware FS0K, Acer Aspire 5920 Notebook Robson Intel v1.0.0.1082 Windows Vista x64, LifeView TV Walker Swift SE DTV Application build 1236 Windows 2000/XP,