Conner_Bw
(Conner_Bw)
July 24, 2010, 10:46am
1
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);
?>
taktik
(taktik)
July 24, 2010, 11:26am
2
Works fine here. But
/renoise/transport/start"
/renoise/transport/stop"
will reset the playback position to 0 again?
Conner_Bw
(Conner_Bw)
July 24, 2010, 11:44am
3
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);
}
?>
Put the renoise cursor in pattern 1, line 1, col 1.
Run the script
Expected: BPM change, pos change.
Actual: BPM change, pos stays.
samBiotic
(samBiotic)
July 24, 2010, 12:59pm
4
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
taktik
(taktik)
July 24, 2010, 1:59pm
5
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.
taktik
(taktik)
July 28, 2010, 3:02pm
8
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…