An attempt to automate some aspects of building in Native Instruments Reaktor 5
Objective-C C++ C
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
English.lproj
Freeman.xcodeproj
Sparkle.framework
.gitignore
Basic Reaktor Outline.acorn
CGSPrivate.h
Credits.rtf
Favourites.xib
Freeman-Info.plist
Freeman.acorn
Freeman.icns
Freeman.png
FreemanAppDelegate.h
FreemanAppDelegate.m
FreemanCatalog.h
FreemanCatalog.m
FreemanDiskCatalog.h
FreemanDiskCatalog.m
FreemanFavouritesManager.h
FreemanFavouritesManager.m
FreemanFieldEditor.h
FreemanFieldEditor.m
FreemanKeyCodes.h
FreemanKeyMapper.h
FreemanKeyMapper.m
FreemanMenu.h
FreemanMenu.m
FreemanModularObject.h
FreemanModule.h
FreemanModule.m
FreemanModuleDatabase.h
FreemanModuleDatabase.m
FreemanOverlayManager.h
FreemanOverlayManager.m
FreemanPreferences.h
FreemanPreferences.m
FreemanRemoteProcess.h
FreemanRemoteProcess.m
FreemanResultsView.h
FreemanResultsView.m
FreemanSearchField.h
FreemanSearchField.m
FreemanXMLCatalog.h
FreemanXMLCatalog.m
Freeman_Prefix.pch
LICENSE
MenuActive.acorn
MenuActive.png
MenuNormal.acorn
MenuNormal.png
NSArray+Freeman.h
NSArray+Freeman.m
NSColor+Freeman.h
NSColor+Freeman.m
NSScreen+Freeman.h
NSScreen+Freeman.m
NSString+FreemanRanking.h
NSString+FreemanRanking.m
NSURL+Freeman.h
NSURL+Freeman.m
Overlay.xib
README
coremodules.xml
main.m
modules.xml

README

# Freeman v1.2.1
* by [Matt Mower](http://mattmower.com/)
* released: 30.09.2010

## Public release under MIT license

I'm releasing the code written by me under the MIT license while other code remains under its own license.

## Introduction

Freeman is a tool for users of Native Instruments Reaktor on Mac OS X 10.5 and 10.6 that offers a new way to insert modules into both Primary and Core structure windows. The default Reaktor approach is to use a right-click context menu and navigate to find the module you want. Using Freeman you get a window with smart type-as-you-go search to find & insert the module you want.

## Installation

Copy Freeman.app to your /Applications folder.

Open System Preferences and select the `Universal Access` pane. Ensure that `Enable access for assistive devices` is checked. If this setting is not checked Freeman will not run.

Double-click the Freeman.app to run it.

Freeman will appear in your menubar to show you it is running but does not display an application window of it's own. You will notice the menubar icon is like a dark outline of the Reaktor icon.

Now switch to Reaktor (Freeman was tested with v5.5 but should also work with v5.1.5) and you will notice the Freeman icon lights up red with an F in the centre. This lets you know that Freeman is actively watching Reaktor for you.

## Using Freeman

Freeman has four ways to insert a module into your structure.

<table>
	<thead>
		<tr>
			<th>Shortcut</th>
			<th align="left">Action</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td><code>ctrl+a</code></td>
			<td>Add module</td>
		</tr>
		<tr>
			<td><code>ctrl+r</code></td>
			<td>Re-Add last module</td>
		</tr>
		<tr>
			<td><code>ctrl+c</code></td>
			<td>Add constant module</td>
		</tr>
		<tr>
			<td><code>ctrl+f</code></td>
			<td>Add favourite module</td>
		</tr>
	</tbody>
</table>
		
Move the mouse cursor into the the Reaktor structure window (if you try and use one of the shortcuts outside of a structure window you will hear a beep to remind you).

Press `ctrl+a` and the Freeman module browser will appear. The browser is smart enough to know whether you are in a Primary or Core structure and only displays modules and macros appropriate to that type of structure.

Begin typing the name of the module you want and Freeman will display a list of matching modules below the search box. It uses a "smart abbreviation" search (a la Quicksilver) to home in on the right module with the fewest number of characters.

At any time one result (for a new search it will always be the first, best matching, result) will be highlighted with a gray background. At any time you can hit `Enter` or `Return` to insert the highlighted module into your structure. Quite often you can just type a few characters to narrow your search and then hit return.

To find the module you want just keep adding characters until you have narrowed the search right down, or get it close enough and then use the down arrow to highlight one of the other search results.

### Favourites

You can assign your 9 most frequently used modules to shortcut keys that Freeman will use to insert them.

To create a favourite open the search dialog with ctrl+a as normal. Select the module that you want to make into a favourite. Now, instead of pressing return, press `ctrl+f`, then (without holding `ctrl+f`) press one of the following keys: `q`, `w`, `e`, `a`, `s`, `d`, `z`, `x`, or `c`.

Freeman will insert the selected module and remember the association of the module with that key. When you want to insert a favourite module in future press the same key sequence, i.e. `ctrl+f` followed by the selected key. When you press `ctrl+f` Freeman will popup a hint window showing your assigned favourites to help you learn them.

Freeman remembers your favourites between sessions and you can have 9 favourites in both Primary and Core structures.

### How it works

Freeman works by sending events to Reaktor to simulate you, the user, inserting the module. You will see the Reaktor context menu open and select the right module no matter how deeply nested in the menu. This process happens quite quickly however it is important that you **do not press any keys** while Freeman is working.

### Example

Let's say you want the "Snap Value" module. Type `sn` and you will see that "Snapshot" is selected with "Snap Value" one further down. You can either type a `v` to narrow the search further or press the down arrow to select the module directly. You don't need to switch focus from the search field to do this, just press down and, when you have selected the right module, hit return to insert it.

### Re-adding

If you want to insert the same module several times you can use the `ctrl+r` shortcut to re-add the same module. Freeman will automatically offset the insert position 8 pixels up and to the left each time but it isn't very smart about what might be there. **Be careful that you do not insert past the top or left edges of the structure window, or over the top of an existing module. The results will be unpredictable**.

### Adding constants

There is a quick shortcut `ctrl+c` to insert a new constant module at either primary or core level.

## Problems

### Freeman detects Reaktor but `ctrl+a` does not work

For reasons that are not yet clear Freeman isn't working for some users. This appears to be because their structure windows have a non-standard colour and so Freeman does not "see" them. If you think you are being affected by this problem please try sampling the structure window colours.

To do this move the mouse over an empty part of the structure window and press `ctrl+[` for primary, or `ctrl+]` for core. Freeman will sample the colour of the window where the mouse is pointing and store that association.

## Notes

Freeman 1.2.1 is for Mac OS X 10.5 ("Leopard") and 10.6 ("Snow Leopard").

You can get support for Freeman by contacting me via email at the address above or getting in touch with me in #reaktor on Freenode IRC.

## Disclaimer

Freeman is a hack based on manipulating the Reaktor process using OSX Quartz event services and private CoreGraphics calls. As such, is offered with **no warranty of any kind.**

There have been no reported issues so far but please don't test it on the only copy of the ensemble you've been working on for the last 5 years.