The Lemur Owner’s Manual Revision of 31 October 2005 © 2005 JazzMutant SAS and Cycling ’74 — All rights reserved Congratulations on your choice of the JazzMutant Lemur.
To understand the features and possibilities of your new Lemur, we recommend that you read the Owner's Manual in its entirety and retain it for future reference.
Table of Contents Contact Information........................................................................................................ 7 For the United States and Canada................................................................................ 7 For all Other Countries................................................................................................ 7 Important Safety Information .........................................................................................
Using the Lemur with Open Sound Control Applications ............................................. 48 Using the JazzEditor Settings Window...................................................................... 48 Connecting the Lemur to Max/MSP .......................................................................... 50 Understanding the Lemur’s Open Sound Control Messages ...................................... 53 Controlling Max/MSP with the Lemur ...........................................................
OSC Data.................................................................................................................. 72 RingArea....................................................................................................................... 73 Variables ................................................................................................................... 73 Dimensions ...............................................................................................................
Contact Information For software updates, examples, and other supporting software, visit the JazzMutant web site at www.jazzmutant.com For the United States and Canada Cycling ’74 (distributor for JazzMutant) 379A Clementina San Francisco, CA 94103 - USA + 1 (415) 974-1818 support@cycling74.com For all Other Countries JazzMutant SAS 2, allée du Doyen Georges Brus 33600 Pessac - FRANCE +33 (0)556 46 03 44 info@jazzmutant.
Important Safety Information In order to prevent fire, electric shock, or injury to the user, always observe the following guidelines: • Before using this unit, make sure to read the instructions below and the Owner's Manual. • Do not open or modify the unit or its AC adaptor in any way. • Do not attempt to repair the unit, or replace parts within it. Refer all servicing to your retailer or authorized JazzMutant distributor, as listed on the Information page.
• Objects have fallen into, or liquid has spilled onto the unit; • The unit has been exposed to rain (or otherwise has become wet); • The unit does not appear to operate normally or exhibits a marked change in performance. • In households with small children, an adult should provide supervision until the child is capable of following all the rules essential for the safe operation of the unit. • Protect the unit from strong impact.
• Should you remove security screws, make sure to put them in a safe place out of children's reach, so there is no chance of them being swallowed accidentally.
What’s Included in the Box? • The main thing that’s included, of course, is your Lemur multitouch control surface. • Ethernet cable intended for direct connections between the Lemur and your computer. • External power supply: switching, 100-240V, 50-60Hz AC input; 12V DC 2 Amp / 24W output. This is a fairly hefty output. Using a power supply with a lower output rating poses a serious fire hazard.
Regulatory Information For EU Countries CE This product complies with the requirements of European Directive 89/336/EEC. For USA FCC REGULATION WARNING This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation.
Notes for Proper Operation Power Supply • Do not use this unit on the same power circuit with any device that generates line noise (such as an electric motor or variable lightning system). • The AC adaptor will generate heat after long hours of continuous use. This is normal and should not cause any alarm. • Before connecting the unit to other devices, turn off the power to all units. This will help prevent malfunctions and/or damage to speakers or other devices.
abrasive detergent. Afterwards, be sure to wipe the unit thoroughly with a soft, dry cloth. • Never use benzine, thinners, alcohol or solvents of any kind; such chemical may cause discoloration and/or deformation. Additional Precautions • When working with the unit’s buttons, display, or other controls or when using its cords and cables try to be reasonably gentle. Rough handling can lead to malfunctions. • Never strike or apply strong pressure to the display.
Getting Started with the Lemur Know Your Lemur The top of the Lemur includes a touchscreen and four buttons. • The Settings button displays the current Lemur network configuration and software version. • The Interface List button displays a gallery of thumbnails corresponding to each interface currently stored on the unit. Touch the desired interface to display it. • The two Navigation buttons allow you to move forward and backward among the interfaces currently stored on the unit.
The rear panel of the Lemur houses the power switch, power input jack, and Ethernet jack with status lights. Lemur System Overview To use the Lemur you will need • an network connection from the LEMUR to a computer (running Mac OS X 10.2 or later, or Windows XP). If you are connecting the Lemur directly to your computer, please use the Ethernet cable supplied in your Lemur box. You can also connect the LEMUR to your computer’s network using routers and/or switches.
• Turn on the power switch on the back of the Lemur. You should see the four buttons on the top of the unit light up. After the startup sequence has finished, a yellow Lemur should be visible on the screen. If you don’t see the yellow Lemur but you are sure the unit is turned on and plugged in, the unit may be malfunctioning. Please contact your JazzMutant retailer or distributor for technical support and/or repair service.
• You use your computer’s Ethernet port to connect to the internet, and you want to stay connected while you use your Lemur. • You use a wireless connection to the internet with a wireless router, and you would like to access your Lemur wirelessly by connecting it to your router. • You have several Lemur devices you would like to use to control your computer at the same time (lucky you!).
• To check if you’ve successfully connected your Lemur to your computer or a router, check the Media display near the bottom of the screen. If connected, it will report the speed of the connection (in the screen shown, it is 10 Megabits per second). If there is a problem, the Media will be displayed as Disconnected. • To use a fixed IP address to the Lemur (useful when you are connecting directly to the computer), touch the words Static IP.
Once you’re finished, touch the Apply button. Your setting should look similar to this: Now you will need to configure your computer’s network settings to work with this address as follows. First we’ll talk about how to do this on Mac OS X, then on Windows XP. Mac OS X Direct Configuration These settings only apply to connecting your computer to your Lemur directly with a single Ethernet cable.
Now we’ll configure the IP address manually. Choose Manually from the Configure IPv4 menu. • Set the first two numbers of the IP address to 169.254. Set the next two numbers to anything that does not match the Lemur’s IP address as shown in the Settings window on the touchscreen. For instance, if the Lemur’s IP address is displayed as 169.254.0.2, you can enter 169.254.0.74. Next, set the Subnet Mask to 255.255.0.0: Your computer should now be ready to talk to your Lemur.
First, let’s examine the existing network connections on our computer. • Click Start, the right click on My Network Places in the Start menu. Choose Properties from the pop-up menu that appears. The Network Connection settings window will appear. In the window you will see different categories of network devices. To examine a direct Ethernet connection, look for the "LAN or High-Speed Internet" category for one probably described as a "Local Area Connection.
plugged into another Ethernet device and the firewall is enabled. If the cable is not plugged in (or the target device is not on or working properly then you may see the following: To configure the IP address of your computer, right-click on the Local Area Connection (or whatever you’ve decided is the name of your Ethernet connection.) Choose Properties from the pop-up menu. The Local Area Connection Properties window appears.
• Select the Internet Protocol (TCP/IP) and click the Properties button. This brings up the TCP/IP Properties window. • For a direct connection to the Lemur not on a network and not using DHCP, click Use the following IP address and enter the following information: IP address: 169.254.0.100 Subnet mask: 255.255.255.0 Default gateway: Leave blank • Leave the DNS part of the Properties window empty.
• Click OK to close the window. Using a Lemur in a Local Area Network Your local area network can use either a switch or a router. A router typically assigns network addresses to each device using a DHCP (dynamic host control protocol) server. Many people use wireless routers, which include both Ethernet ports and a wireless connection. If you use a wireless router to connect to the Internet, you can connect your Lemur to the router and access your Lemur wirelessly.
If the Lemur talks successfully to the DHCP server in your router, you should see it display its DHCP-assigned IP address as well as the Gateway address of the router itself, such as this: Assuming the DHCP configuration was successful, the Lemur should now be on the same network as your computer. Using a Switch or Hub In this scenario, your computer is connected to an Ethernet switch or hub, and you would like to connect the Lemur to this same switch or hub.
Mac OS X Insert the CD-ROM supplied with your Lemur into the CD-ROM drive of your computer. When the CD appears, double-click on the CD’s icon to display the contents. You’ll see the Lemur icon for the JazzEditor application. Drag the JazzEditor to the Applications folder on your computer. When you first play with the Lemur, you’ll probably be firing up the JazzEditor a fair amount, so you may want to add it to your dock. Drag the JazzEditor icon from its location in your Applications folder to the dock.
• configured the network settings on your computer • installed the JazzEditor software Now we’ll use the JazzEditor application on your computer to find the Lemur on the network and talk to it. • Launch the JazzEditor. You’ll see the main window with a yellow lemur. Click the Connect button at the top of the main window. If the JazzEditor repeatedly fails to launch, try restarting your computer and trying again.
After clicking Connect, you’ll see the following window: The Connection Window If the JazzEditor can see your Lemur, you should see the word lemur followed by an IP address at the top of the window. If you have multiple Lemurs connected, you may see several IP addresses listed. If you do not see a Lemur listed, your network connection has not been properly established. Another possibility is that you just turned on the Lemur and it will take a moment before it appears on the network.
• Before you get too excited and click the Connect button, you need to select the desired Lemur by clicking on its IP address as shown here: You can either double-click the IP address of the Lemur, or click it once and then click the Connect button. If the connection is successful, the Connection window will disappear and the icon at the top of the main window will change to Disconnect as shown below. If you get an error attempting to connect, first just try it again.
Interfaces and Objects The JazzEditor application defines the interfaces and behavior of your Lemur. The application functions largely identically on the Mac and Windows platform. With the JazzEditor, you work with Projects, which are XML files that contain the specification for one or more Interfaces you will build out of Objects. In other words, Projects are the Lemur’s documents. You’ll save them to your computer’s hard drive, and open them when you want to send them to the Lemur.
• The Editing Area is where you will design interfaces for the Lemur. • The Properties Browser allows you to edit the details of the selected interface object. Creating Interfaces When you first open the JazzEditor, the default Project contains no data. • If the JazzEditor is not already connected to the Lemur, click the Connect button, choose the desired Lemur in the Connection window, and click Connect. You can create interfaces with the JazzEditor without being connected to a Lemur.
• Click the Interface button on the bottom of the JazzEditor window. • A dialog will appear where you name the interface. Use the default name or type in a new one (you can change it later). After you create the interface, the main window (and the screen of the Lemur) will turn black. In additon, the Project Browser at the bottom left of the JazzEditor window will show a new interface with the name you typed in.
A list of the available objects appears. In this window, you select the type of object you want and give it a name. You can change the name later. Note that all Object names within an Interface must be unique. For this exercise, select Multiball and click OK. A new Multiball object should appear on your JazzEditor screen and your Lemur.
established). If the button does say Connect, click the Connect button and repeat the procedure described above in the section Getting Your Lemur Connected to the JazzEditor above. You can move an Object in the JazzEditor window by clicking and dragging on the inside of the rounded rectangle. Clicking on the outline resizes the Object. The change should update on your Lemur shortly after you make it on your computer. Resizing an Object • Try touching the Multiball on your Lemur.
If we click on Multiball’s disclosure triangle, we see some additional details. The check boxes next to Multiball, x, y, and z are extremely important. The check box next to Multiball must be checked before the object will send any data to the computer when you are using the Lemur to control an application. In addition, the check box next to x must be checked in order for the Lemur to send horizontal positional data when you touch this Area object.
With one of the fields of the Multiball object selected in the Project Browser, click on the Behavior tab in the Properties section. The following display will appear: The Physic menu has three modes that define the behavior of the balls. When Physic is set to None, the ball moves immediately to where your finger is and stays there. It also follows your finger around as you drag your finger on the touch screen, and immediately stops when you lift up your finger. • Choose Interpolate from the Physic menu.
• Touch the Lemur screen somewhere inside the Multiball where there isn’t a ball. A ball should take a much longer time getting to your finger. • Now let’s try the final behavior mode. Choose Mass-Spring from the Physic menu. • Change the attraction value to 1.0 and the friction to 0.2. • Try touching a ball in the Multiball now. It bounces off the “walls” of the object and eventually slows down.
• Press the Interface List button on the top of your Lemur. The upper left corner of the screen of the Lemur should look something like this. • Touch the picture of the interface you want to use, and it instantly covers the entire screen. • Next, try pressing the Navigation buttons on the top of the Lemur. They move from one interface screen to the next with a single button press.
Projects This chapter discusses Lemur Project files. In the previous chapter, we created a Project consisting of two Interfaces. Our Project Browser should look something like this: Working with the Project Browser You can use the Project Browser to select the current interface you want to edit. However, this does not switch the interface currently displayed on the Lemur. To sync up the Lemur with the JazzEditor, use the Interface List button to select the desired interface.
You can also resize the Project Browser by dragging the area that separates it from the Properties area and the Interface editing area. Or click the Maximize/Minimize button at the top of the JazzEditor window to fill the size of the entire display. Saving Your Project To save your project, click the Save button. (For those of you slightly younger computer users out there who might be wondering, the icon represents a 3.5” floppy disk. What’s a floppy disk? Oh never mind.
We’ll try to sort it all out in this section. An important point to keep in mind is that the JazzEditor tries to prevent you from losing your work. This has several implications: • There is no straightforward way to erase the current contents of your Lemur. Well, actually there is one, but you might not like it: turn the Lemur off and back on again: The Lemur has no non-volatile memory for Projects.
Example 2: The New Button, Part 1 • Click the New button. Notice that you are immediately disconnected from the Lemur. The Disconnect button changes to the Connect button. • Click the Connect button. After choosing the desired Lemur and connecting, the contents of your Lemur will be sent back to the JazzEditor. The principle is this: when connected to your Lemur, the JazzEditor wants its state to be the same as the Lemur. Use the Disconnect button to edit Lemur interfaces “off-line.
(For the purposes of this example dialog box, the previously saved Project we opened was called test2.xml.) You’ll click Yes if you want to overwrite the contents of the Lemur with what you currently have in the JazzEditor. Click No if you want to remain disconnected and leave the state of the Lemur as is. Again, the principle is this: if you want to connect to the Lemur, you’d better be prepared to reconcile its state with the JazzEditor. • Click Yes.
As you might be able to predict by now, clicking Yes will send the JazzEditor version to the Lemur, while clicking No will keep you disconnected. We have one more example to consider. In this particular case, the JazzEditor’s behavior is a little confusing, but harmlessly so. Example 6: Saving a Project Under a New Name Continuing from our previous example, we assume you have a project file that has been uploaded to the Lemur.
• In this particular case, you’ll almost always want to click Yes. Example 7: Downloading Your Lemur’s Contents into Your Computer Let’s say we get ourselves into a situation in which the Lemur holds the only copy of our Project. This might happen if you quit the JazzEditor without saving your project. Or, perhaps we made some changes while disconnected that we don’t want, and we would like to return to the version sitting on the Lemur.
the Lemur’s current contents with that content. However, if the JazzEditor is blank, when you connect, you’ll get what’s currently on your Lemur (if anything).
Using the Lemur with Open Sound Control Applications In this chapter, we’ll look at how you connect the Lemur to software compatible with the Open Sound Control (OSC) protocol. The Open Sound Control protocol specifies the transmission of messages between two devices. Rather than attach specific meanings to these messages, as is done with MIDI, Open Sound Control allows you to define your own system of messages.
• You cannot change anything in the Settings window unless you are connected to a Lemur. If you are not currently connected to a Lemur, click the Connect button and select the desired Lemur. • Click the Settings button. The window shown below will appear. The Local IP presents a menu of current IP addresses your computer is using. For example, if you have both a wireless and a wired network connection, you’ll typically see two different IP addresses in this menu.
The Local IP you chose is the desired Target IP you want to use. To use it, just click the My IP button, which copies the current Local IP into the Target IP field. Assuming you want the Lemur to send data to your computer and not some other device on the network, you’ll want to click the My IP button. It’s typical that Local IP will not match the Target IP value when the Settings window first appears. Next, we want to set the port on which the Lemur will transmit OSC data.
We’ve included a Max patch in the Lemur Extras folder on the Lemur CD called SeeingMessages. This patch serves several purposes: first, it will let you verify that your Lemur is properly talking to your computer using OSC. Secondly, it displays the names of the objects and variables you touch on your interface, which lets you identify which objects are sending data, and which ones may not be configured properly. Third, it demonstrates one way to write a Max patch to receive data from your Lemur.
• From within Max/MSP, open the file called SeeingMessages.mxb in the Lemur Extras folder. The patch is displayed (in reduced form) below. Network packets are received by the udpreceive object at the top of the patch. The udpreceive object understands the Open Sound Control protocol so it can handle messages coming from the Lemur. It outputs a Max message consisting of the Open Sound Control message name (the object plus variable name preceded by a slash) followed by the message values.
Understanding the Lemur’s Open Sound Control Messages Open Sound Control messages sent by the Lemur consist of a message name followed by one or more values. Message names begin with a forward slash. So, if you’ve set up an object on the Lemur to be named Fred, the Lemur will transmit a message starting with /Fred when you touch the object. Some Lemur objects use variable names to identify different aspects of objects that you are touching.
• The easiest thing you can do is hook up a route object to the outlet of udpreceive. The arguments to the route object will be the names of the different object name / variable combinations you want to receive from the Lemur. For example, suppose you had this interface on the Lemur with an Multiball and a Fader. You can get the values from the Fader’s x variable, plus the Multiball’s x, y, and z variables, with this patch: The route object strategy tends to be a bit awkward to maintain however.
Another technique is to use the forward object in conjunction with a little fancy footwork. This technique uses the forward object to send out OSC values to receive objects whose arguments match the OSC message selector. Here is the the equivalent patch to the route version shown previously that uses the forward object. The advantage of this technique is that if we now add a new object to our Lemur Interface, for instance, Paul the Pad (button), we can simply add a new receive object, Paul.
• Create a new patcher. • Press the Settings button on your Lemur to check its IP address. The IP address will be in red. Host name is ‘lemur’ My IP is 10.0.1.15 – Using DHCP Gateway is 10.01.1 Net Mask is 255.255.255.0 • Create a new udpsend object in your patcher with two arguments: the IP address of the Lemur and 8000 (the port the Lemur receives on). The example below corresponds to the IP address shown above, 10.0.1.15.
Lemur Object Reference The Lemur contains seven objects you can use to build interfaces. This section explains the features, options, and OSC message format of each of object. The object names appear in the picker window you see when clicking the Object button at the bottom of the JazzEditor window. Guide to Object Reference Pages Variables Lists the built-in variable names of the object and what they represent. All built-in variables range from 0-1 unless otherwise noted.
Fader The Fader tracks your finger with a vertical oriented virtual “knob” and transmits one value corresponding to the vertical position of the knob. Variables x The vertical location of the knob. When the knob is at the top of the fader, the value is 1 by default. When it is at the bottom, the value is 0.
Color Drag the color bar to change the background color of the fader. The knob remains a translucent green with pink outline. Properties Example This collection of General properties can be used to configure a fader that displays values in decibels, where 0 dB is considered the maximum.
The resulting Fader object looks like this. Behavior Properties Physic A menu that can be one of three settings: None, Interpolate, or Mass-Spring. If Physic is set to None, the Fader knob tracks one finger immediately. If other fingers touch the fader, they are ignored. If Physic is set to Interpolate, the knob moves according to the value of Attraction from its current location to the location of your finger.
Friction See Mass-Spring above. OSC Data Lemur->Host The x variable is transmitted from the Lemur followed by one value representing the knob’s position. /ObjectName.x Host->Lemur The x variable can be received by the Lemur followed by one value representing the knob’s position. /ObjectName.
Monitor The Monitor sends no data when you touch it. Its purpose is to display information sent to the Lemur by your computer. Variables value Represents the value of the Monitor to be displayed. Dimensions Minimum 50 pixels wide and 22 pixels high. The font size of the monitor is adjusted as the object is resized. General Properties Label If checked, the object’s name is displayed above the value. Value The checkbox is not functional.
OSC Data Lemur->Host The value variable is transmitted when the Monitor’s value changes. /ObjectName.
Multiball The Multiball object assigns each finger to track one of a number of balls (up to 10) in a rectangular space. Balls can either always be visible or only appear when you touch the space; the latter is called ephemeral mode. The brightness of the balls is sent as the z variable in the object. Variables x A list of the horizontal positions of all the balls. y A list of the vertical positions of all the balls. z A list of the brightness values of all the balls.
Color Drag the color bar to change the color of the outline around the Multiball’s rectangular space.
Friction ranges between 0 and 1. Lower values of friction mean that if a ball is moving it will tend to keep moving. With a value of 0, the balls will essentially never stop moving. At a value of 1, a ball will move only where you touch with your finger. Values of 1 for Attraction and Friction are essentially the same as if No Physic(s) was checked. Attraction See the discussion of Interpolation and Mass-Spring modes under Physic above. Friction See the discussion of Mass-Spring mode under Physic above.
from the touch surface before the completion of the Attack and/or Decay portion of the envelope, the Release portion of the envelope is triggered immediately after the Decay portion completes, and the brightness ultimately goes to 0. Release Applies only when using ephemeral mode. The Release value specifies the number of seconds over which the brightness of a ball will decrease from its Sustain level to 0, starting at the moment that you lift up (“release”) your finger from the touch surface.
MultiSlider The MultiSlider object tracks movement across an array of sliders. You can “wipe” all the faders to a set value with one horizontal gesture. This is pretty hard to do with real—or virtual—faders. Variables x A list of the vertical positions of all the individual sliders. Dimensions Default 100 x 100 pixels Minimum 64 pixels wide x 40 pixels high General Properties Label If checked, the object’s name is displayed above the sliders in the lower left-hand corner.
surface releases the string, and its subsequent behavior is determined by the Tension, Friction, and Height values. Tension A value between 0 and 1 corresponding to the tension on a string. As tension increases, the frequency of oscillation of the string increases. Increasing the tension is something like turning the tuning peg of a guitar to raise the pitch of a string. Friction A value between 0 and 1 corresponding to the damping on a string.
Pads The Pads object is a two-dimensional array of buttons that are triggered by touch. They are intended to trigger events instead of represent state, since they eventually return to an “off” value after you touch them. Variables x A list of the envelope (brightness) values of the pads in the object.
Rows The number of rows of pads contained in the object. There does not appear to be a maximum number of rows, but only 19 rows of pads can be seen on the screen at once. The minimum height of a pad is 32 pixels, and the object will be resized if necessary to maintain the minimum pad height. Columns The number of columns of pads contained in the object. There does not appear to be a maximum number of columns, but only 25 columns of pads can be seen on the screen at once.
the pad. The Sustain level is reached after the Attack and Decay portion of the envelope have completed. If your finger lifts up from the touch surface before the completion of the Attack and/or Decay portion of the envelope, the Release portion of the envelope is triggered immediately after the Decay portion completes, and the brightness ultimately goes to 0.
RingArea The RingArea tracks your finger inside a circular space. It reports the X and Y coordinates of a ball that can be programmed to have a variable degree of attraction toward a central point. You can specify the location of the attraction point within the circular space. Variables x The horizontal position of the ball. y The vertical position of the ball.
Friction A value from 0-1 representing the stickiness of the movement to either your finger or the attraction point. Lower values of friction make the ball overshoot the attraction point when it approaches, causing bouncing and/or oscillation. Attractor X A value from 0-1 representing the horizontal location of the attraction point within the object’s rectangle. A zero value of Attractor X is at the left edge and a value of 1 is at the right edge.
SignalScope The SignalScope displays values of other objects and variables on your Lemur. The “trace” shows a recent history of the value of what you are monitoring. Variables None Dimensions Default 100 x 100 pixels Minimum 32 x 32 pixels General Properties Label If checked, the object’s name is displayed in the scope area. Mode XY If checked, the signal scope shows both an X and Y value plotted against each other.
Y= A variable or constant expression that will be periodically evaluated and plotted against X. For example, to plot the x variable of a Fader object called chan1, enter chan1.x in the text field. Time base = Corresponds to the length of time (in seconds) displayed on the scope. As the Time base increases, individual elements of the graph will decrease in width as more of the “past” is shown. Here is a SignalScope showing a tenth of a second of history. It is set to time base of 0.
Switches The Switches object is a two-dimensional array of toggle switches) whose values are reversed when you touch them. Switches can be used to represent and transmit one or more on-off states. Variables x A list of the on-off values of the switches in the object. The list starts with the top-left corner, and traverses the first row before starting at the beginning of the second row (see diagram under OSC Data).
rows of pads can be seen on the screen at once. The minimum height of a pad is 32 pixels, and the object will be resized if necessary to maintain the minimum pad height. Columns The number of columns of switches contained in the object. There does not appear to be a maximum number of columns, but only 25 columns of pads can be seen on the screen at once. The minimum width of a pad is 32 pixels, and the object will be resized if necessary to maintain the minimum pad height. Behavior Properties None.
Variables and Expressions This chapter includes a preliminary discussion of the powerful expression language lurking inside the Lemur.
The interface should look like this: • If you have not done so, Connect to your Lemur and test it out. As you change the Faders, the physical modelling properties of the two Areas change. Let’s examine how this Project works. • Click on the Andy object in the JazzEditor to select it. Click the Behavior tab in the Properties view.
is capable of similar feats, so transforming control values into appropriate ranges no longer requires a host computer. • In the JazzEditor, open the Lemur Project file called WhooshVars.xml in your Lemur Extras folder. This project consists only of a fader and a single Pad trigger.
• In Max/MSP, close any patches you may have open, and then open this project’s companion, a patch called Whoosh.mxb found in your Lemur Extras folder. • Turn on the audio. Touch the Pad object on the Lemur. You should hear a filter sweep the noise from 0 to 1000 Hz. The fader will change the amount of resonance. Notice that in the patch above, there is no scaling of the input OSC messages from the Lemur to transform the message coming from either the pad or the fader.
• Click the disclosure triangle on the Default interface in the JazzEditor Project Browser to see the objects in the patch. Then click on the disclosure triangles of each of the two objects resfader and trig to see what’s lurking inside of them. You may want to expand the width of the Project Browser to see everything. We’ve added a variable called rezzo to the resfader object. Rezzo has a checkbox next to it, indicating that we transmit this variable to the computer when it changes.
When the fader is moved, the OSC message /resfader.rezzo is transmitted by the Lemur. In the Max patch, a route object captures this value and uses it to adjust the filter resonance. The resonance parameter of the lores~ object actually goes from 0 to 1. But the interesting range is between 0.8 and 1. Actually 1 is a little too interesting: the filter goes into selfoscillation. So, the effect of rezzo is to restrict the the resonance range between 0.79 and 0.97, and add some non-linear curvature.
• Click the Object button, choose MultiSlider from the list of objects, name the object Env, and click OK. • Click the Behavior tab in the Properties view for the MultiSlider, and set the number of sliders to 4. Move and resize the MultiSlider so you can control each slider easily. Maybe something like this or a little bigger? We’re going to use the first slider for Attack, the second for Decay, the third for Sustain, and the fourth for Release.
Create similar Expressions for Del (delay), which will use Env.x[1] * 5.0, Sus (sustain), which will use Env.x[2], and Rel (release), which will use Env.x[3] * 5.0. Note that we do not scale the value for Sustain, since this is just a value between 0 and 1. We will later scale the envelope’s amplitude” with the cutto variable. When you’re done, your trig object should look like this: • The final step is to enter these variable names in the Behavior Properties of the trig object. Enter trig.
Using Variables and Expressions to Display Data In this example, we’ll show how a Lemur object can receive OSC messages from the computer and display values. We’re going to use the Lemur as a remote monitor on a process happening on our computer. • Open the Max patch entitled AnnoyingProcess.mxb. The patch is shown below. • Click the toggle at the top left corner. You should hear a rapid repeating chromatic scale from your computer’s built-in MIDI synth.
• Open the Lemur Project file ProcessMonitor.xml. The interface is shown below. The Lemur project has a tiny Pad object, a Monitor, and a SignalScope. Let’s examine the Project Browser view of what’s going on. Open up the Default interface and the object called mini, which is the Pad in the upper-left-hand corner of the screen. Notice that we’ve created a new variable inside the mini object called counter. It multiplies the x variable of the mini object by 100.
• Next, click on the SignalScope object called trace. Click on the Behavior tab to see its Behavior Properties. For the Y component of the scope, we are plotting the standard x variable of the mini object, which ranges from 0 to 1, since there is no need to scale the value. Now let’s take a look at how the Max patch sends data to the Lemur, and see if we can get the Lemur to do some status monitoring. At the top of the patch, there is a text entry field for entering the IP address of your Lemur.
Advanced Expression Features There are two types of expressions supported by the Lemur: Variables and Functions. In previous chapters we defined variable expressions that belonged to Lemur objects. In this chapter we introduce the concept of global variables as well as global user-defined functions. These expressions can be accessed from any Lemur object.
To create a local variable, first select the name of the object that will contain the variable, then click the Expression button. Local variables are referenced using the name of the object, then a dot, then the variable name. For instance, if we wanted to display the value of the Env object’s Louie variable in a Monitor object, we would enter the following for the Monitor’s value property: You can also create global variables, which are not tied to specific objects.
• In the upper text field of the Expression window, type the name of the function and its arguments in parentheses. For example, to define a function named cubed that takes one argument, you would type: • Press the return / enter key to move to the lower text field in the Expression window. • On the lower line, type in the definition of your function as an expression. You can reference other variables if desired.
Let’s look at some of the operations you can perform on vectors. Assume we have a Multislider object called moo and a Multiball object called bar. Below we have listed some expressions involving vectors and the results they would produce. Assume moo.x contains {0.2 0.3 0.6} and bar.x contains {0.25 0.5} moo.x * 3 Multiply all elements of moo.x by 3, returns {0.6 0.9 1.8} moo.x + 2 Add 2 to all elements of moo.x, returns {2.2 2.3 2.6} moo.x>0.
By multiplying time by a value greater than 1, you produce a sequence of values that increase faster than clock time. By multiplying time by a value less than 1, you will produce a sequence of values that increase more slowly than clock time. You can use the modulo operator (%) creates a repeating sequence of values that resembles a sawtooth wave. For example time % 1 produces a ramp from 0 to 999 that occurs over the course of a second. Here are some example expressions created using the time variable.
LFO Example Here is an expression using the time variable that generates an LFO. LFO = sin(time * 2) *0.5 + 0.5 You can display this in a SignalScope. You can assign time-based variables to properties in Lemur objects (such as Friction or the ADSR envelopes) to create objects that change over time. However, you can’t assign the values of objects (other than the Monitor and SignalScope), so you can’t use the time variable to “animate” the purple ball in an Area.
Using the Lemur with MIDI Applications The Lemur does not send MIDI messages directly; however, you can still use it with MIDI-compatible software applications. In this chapter, we’ll show you how to use the JazzEditor to map OSC messages transmitted by the Lemur to MIDI messages (including notes, control and program changes, and other data) that can be sent to other MIDI-compatible applications running on your computer.
JazzEditor MIDI Settings There are two MIDI-related settings in the JazzEditor settings window. Click the Settings icon to see them. The menu labelled MIDI Out shows all of the available MIDI sources on your computer as well as the JazzEditor Output. We recommend using the JazzEditor Output since the JazzEditor will not retain the name of an application’s input the next time you launch if that application is not running when you launch the JazzEditor.
• An Edit MIDI assignment window will appear. Change the settings of the dialog to those shown below (Name is Level01, Message is Control Change, control number is 7, and value is Fader.x). The AutoScale under value should be checked, as should the Send checkbox at the bottom. These settings configure the Fader to transmit MIDI controller 7 (volume) with the fader’s 0-1 floating-point values mapped to 0-127.
Multiple MIDI Controllers In the next example, we’ll use a MultiSlider object and automatically assign different control change messages for each slider. • Create a MultiSlider object. Using the Behavior Properties tab, set the number of sliders to 16. • Click the MIDI icon at the bottom of the JazzEditor window to create a new MIDI assignment. It should appear the same as the example shown below. The only changes from the last MIDI assignment we created is that the Lemur value comes from MultiSlider.
• Click the MIDI Map icon to open the MIDI Map window. Since the MultiSlider has sixteen values instead of just one, the JazzEditor automatically assigns each slider to successive MIDI controller values. The same thing happens for other multi-value Lemur objects (such as Multiball). Mapping MIDI Note Messages The following example uses the same automatic mapping feature to create a chromatic one-octave MIDI “pad” on your Lemur that will send MIDI note messages. • Create a Pads object.
• Create a new MIDI assignment. Choose Note On as the MIDI message type, set the base pitch to 60, and assign the velocity to Pads.x. Your MIDI assignment should resemble the one shown below. • Click OK to save this MIDI assignment. • Click the MIDI Map icon to look at the MIDI Mapping window. Now successive notes are assigned to buttons of the Pads object, from left to right. The first four are shown below. You can use more than 12 pads to create a bigger keyboard if you wish.
Updating the Firmware of Your Lemur JazzMutant releases updates periodically for the Lemur software to fix bugs and add enhancements. Follow the steps below to download and install updates. Downloading New Firmware • Fire up your web browser and visit www.jazzmutant.com. • Click on the Support button, then click on Downloads at the top of the page Here is an example of a current page showing the downloads available: • The Lemur software is called Lemur.bin.
currently residing in your Lemur’s firmware. Click the Settings button on your Lemur. The firmware version is displayed at the top of the Window. If the current version on the web site is the same as the version in your Lemur, you don’t need to update. If it is older, click the Lemur.bin link to download it. • (Windows Only) If you are using Internet Explorer and you see the Open or Save dialog for downloading a file, choose Save.
• Navigate to your browser’s download folder, and choose the Lemur.bin file. The JazzEditor knows about this special type of file that contains the Lemur firmware. • The following window will appear, indicating progress in uploading the firmware to the Lemur. • After the firmware has uploaded, the Lemur will start writing the firmware to its internal memory. This will take a minute or two, and then the Lemur will restart. During this time, the Lemur will become disconnected from the JazzEditor.
Index AutoScale .......................................... 94 Behavior Properties............................ 53 Fader object ................................... 56 Monitor object ............................... 58 Multiball object.............................. 61 MultiSlider object .......................... 64 Pads object..................................... 67 SignalScope object......................... 71 Switches object .............................. 74 Built-in Functions and Operators........
Limit MIDI Bitrate............................. 93 local area network.............................. 22 local variables .................................... 86 Mac OS X configuration, direct ....................... 17 configuration, manual IP address.... 18 JazzEditor software installation...... 24 software updates........................... 100 maintenance....................................... 10 Max/MSP connecting the Lemur..................... 46 forward object................................
Using Variables and Expressions to display data .................................... 83 Variables ............................................ 53 displaying data ............................... 83 Fader object ................................... 54 Monitor object ............................... 58 Multiball object.............................. 60 MultiSlider object .......................... 64 Pads object..................................... 66 RingArea object .............................