@Jona Hi Thanks for finding the example. I looked at the code and it seems openFrameworks already has functions that can do [openpanel] and [savepanel].
http://openframeworks.cc/documentation/utils/ofSystemUtils/#show_ofSystemLoadDialog
I haven't tried it yet but I think it will work on all desktop platforms without problem.
I will create the two objects. I can also include ofSystemAlertDialog() and ofSystemTextBoxDialog() as well. I will let you know as soon as I add these objects to ofelia.( I will add them within 24 hours)
-
Ofelia Jump On Click Slider
-
@cuinjune hi, that sounds great its not that its needed very soon, but its good to know that its possible, this way it could be easier / more flexible to load/save presets/samples/movies(?) etc. from the ofelia window... still, the openpath.pd method is fine for now and could be useful to load static soundbanks, that are located relative to the path of the patch, for example.
-
@Jona Hi I just added the 4 objects to ofelia v1.0.8.
Reinstall ofelia and open "ofelia/help-intro.pd" and then find the [pd system] subpatch in UTILS section.
I also added [ofGetCanvasIndex] since I think it will be useful for implementing the module connection. -
@cuinjune thanks for the work, i think they are really useful. the ofSystemTextBoxDialog example is quite funny also great to have the ofGetCanvasIndex object.
-
@Jona Hi, I couldn't implement the cord connections yet since I'm currently busy with other thing.
Here's the so far work : modular.zip
I will be able to continue again from next Friday. Just wanted to let you know. -
@cuinjune hi, thanks for everything you did. i didnt expect such a fast progress all the best with your other things.
-
@Jona Hi, I've been working on the connections but couldn't finish the implementation yet.
Although it should be possible to implement the connections and everything using the existing pd and ofelia objects, I personally think pd is not the easiest tool for handling such a complicated task where you need lots of conditions and state changes.For this reason, I've been writing the code in openFrameworks and C++ first and then translated the code into pd objects which is not so efficient way of working.
Because of this, I'm considering to embed the scripting language Lua to ofelia (using Dan Wilcox's ofxLua) so users can mix text based scripting with visual programming in realtime. And users will be able to directly access all openFrameworks features using it. I think it can be very flexible if I succeed in adding the feature. And I believe it will help me to work more efficiently for creating the modular environment.
I expect it will take about a week or two to add the Lua scripting feature to ofelia. (if everything goes well)
Then I will need a few more days to study basics of the Lua programming language but it looks pretty easy to learn.So if you're not in a hurry to create the modular environment, I suggest we hold off this project for a while until I finish creating the base of the environment after adding the Lua scripting feature.
My goal is to make it possible for you and users to easily design modules using ofelia's gui abstractions(e.g. pdgui) and inlet/outlet abstractions without having to deal with other things.As I've said, this is a complicated project requiring a huge amount of work so I hope you understand my decision and I will keep you updated on my progress.
P.S : The below image is the screenshot of what I've done so far using openFrameworks/C++ which I didn't translate to pd and ofelia. I think the code can be easily translated to Lua later on.
-
@cuinjune hi. thanks for your work and thoughts. there is no hurry at all, and it is totally fine to hold the project off i also need to focus on another project for university until mid of june. the concept sounds really great but (like you mentioned earlier) more complicated than i thought. i am not aware of the advantages and disadvanteges of doing somthing like this with pd objects vs. c++(of course i could imagine that c++ is more efficient). i think the idea to access all openFrameworks features via Lua sounds great, even independent from the modular project. But I will also have to learn Lua then At the moment i mainly know pd and a little bit of python and openFrameworks as programming languages, so i am sorry that i am not capable to help with c++ tasks (at the moment).
and of course you need to know if its worth your time, i naivly thought that its a much smaller task. -
@Jona Thanks for your understanding.
I just want to make the project more extensible and maintainable as much as possible.
And you will not need to learn Lua when you create modules later on.
I'm considering to use Lua partially where I think is easier to express than using Pd. (mostly for handling complex logic with many conditions)
But even if you consider learning Lua, I think it won't be that hard since people say it's one of the simplest/easiest languages to learn.
You can think of it as having a more advanced [expr] with additional ability to use openFrameworks classes and methods.
I created a simple prototype yesterday and it seems to work well so far. I need to think more about the design.
-
@cuinjune thanks for the example. the scripting feature looks very useful
-
@cuinjune Thats Lua image looks great, I think in general may be very powerful and useful for complex stuff. I LOVE Lua in general, I used it alot in CODEA IDE for iOS, and it a very powerful and easy to learn language, and from what I understand extremely fast compared to most scripting languages.
Is there somewhere I could try out this Lua-of scripting firsthand? I noticed my download of Purr-Data loads a Lua external on boot, but I assume yours is different, and based on the openframeworks Lua, is that right? I tried out the openFrameworks Lua examples last night and they show some promise. Also I think this rather awesome GAmuza OF IDE uses ofxLua.
-
@AxiomCrux Hi, Thanks for your interest.
Yes, I also use ofxLua so if you tried ofxLua already, it will work identically.
And I added some pd related functions on top of it so users can for example, get/set value of [value] object, send messages to pd's [receive] object or read/write pd's array data using the Lua script. I'm currently trying to find a good way to add inlets/outlets.At the same time, I'm also working on creating the audio version of this so users can create audio objects(e.g. filters, effects) using Lua but there are still many problems to solve.
Do you have some experience in binding C++ functions for Lua?
I'm using SWIG to bind pd related functions and it works well in general but there are some problems I'm struggling to solve. (e.g. passing lua-table as an argument, binding a C++ function that should return a table)