[Fixed 2.6 Beta] Osc Evaluate Problem (Sending Evaluate Twice)

Gave an example, tested it myself… didn’t work as expected.

Please use the OSC.php class found in this post..

If i send 2 evaluate messages in a row, Renoise ignores the second one. However, if I comment out the first evaluate(), the second works fine.

  
<?php <br />  
// OSC Class  
require 'OSC.php';  
  
// ----------------------------------------------------------------------------  
// Procedure  
// ----------------------------------------------------------------------------  
  
$c = new OSCClient();  
$c->set_destination("127.0.0.1", 8000);  
  
$m = new OSCMessage("/renoise/evaluate", array(  
 'renoise.song().transport.bpm = 500'  
 ));  
$c->send($m);  
  
// The next command is ignored  
  
$m = new OSCMessage("/renoise/evaluate", array('  
 local my_pos = renoise.SongPos()  
 my_pos.sequence = 1  
 my_pos.line = 16  
 renoise.song().transport.playback_pos = my_pos  
'));  
$c->send($m);  
  
sleep(5);  
  
$m = new OSCMessage("/renoise/transport/start");  
$c->send($m);  
  
sleep(5);  
  
$m = new OSCMessage("/renoise/transport/stop");  
$c->send($m);  
  
?>  
  

Works fine here. But
/renoise/transport/start"
/renoise/transport/stop"

will reset the playback position to 0 again?

Doesn’t work for me. New test code:

  
<?php <br />  
// OSC Class  
require 'OSC.php';  
  
// ----------------------------------------------------------------------------  
// Procedure  
// ----------------------------------------------------------------------------  
  
$c = new OSCClient();  
$c->set_destination("127.0.0.1", 8000);  
  
  
for ($i = 1; $i < 32; ++$i) {  
  
 $m = new OSCMessage("/renoise/evaluate", array(  
 'renoise.song().transport.bpm = ' . (80 + $i)  
 ));  
 $c->send($m);  
  
 $m = new OSCMessage("/renoise/evaluate", array('  
 local my_pos = renoise.SongPos()  
 my_pos.sequence = 1  
 my_pos.line = ' . $i . '  
 renoise.song().transport.playback_pos = my_pos  
 '));  
 $c->send($m);  
  
 sleep(1);  
}  
  
?>  
  
  1. Put the renoise cursor in pattern 1, line 1, col 1.
  2. Run the script

Expected: BPM change, pos change.
Actual: BPM change, pos stays.

I can confirm this.
Adding 20ms between evaulate messages in MaxMSP and they both get through.

Can the messages be bundled and transmitted as one?

Is there a computational delay on evaluate?
Running on a samsung nc10 so not alot of cpu here.
taktik may be on a supercomputer ;)

[edit]seems to be only if a different evaluate message is sent as the second. send the same one twice and they both get through

Nops.

Second example also works here, but I’ve only tested this on Windows so far.

Conner_bw, is it possible the issue is a little/big endian issue?

I’ve seen so much talk in the past about OSC and little/big endian issues.
I may be running into these also, as many examples just get rejected, somewhere I think little-endian is the culprit with this.

  • a small bumping reminder for me to avoid forgetting this *

Will be fixed for 2.6 B3. Happened indeed easily on OSX, could also happen on Windows and Linux but less likely. Thanks for reporting.

samBiotic: I think this also explains and fixes the general “lag” that you reported before…