-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow receiving messages on signal inlets, helpfile fix #43
Conversation
Can you please have a look at #44 and fix that along the way? Thanks. |
I don't quite get it. :( The only way I can actually pass a control message on the signal inlet seems to be explicitly as |
If I do this:
I can now still send the "abc" message to the first signal inlet. Does that not work for you? I'll look into the segfault as well! |
Yes, But, at least for me, with this PR float values don't work |
Scratch that, the data inlets are still alright. But for me the signal inlet doesn't accept any float values, it just ignores them. Is that by design? But the osc~ object does that just fine. |
I noticed this too, looking at the pure-data source code, it looks like the "fwd" message is implemented for everything except floats and pointers. Maybe we also need to add a float method and also hook that up to dispatch? |
Hmm yes, looking at the C code for vanilla's osc~, I see that there's some special magic going on there, via CLASS_MAINSIGNALIN(), which expands to class_domainsignalin(). The way it's done here, using dsp_addv(), I don't think that we can emulate that kind of behavior. |
Agreed. That makes perfect sense. |
Merged, thanks! |
Drats, this one has issues in Purr Data, too. There I'm only getting the symbol |
Yes, it looks like we missed pure-data/pure-data@2fa003d0 when backporting the "fwd" feature. I'll need to fix that on the Purr Data side. |
I saw this, looks like it's implemented? https://github.com/agraef/purr-data/blob/50241ace9d55df48574279f0216b51bb914796ad/pd/src/m_obj.c#L84 |
Not quite. Guillem used mess3() instead of typedmess() in inlet_fwd() which doesn't do the right thing there. This should be easy to fix, though, stay tuned. |
By implementing the "fwd" message, we can make sure that signal inlets can still receive messages. Pretty essential for signal objects, since you'll probably still want to be able to use methods on the first inlet. I checked the purr-data source code, and it looks like this should also work there.
Also fixed a bit of outdated API I found in the helpfile
This should really be everything, I would hope