kyma•tweaky . Learn . LemurOnIPad

Thread copied from the Kyma Forum:

From DouglasDiFranco - 13 December 2011

Here's how I got it going on OSX using wifi, it's really simple:

  1. First I launched the Lemur Daemon
  2. Then Kyma.
  3. In Lemur on the iPad set the IP address to the Pacarana IP (found under the Help menu on the front of the Paca).
  4. Open up Basic Faders on the iPad.
  5. Move a fader.
  6. Right click on a VCS fader and choose controller. You should have a OSC pulldown with the fader parameters available to select.

You now have OSC control! Any Lemur control that you touch will show up in Kyma with it's mapped name.


Additional notes from Doug:


PhilCurtis - 13 December 2011

launched the Lemur Daemon (which I hadn't been doing before), and I added Pacarana midi in and outs (click the add button, find Pacarana in the menu, connect). But then in the VCS, I still didn't find "OSC" as an option under controllers. But I clicked "learn" and moved the fader on the iPad, and the VCS fader responded. I guess I'm communicating via Midi over OSC instead of OSC directly?

From DouglasDiFranco - 13 December 2011

Phil - Yes you're sending midi but not osc. Did you type in the ip address of the Pacarana under "OSC Targets" in the iPad Lemur config tab? I've got 192.168.1.109 for the Host # and 8000 as a Port setting. Yours will be a different address of course.

Phi Curtis Member posted 14 December 2011 00:46 quote: Originally posted by douglasdifranco: Did you type in the ip address of the Pacarana under "OSC Targets" in the iPad Lemur config tab? Yep, I entered the IP address in the Lemur configuration.

When you are right clicking on the faders in the VCS, do you always see OSC as an option in the menu, or only when you are connected to the Lemur app? I find it odd that I don't even see it in the menu.

SSC Administrator posted 14 December 2011 10:42 The VCS pop up menu shows the OSC entry only if the Paca(rana) has received some OSC messages since it has been turned on.

Phi Curtis Member posted 14 December 2011 22:54

Thanks, good thing to know. Now to figure out why its not getting the messages...

Douglas, did you send a "respond_to" message from the Lemur app to the Pacarana in order to get the Pacarana into a state to receive messages? I remember having to do this before with other OSC situations, and on the tweaky SSC suggests using this script attached to a button:

oscout(0,'/osc/respond_to',{8000});

It seems like this might be required, but you don't mention it. I had tried it before, but still wasn't able get a connection - not sure what I was doing wrong, but I wasn't running the Lemur Daemon then.

--

DouglasKraul

The "respond_to" command is necessary if you want to establish bidirectional control with the Paca(rana). This must be sent at least once per power up of the Paca(rana), or if your iPad's IP address should change. Basically this command informs the Paca(rana) where it should send updates when VCS controls mapped to your OSC messages change. Note though that the Paca(rana) also must have received the OSC message for each control at least once before it will know to send changes for that control back. If you are using Delora Software's KymaConnect? this sequence is also necessary.

To be a "good citizen" you should also send "oscout(0,'/osc/respond_to',{0})" before you exit your template. This "breaks" the connection between the Paca(rana), (or KymaConnect?) so that it will no longer send unnecessary updates to a device that is no longer listening. If you do not do this The Paca(rana) will continue to try to send those updates until the iPad is no longer on the network.

One way to do both of these more or less automatically is to create a Lemur script and assign it to the "Frame" event (this happens 60 times a second). For example:

if (!ConnectButton.x) { if (!SignOffSent) { oscout(0,'/osc/respond_to',{0}); SignOffSent? = 1; Tick = 0; } }

else if (0 >= Tick--) { oscout(0,'/osc/respond_to',{8000}); SignOffSent? = 0; Tick = 60; }

where ConnectButton? is a on/off button on the template; SignOffSend? and Tick are global Lemur variables. This script will send the "sign on" message once per second as long as the connect button is on. Once the connect button is pressed off the "sign off" message is sent once.

Why send the "sign on" message multiple times? It keeps the connection established even if the Paca(rana) were to reset or you started your Lemur app before the Paca(rana) was connected to the network. You can also use this as the basis for monitoring the connection since the Paca(rana) sends a response each time it receives the message.

The LemurDaemon? (formerly LemurDaemon?) is only necessary if you wish to use the Lemur's Network-based MIDI facility. Actually you now have three choices for sending MIDI from the Lemur. The first is through the daemon application, which is how the hardware Lemur works. The second is through CoreMidi? USB on the iPad, provided the iPad is connected to a compatible MIDI device. The third way is through iOS's built-in network MIDI. This last feature works with OSX "out of the box" and is now used by a number of iOS apps. Windows users can install a free third party driver to gain access to the same MIDI information. The LemurDaemon? works well and provides a nice routing feature so you can send to physical MIDI devices connected to your computer but it is not compatible with other devices that use the iOS/OSX network MIDI standard.

Note that you do not need any of this MIDI support to work with Pacarana OSC. Its only necessary if you wish to send MIDI. However to send MIDI to your Paca(rana) from the Lemur you will also need either a physical MIDI connection between your computer and Paca(rana), or use Delora Software's KymaConnect?.

One "trick" that I have not found documented anywhere in the Lemur manual is that you can type a network device name into the host IP field instead of a physical IP address. This has the advantage that the Lemur app will still find the host even if its IP address changes (at least I believe it does). This can be very important when connecting directly to the Paca(rana) since its IP address is dynamic and can potentially change each time it is powered up.

To connect directly to the Paca(rana) use an address like "beslime-XXX.local" where XXX is unique to your Paca(rana). So, for example, Pacarana 001 would have the address "beslime-001.local". Likewise if you wish to connect to your Mac and the Mac's network name is "my_mac" you would use "my_mac.local".

If you are connecting through KymaConnect? (or still using PacaConnect?) you would use the network name of the Mac where you are running KymaConnect?. Once detail with KymaConnect? is that you need to have its "Force Port to 8000" setting on.

As others have mentioned the ability to automatically create a layout and assign "widgets" to the Kyma VCS is right now a unique feature of Kyma Control. However there is another way to approach this with the Lemur that will give you most of the advantages of Kyma Control's auto-layout features while still affording you a means to create a customized controller.

We (Harmony Systems, Inc) introduced our vM2 product over two years ago. vM2 afforded Lemur owners a way to control the Kyma VCS in a way that was compatible with Kyma's then only built-in VCS controller support, the MotorMix?. vM2 consists of a template for the Lemur and a small OSX application that provided the necessary translations between Lemur OSC-style commands and what Kyma expected. The result is a fully bidirectional Kyma control surface that works out-of-the-box with every Kyma sound.

vM2 works with the new iPad Lemur app (we've already sent optimized templates to our users). Where things might get a bit interesting for those of you who like to make your own controllers is that you can integrate the vM2 template inside of a larger Lemur template, either as its own page, or as part of a page. Having done that the controls associated with vM2 will be automatically assigned to VCS controls no matter what sound you load. Up to 32 switches (and their LED status) are assigned to the first 32 switches in the VCS. Rotaries and vertical VCS faders are assigned in groups of 8 to vM2's rotaries and faders. There is even an LCD that shows parameter names and values.

This is not as elegant as Kyma Control's scalable, fully automated, layout but you cannot use that along side your own creations without having two iPads! Also in some situations it is an advantage to have controls laid out in the same manner and with the same size regardless of what Kyma sound you have loaded.

Details about vM2 can be found here: http://www.delora.com/delora_products/vm2/vm2.html.

Doug

Douglas Kraul

Harmony Systems, Inc., makers of Delora Software's vM2


More Q & A with DouglasKraul --16 December 2011 16:18

Anyone knows if the ipad/lemur will work any good with a capy320 on Win7?

I would expect it would but you would be using it in MIDI mode as the capy does not "speak" OSC without additional software.

The only thing that bothers me a little is that it relies on wifi... I guess this is a non-issue, but I have been experiencing loss of data through wifi when using TouchOSC on an iPod Touch on a private network, not used for anything but OSC. Are there no such issues at all with the iPad?

WI-Fi data integrity can be an issue when the Wi-Fi environment is poor (even adhoc "computer-to-computer" setups can suffer from interference if a nearby network is on the same channel). However in our own development and testing what we have observed is that there is a far larger problem with data loss caused by either the app itself or in some cases iOS. Stated differently we have documented data loss when the Wi-Fi integrity was actually quite good. Of course data loss is data loss no matter how it happens.

Some things to look out for:

  1. Make sure Bluetooth is turned off on the iDevice.

  1. Don't try to send too much data in too short a time to the iDevice. With OSC this ends up being mainly the number of OSC transactions not the payload of each transaction. If you can its better to send multiple values per OSC message. For example send 8 values from a multifader instead of 8 different messages from eight individual faders.

  1. Be wary of having background apps running on the iDevice, particularly those involved with audio or MIDI (like many of the latest synths and sequencer bits).

These are just precautions. Sending from the iDevice is quite reliable in our experience, provided the receiving device or software handles OSC data well. My own experiences with the Pacarana give it high marks.

When you are designing OSC based controllers keep in mind that data loss is a reality; its the nature of OSC's UDP underpinnings. Design around this. For example if a button controls a state send the change but do not show the state change until you receive a confirmation message back. That way if the message is dropped the user will at least know to push the button again.

I believe that with care, and knowing the software on either end of the OSC pipe, you can create OSC controllers that provide satisfactory performance.

How customizable is vM2? I didn't realize that it can be embedded within other Lemur patches - can you pick and choose which vM2 faders and toggles you want to use, and delete the others for a page? Can you resize the controls, or perhaps add additional functionalities through scripts? Not that I have anything in particularly complex in mind right now - just wondering if I might be able to adapt it to future requirements and still retain the handy automatic mapping that you've built in to the controls.

At some point the degree of customization is limited by the underlying "model" that Kyma expects (for the Motor Mix). Kyma expects to find 8 bankable faders, 8 bankable endless rotaries, 32 momentary switches, and 32 switch "LEDs". There are a number of other switches and "LEDs" that Kyma uses for administration and things like banking. So while its possible to use less faders you would do so knowing that Kyma has no way of knowing that limitation and would continue sending vM2 all eight. vM2 in turn would send those on as OSC messages. What the Lemur does with them is another matter.

Physical control size, arrangement is pretty much up to you, as long as you understand the ramifications. Remember the original MotorMix?, which is what Kyma "expects" had a specific layout of eight "channel strips". Our vM2 Kyma Lemur template does a small degree of variation from this layout but it mainly removes unnecessary elements and provides more meaningful names. OTOH our vKiP iPad app, also based on the same MotorMix? model, has a bit more deviation, and our vKi iOS app even goes as far as creating the illusion of four bankable faders and "rotaries".

The templates are "open" so you can pretty much see what's going on underneath and what the OSC language is that is used to communicate with vM2. I would suspect that most users will only wish to embed vM2 as a page within a larger template. In a way this makes sense because the disadvantage of something like vKiP or KymaControl is that when you need to control the VCS you have to use that app and they are not customizable. With vM2 "embedded" in another template you have free rain to add whatever you wish on other pages. Furthermore the Lemur's OSC "address space" is global to the current template so messages for vM2 that arrive while it is "off screen" are still handled. So you're a tab press away at any time from a "universal" VCS control surface that works out of the box with any Kyma sound.

The other area I see most users customizing would be to "squeeze" down vM2 to fit additional controls, or even to remove unnecessary vM2 controls to add other items. For example if your Kyma sounds you wish to control never use more than 16 switches then you need not have switches/leds 17-32. Don't care about controlling the Kyma DSP remotely? Remove those buttons.

I wasn't able to get it to work by entering the Pacarana's IP Address in the Lemur app preferences. I finally got it to work by entering my computer's local network (as found in System Preferences > Sharing. In my case it is "Phil-Curtis_Computer.local") as OSC target "OSC 0." I then put this script in Lemur that is sent each frame: oscout(0,'/osc/respond_to',{8000});

I think using your computer's name only works because you are running KymaConnect?. Furthermore I believe your set up is working with port 8000 only because you have set up KymaConnect?'s "PacaProxy" to "force port to 8000". The reason I believe this is that the Lemur app can use DNS to find a target by name. If it was the Pacarana its name would be of the form "beslime-XXX.local", where XXX is the Paca's unique ID number.

Using the Lemur App with KymaConnect? in this fashion is indeed the "right" way to do it because as you point out the Lemur can still locate the Pacarana (through KymaConnect?) even after the Pacarana is restarted. However if you were not using KymaConnect? you could accomplish the same by using the "beslime-XXX.local" destination.


LuisAly --13 January 2012 20:19

I have tried lemur/ipad and I was for 3 hours messing around just to put it work. But I did it! So to help I will resume my procedures so anyone wants to try this setup:

  1. -Adhoc WiFi? network between computer and ipad
  2. -Run PacaConnect? with "Force8000" and "Enable PacaProxy?"
  3. -on LemuriPad? OSC0 Host: "computer name" / port 8000
  4. -Run Kyma any patch (that has faders...)
  5. -on Lemur load template "Basic Faders"
  6. -on Kyma right-click and "learn" or better "controller>OSC>Fader1x and son on"
  7. -bingo!!!

To load some templates from the computer to the ipad I could´t connect it but then I saw the video "Loading a Lemur template with iTunes" and it was much simpler. Another cool thing that I found is that I can change between lemuripad and Kyma control rapidly and the connection is ok. So Apple when multitasking apps???


DouglasKraul

So Apple when multitasking apps???

Multitasking has been in iOS since version 4. Its mainly a "fast app switching" type of approach but it is even possible to have apps active while in the background. This is now being use by iOS synth and sequencing apps that use iOS virtual MIDI to send between apps.

Unfortunately few controller apps adopt the available multitasking facility. iOS Lemur has this limitation. Which is too bad because Kyma Control already supports it, as does TouchOsc?.

Doug

----- Revision r1.1 - 12 Apr 2012 - 00:22 GMT - KurtHebel
Copyright © 1999-2014 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding kyma•tweaky? Send feedback.