Cabbage Logo
Back to Cabbage Site

CsoundUnity Package (UPM) development

Whenever I tried setting the package via git this didn’t happen, nor when recreating the project and cloning the package in the packages folder. Really strange! what OS are you on?

Windows. Strange.

I’m also stumped by the clicks. Your CsoundUnity.cs and CsoundUnityNode.cs are the exact same as mine?

You’re getting clicks too right?

[edit] dragging a file to CsoundUnity no longer works…should we just get rid of that method?

[edit] looks like Unity created my new project with an older version… just updating now to the latest Unity build…

So if I create a new scene and add CsoundUnity and CsoundUnityNode components it works fine without any clicks :thinking:

Hmm, and if I remove the components in your scene and recreate the same thing it works fine for me. But I’m not using empty game objects, I used two cubes…? That hardly has anything to do with it or?

There’s some evil presence around…
Yes I get clicks!
Dragging a file in the Drag File here should be working, but I tried and I had an argument exception. I’ll look into it later.
This morning I’m a bit busy, for sure I can look at it in the afternoon

No problem. It’s looking pretty good here. I really like how we can just bundle entire example folder with the package. :wink:

I’ll update the CsoundUnityNode test, but should we stick with Node, or use Child? I think Child might be more accessible for a name?

Yes child seems more appropriate, since from a node I’d deduce that some elaboration is done, and that I could connect several nodes. That is not the case, so child is better, since CsoundUnityNamedAudioChannelReceiver would be too long :grin:

1 Like

Hmmm, connecting node :thinking:

It’s probably best to put that feature on a roadmap for future versions :rofl:

Another thing that would be very cool would be adding effects on the CsoundUnity or on the Children, like the Audio Filters by Unity (tha can still be used!)
But using Csound opcodes we can surely extend these filters with huge ones

EDIT: and what about this:
https://docs.unity3d.com/Manual/Playables.html
https://docs.unity3d.com/Manual/Playables-Graph.html

Never used it, but we should consider integrating with this somehow

I just did some tests, it works just after the csd is choosen in the field! And the Asset Field is not updated, I don’t know why I have an ArgumentException, must be some null around.
I can recreate the issue with a clean CsoundUnity gameobject.
I’ll dig into it after lunch!
But yes, if we’re happy with the field, the drag area is not needed anymore!
The field has still the problem that all the assets are shown in the window that opens

I’m just making some updates to the child node scene, and it doesn’t look like I can put scripts into that samples folder? Or well, I can, but I just can’t access them?

Yes it’s not straightforward.
Read this, a Unity guy explains how they develop packages with git: https://forum.unity.com/threads/samples-in-packages-manual-setup.623080/#post-4986755

But basically, develop the scene in a folder in Assets, then copy all the content (with meta files) to the Samples folder in the Package.

Ok, easy when you know how!

I did it!
Now CsoundUnityChild shows available AudioChannelNames in inspector!
These are obtained from the referenced CsoundUnity gameobject!

Nicely done Sir! Push push push! With regards to samples, should we try to keep some kind of consistency between them in terms of how they look and how they are coded? Should we try to avoid GUI assets/models etc, and keep to very simple scenes, or go absolutely crazy and try to create some really jaw dropping stuff like @Alex_Emile is doing?

Happy to help with that if you like :slight_smile:

Just some small edit to make everything work and I’ll push!

This is up to us. I’d avoid big models, maybe we could just use the one with the headphones you created for all the scenes with a player, but for everything else I’d use just Unity primitives.
About the visual stuff like Alex work, the thing to be considered is that he uses the Visual Effects Graph, and so depends on the installation of the Lightweight Render Pipeline or HD Render Pipeline:

https://docs.unity3d.com/Packages/com.unity.render-pipelines.lightweight@6.7/manual/installing-lwrp-into-an-existing-project.html

https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@6.9/manual/index.html

instead of using the Built In Pipeline:

https://docs.unity3d.com/Manual/built-in-render-pipeline.html

I don’t know if this dependency can be set for just a sample or has to be for the entire package

Getting close…

Schermata 2020-05-15 alle 20.26.00

1 Like