On 10/05/21 16:42, John Murphy wrote:
I'm convinced Jack transport, using
'carla-bridge-native' and
controlled by jack_transport CLI tool, is the easiest way to go.
I'll use Qprocesses initially and work on using the API later.
QJackCtl sources led me to jack_transport_query and QtCreator
makes it easy to follow the code, so I hope to use that for
transport time display.
I did get ecasound to play Ok just once. Then tried the same line
with a '-c' and got over a thousand Xruns before I could hit ^c.
Tried the line which worked, again, and got similar results to the
try with '-c'.
Python just doesn't work for me. It used to, but it seems a
bit of a mess these days, for users at my level, while the
two versions are in situ. Thanks for the suggestion though.
Qt Creator is probably the most helpful software I've ever used,
in any field, and I've been using for a long time...
If you are going to write some code for it, maybe best to control the
whole thing with the JACK API.
Or maybe even better, calling into carla API.
I did a quick test for this just now, this snippet is all you need.
```
#include "CarlaHost.h"
#include <unistd.h>
#ifdef __cplusplus
using namespace CarlaBackend;
#endif
int main()
{
CarlaHostHandle host = carla_standalone_host_init();
carla_engine_init(host, "JACK", "AudioPlayback");
carla_add_plugin(host, BINARY_NATIVE, PLUGIN_INTERNAL, NULL,
"nyan", "audiofile", 0, NULL, PLUGIN_OPTIONS_NULL);
carla_set_custom_data(host, 0, CUSTOM_DATA_TYPE_STRING, "file",
"./nyan.wav");
for (;;) { carla_engine_idle(host); sleep(1); }
carla_engine_close(host);
}
```
Build with:
$ gcc playaudio.c $(pkg-config --cflags --libs carla-standalone) -o
playaudio
API Documentation at
https://kx.studio/ns/dev-docs/CarlaBackend/group__CarlaHostAPI.html