JNIEXPORT jint JNICALL Java_org_puredata_core_PdBase_sendFloat (JNIEnv *env, jclass cls, jstring jrecv, jfloat x) { if (!jrecv) return -2; const char *crecv = (char *) (*env)->GetStringUTFChars(env, jrecv, NULL); pthread_mutex_lock(&mutex); int err = libpd_float(crecv, x); pthread_mutex_unlock(&mutex); (*env)->ReleaseStringUTFChars(env, jrecv, crecv); return err; }
int portAudio::initPortAudio() { //the *hook functions deal with receiving messages from Pd, see https://github.com/libpd/libpd/wiki/libpd libpd_set_printhook(pdprint); //libpd_set_noteonhook(pdnoteon); //libpd_set_floathook(pdfloat); libpd_init(); libpd_init_audio(2, 2, this->getSampleRate()); //one channel in, one channel out // compute audio [; pd dsp 1( libpd_start_message(1); // one entry in list libpd_add_float(1.0f); libpd_finish_message("pd", "dsp"); // open patch [; pd open file folder(, the handle is a void* handle = libpd_openfile("latido.pd","../../Source"); //pass a number to pd, myMessage is a pd receive libpd_float("myMessage", 10011); for (int i = 0; i < this->getBlockSize(); i++) { //intialize buffer, this is probably unnecessary theBuffer.outbuf[i] = 0; } /* Initialize portaudio library before making any other calls. */ err = Pa_Initialize(); if( err != paNoError ) this->sendError(err); /* Open an portaudio I/O stream. */ err = Pa_OpenDefaultStream( &stream, 1, /* input channels */ 2, /* output channels */ paFloat32, /* 32 bit floating point output */ portAudio::getSampleRate(), portAudio::getBlockSize(), /* frames per buffer */ portAudio::paCallback, &theBuffer ); if( err != paNoError ) this->sendError(err); err = Pa_StartStream( stream ); if( err != paNoError ) this->sendError(err); return err; }
void PdBase::sendFloat(const std::string& dest, float value) { libpd_float(dest.c_str(), value); }
void portAudio::delayOn(bool on) { float delay = (float)on; libpd_float("delayOn", delay); }
void portAudio::updateVolume(double v) { libpd_float("volume", v); }