diff --git a/include/FluidSCWrapper.hpp b/include/FluidSCWrapper.hpp index c5bbae0..878e327 100644 --- a/include/FluidSCWrapper.hpp +++ b/include/FluidSCWrapper.hpp @@ -112,17 +112,17 @@ public: case Result::Status::kWarning: { if (!w || w->mVerbosity > 0) - std::cout << "WARNING: " << r.message().c_str() << '\n'; + std::cout << "WARNING: " << getName() << " - " << r.message().c_str() << '\n'; break; } case Result::Status::kError: { - std::cout << "ERROR: " << r.message().c_str() << '\n'; + std::cout << "ERROR: " << getName() << " - " << r.message().c_str() << '\n'; break; } case Result::Status::kCancelled: { - std::cout << "Task cancelled\n" << '\n'; + std::cout << getName() << ": Task cancelled\n" << '\n'; break; } default: diff --git a/include/SCBufferAdaptor.hpp b/include/SCBufferAdaptor.hpp index 5c212b5..f3b2a24 100644 --- a/include/SCBufferAdaptor.hpp +++ b/include/SCBufferAdaptor.hpp @@ -182,7 +182,7 @@ public: if (allocResult != kSCErr_None) { r.set(Result::Status::kError); - r.addMessage("Resize on buffer ", bufnum(), " failed."); + r.addMessage("Resize on buffer ", bufnum(), " failed. (Requested ", frames, " frames, ", channels, "channels)"); } return r; } diff --git a/include/wrapper/NonRealtime.hpp b/include/wrapper/NonRealtime.hpp index 90b75a2..a4d8045 100644 --- a/include/wrapper/NonRealtime.hpp +++ b/include/wrapper/NonRealtime.hpp @@ -340,6 +340,7 @@ namespace impl { void* space = ft->fRTAlloc(world,sizeof(CommandAsyncComplete)); CommandAsyncComplete* cmd = new (space) CommandAsyncComplete(world, id,c->mReplyAddress); runAsyncCommand(world, cmd, c->mReplyAddress, c->mCompletionMsgSize, c->mCompletionMessage); + if(c->mCompletionMsgSize) ft->fRTFree(world,c->mCompletionMessage); }; auto tidyup = [](FifoMsg* msg) @@ -617,7 +618,10 @@ namespace impl { { if(!cmd->synchronous()) { - cmd->addCompletionMessage(completionMsgSize,completionMsgData); + + auto msgcopy = (char*)getInterfaceTable()->fRTAlloc(world,completionMsgSize); + memcpy(msgcopy, completionMsgData, completionMsgSize); + cmd->addCompletionMessage(completionMsgSize,msgcopy); return runAsyncCommand(world, cmd, replyAddr, 0, nullptr); } else return runAsyncCommand(world, cmd, replyAddr, completionMsgSize, completionMsgData); @@ -628,7 +632,9 @@ namespace impl { { if(!cmd->synchronous()) { - cmd->addCompletionMessage(completionMsgSize,completionMsgData); + auto msgcopy = (char*)getInterfaceTable()->fRTAlloc(world,completionMsgSize); + memcpy(msgcopy, completionMsgData, completionMsgSize); + cmd->addCompletionMessage(completionMsgSize,msgcopy); return runAsyncCommand(world, cmd, replyAddr, 0, nullptr); } else return runAsyncCommand(world, cmd, replyAddr, completionMsgSize, completionMsgData); diff --git a/release-packaging/HelpSource/Classes/FluidBufTransientSlice.schelp b/release-packaging/HelpSource/Classes/FluidBufTransientSlice.schelp index 7bbc53f..71926c3 100644 --- a/release-packaging/HelpSource/Classes/FluidBufTransientSlice.schelp +++ b/release-packaging/HelpSource/Classes/FluidBufTransientSlice.schelp @@ -109,7 +109,7 @@ c.query; }.play; ) -// with everything changed to make it much better, at the cost of computation time (only 10 seconds are processed here, again wait for the (longer) computation time to appear) +// with everything changed to make it much better, at the cost of computation time (only 5 seconds are processed here, again wait for the (longer) computation time to appear) ( Routine{ t = Main.elapsedTime; diff --git a/release-packaging/HelpSource/Classes/FluidGain.schelp b/release-packaging/HelpSource/Classes/FluidGain.schelp index 2783e26..0933940 100644 --- a/release-packaging/HelpSource/Classes/FluidGain.schelp +++ b/release-packaging/HelpSource/Classes/FluidGain.schelp @@ -32,7 +32,7 @@ Varying the gain at audio rate. CODE:: { FluidGain.ar(PinkNoise.ar(0.1), gain:LFTri.ar(1)) }.play :: -Varying the gain at comtrol rate, in beautiful stereo. +Varying the gain at control rate, in beautiful stereo. CODE:: { FluidGain.ar(SinOsc.ar([222,333],mul:0.1), gain:LFTri.kr([0.5,0.7])) }.play ::