Exemplo n.º 1
0
static void updateDevice(struct nodeInstanceData *context, VuoMidiDevice newDevice)
{
	VuoMidiDevice_release(context->device);
	context->device = newDevice;
	VuoMidiDevice_retain(context->device);

	VuoRelease(context->midiManager);
	context->midiManager = VuoMidiIn_make(newDevice);
	VuoRetain(context->midiManager);
}
Exemplo n.º 2
0
static void resetController(VuoMidiOut outputManager, char cc, VuoRealRegulation controller)
{
	VuoMidiOut_sendController(outputManager, VuoMidiController_make(1, cc, (controller.defaultValue-controller.minimumValue)/(controller.maximumValue-controller.minimumValue) * 127.));
}

struct nodeInstanceData *nodeInstanceInit(
		VuoInputData(VuoRealRegulation) footSwitch,
		VuoInputData(VuoRealRegulation) footController
)
{
	struct nodeInstanceData *context = (struct nodeInstanceData *)calloc(1,sizeof(struct nodeInstanceData));
	VuoRegister(context, free);

	context->inputDevice = VuoMidiInputDevice_make(-1, VuoText_make("BCF2000"));
	VuoMidiInputDevice_retain(context->inputDevice);
	context->inputManager = VuoMidiIn_make(context->inputDevice);
	VuoRetain(context->inputManager);

	context->outputDevice = VuoMidiOutputDevice_make(-1, VuoText_make("BCF2000"));
	VuoMidiOutputDevice_retain(context->outputDevice);
	context->outputManager = VuoMidiOut_make(context->outputDevice);
	VuoRetain(context->outputManager);

	VuoRealRegulation controllers[2] = {footSwitch, footController};
	for (int i = 0; i < 2; ++i)
	{
		context->controllerSmooth[i] = VuoSmoothInertia_make(controllers[i].defaultValue);
		VuoRetain(context->controllerSmooth[i]);
		// Output the initial position during the first time event.
		context->controllerSmooth[i]->updateNeededAfterSetPosition = true;