MoI discussion forum
MoI discussion forum

Full Version: Parametric design in MoI?

Show messages:  1-16  …  577-596  597-616  617-636  637-656  657-676  677-696  697-716  …  897-912

From: Max Smirnov (SMIRNOV)
1 Oct 2017   [#637]
v.0.96

Added macros Import/Export tool
Fixed Basic/Output remove bug

I desided do not create special file format for macros. All macros will be saved as normal nod-file, and every nod-file you can import as a macro.
If you will try to open saved macro as top-level file all inputs/outputs nodes will be blocked.

Also you can create subdirectory nodeeditor/macros and put there your macros. They will be shown in Macros submenu.
Unfortunately, at the moment I can't scan subdirectories in nodeeditor/macros directory using MoI functions, so I can't create subfolders in macros submenu.

http://moi.maxsm.net/nodeeditor
From: mkdm
1 Oct 2017   [#638] In reply to [#637]
Hi Max.

Thank you very much for all your developing efforts!

With this new features for "Macro" you're doing a great job!!

I would like to find some extra spare time (..it's a hard challenge) to write some sort of "UI Control Panel" for NodeEditor,
with buttons/tabs/expandable sections, all dynamically created,
in order to give a different UI other than menu, that is very uncomfortable.

Do you think is it feasible ?

I stay tuned.

Ciao!
From: Karsten (KMRQUS)
1 Oct 2017   [#639] In reply to [#637]
Hello Max,
thank you very much - a first test shows that every thing works fine. Reusing the macros will give the productivity a boost.

So have a nice evening
Karsten
From: bemfarmer
1 Oct 2017   [#640]
My only experience with MACROS is in Microsoft Excel, where a series of key presses may be recorded, to reduced repetitive tasks.
"pressing the Macro key causes the sequence of key presses to be repeated."

My attempt of a definition of a MACRO in nodeEdit program:

NOTE: These statements are apparently FAULTY...

A MACRO is a group of nodes which have been pre-wired, or pre-assembled, to perform some function, or portion, of a full .nod program.
A MACRO is a building block. Several MACRO building blocks may be combined to make a .nod program. (?)

Rather that build a .nod file from scratch, by selecting individual nodes, and wiring them up, the .nod file may be built in smaller blocks. (?)
A library of pre-defined MACROS may be built up which accomplish common or typical portions of .nod files.
The programmer loads the appropriate MACROS from the MACRO subdirectory, loads any desired single nodes, (?)
and wires up appropriate connections between the MACROS and single nodes.(?)

Example of a super simple MACRO: A Frequency node wired to a Quartz node. One selection versus two selections and one wire and one label change.
I saved Frequency + Quartz as "Clock.nod" to the Macro directory. (Well, it should be exported...)


I guess a MACRO is saved by saving a .nod file to the Macro directory?
I have not managed to load more than one MACRO at a time.
There is a little box which says Macro, and another little box which says Clock...
Clicking on the Macro box loads Max's Macro.
Clicking on the Clock box loads Frequency+Quartz, but Max's Macro disappears...

- Brian
From: bemfarmer
1 Oct 2017   [#641] In reply to [#640]
So Max's CubePts is a macro container, which can be opened.

Double clicking on a macro container also opens it in a new window with a back button.

I cannot open more than one macro at a time...

- Brian
From: James (JFH)
2 Oct 2017   [#642] In reply to [#640]
Hi Brian,

>>I guess a MACRO is saved by saving a .nod file to the Macro directory?....There is a little box which says Macro.....<<

You need for example, to export the macro "cubePts.nod" out of Max's original "macro.nod" file, like so:


then it & others can be imported into a new project like so:


Hope this helps
James

Image Attachments:
macroExport.gif  macroImport.gif 


From: Frenchy Pilou (PILOU)
2 Oct 2017   [#643] In reply to [#642]
About this example CubePtrs.nod

It's only the node "CubePtrs" who is saved or the Node "CubePtrs" + Knob + Slider + OutPut who is saved as "Macro A" ?
From: James (JFH)
2 Oct 2017   [#644] In reply to [#643]
Hi Pilou,

>>It's only the node "CubePtrs" who is saved<<
Yes, the macro can be exported with any name, though it makes sense to give the .nod file the same name as the macro within.

.>>or the Node "CubePtrs" + Knob + Slider + OutPut who is saved as "Macro A" ?<<
No, I only included "MacroA" highlighted to illustrate that multiple macros may be imported into a project.
The Knob + Slider + OutPut will not be included in the export.

James
From: bemfarmer
2 Oct 2017   [#645] In reply to [#642]
Thank you James, that did help. You must have a Mac export window.

I was incorrectly thinking that detailed views of multiple Macros could be viewable in one window, at the same time.

An attempt to document the Macros feature:

NodeEditor MACROS

1. To create a new Macro container:
In a nodeeditor window, right click on the screen, and select Macro, then select Create.
This creates a small box labeled Macro,
which is the Macros/Container as per the i Node Info window on the right of the screen.
(In effect this small box is a condensed second screen, a "Back" screen.)

2. There are two ways to open the Macros container and see the "Back" screen:
a. Double click on the Macros container.
b. Right click on the Macros container and select Open.

In the info window, the name of the Macro container may be changed, for example to QuartzClock.

3. To build a Macro:
In the "Back" screen, build what amounts to a .nod program.
Right click on an open area, select Node, then select a particular node,
for example Node/Basic/Quartz, also select Node/Widgets/Slider and change its name to Frequency.
Color can also be changed.
Right click on an open area, and select Output. (Input can be selected if needed.)
Wire Frequency to Quartz, and Quartz to Output.
Select the Back button at the top of the screen.
This returns to the main node screen, and the Macro container now has an output dot.
Right click on the Macro container and Export it to the Macro subdirectory, with an appropriate name.
Note that the Macro container "Back" window may also have other Macros loaded and wired in as well,
but they will appear as condensed Macro containers (with sub Back windows).

Nested Macros containers:
Note that steps 1, 2, and 3 can be repeated in a second condensed Macros container opened in the "Back" window,
and have also have subordinate "Back" window(s), so as to make nested Macros.

In summary, the Macro appears as a "condensed" .nod file, until opened in a "Back window."
This can "unclutter" a complicated and large .nod program file.

I do not see any way to view the entire detail of some wired node ensemble of multiple nodes and macros, in one window.

Importing a previously saved Macro is straightforward, and not documented here.
Multiple saved Macros may be imported to the main nodeeditor screen, but appear in "condensed" form there, and may be wired together
along with regular nodes.

- Brian
From: Max Smirnov (SMIRNOV)
2 Oct 2017   [#646]
Hi Marco,

>>I would like to find some extra spare time (..it's a hard challenge) to write some sort of "UI Control Panel" for NodeEditor, with buttons/tabs/expandable sections, all dynamically created, in order to give a different UI other than menu, that is very uncomfortable.
Do you think is it feasible ?

Sure, the UI definetely needs redesigning. I'm not a designer, so I can't create good interface by myself. Maybe someone could make new interface for NE.

Brian,
thank you for documentation!
From: mkdm
2 Oct 2017   [#647] In reply to [#646]
Hi Max.

@You : "...Sure, the UI definetely needs redesigning. I'm not a designer, so I can't create good interface by myself. Maybe someone could make new interface for NE."

Well!

ASAP I hope to start writing a UI plugin with some nice look and above all with good UX, in order to speed up things in NE (or...PE...Project Elephant).

I also think that currently what we are really missing in NE is the support for keyboard shortcut,
but unfortunately I think that this can't be done, because I suppose that all keyboard events are captured and processed by Moi.

Anyway...let's change at least the UI!

I'll keep you up-to-date about this work.

Ciao!
From: Michael Gibson
2 Oct 2017   [#648] In reply to [#647]
Hi Marco, re: keyboard shortcuts in node editor - for v4 it will be possible to implement OnKeyDownEvent() and OnKeyUpEvent() script functions on a dialog and when the dialog has focus MoI will look for those and call them.

It's used also by the new shortcut key definition dialog "ShortcutKeyDialog.htm" and there are comments in that file about how it works.

- Michael
From: mkdm
2 Oct 2017   [#649] In reply to [#648]
Hi Michael.

@You : "...for v4 it will be possible...".

Perfect!! Thanks a lot.

"ShortcutKeyDialog.htm"....is in V4.....right ? I think so.
From: Michael Gibson
2 Oct 2017   [#650] In reply to [#649]
Hi Marco,

re:
> "ShortcutKeyDialog.htm"....is in V4.....right ? I think so.

Yes, that's correct.

- Michael
From: Max Smirnov (SMIRNOV)
4 Oct 2017   [#651]
v.0.97

Removed Clone function
Added Copy/Paste functions (also you can use Ctrl + drag)
Removed buttons icons (all icons generating on the fly)

I've started an optimization process. About 650 lines in main.js has been changed since v.0.96
This version is unstable. Waiting for a bug reports.
From: Max Smirnov (SMIRNOV)
4 Oct 2017   [#652]
Hi Marco

>>ASAP I hope to start writing a UI plugin with some nice look and above all with good UX, in order to speed up things in NE (or...PE...Project Elephant).
Good news. What kind of interface you want to make?
From: James (JFH)
4 Oct 2017   [#653] In reply to [#651]
Thanks Max for latest update,

Copy/Paste will be a productivity boon in general use, and...
ingeniously answers my call for a "make macro" function
by allowing to paste into a new macro, so kudos!

This is just a thought, but would it be possible to have a
"Copy & Remove" option (or "Cut" in Adobe nomenclature)?
It would be handy when cleaning up node circuitry, by copying out
groups of nodes to package into a macro, without then have to
reselect the same nodes to remove. If you agree that this would be
useful, then perhaps, sometime in the future this option could be included.

For now, I'm so happy with the new functionality, especially
Ctrl + drag copying! This is something that I have long desired.

Thanks again
James

P.S. >>Removed buttons icons (all icons generating on the fly)<<

This may be a dim witted question, but could explain this
or illustrate with image. I don't know what are "buttons icons"
The only things that would fit the description that I can see is:
"NEW","LOAD","SAVE" etc. but they have not been removed.
From: mkdm
4 Oct 2017   [#654] In reply to [#652]
Hi Max.

@You : "...Good news. What kind of interface you want to make?..."

Well...I still don't know.

I have in mind some kind of simple "buttons driven" UI with expandable/collapsible grouping of buttons.

I want to start with a simple thing and to see how it works.

Something like this (please don't care about colors or icons, are only examples)



As you can see I wrote "dynamically generated" (also with icons if possible).

I will need to parse in some way the .js source code of P. Elephant to extract the names of the various nodes.

I think that with just this simple UI working with P. Elephant will be much, much faster.

Please let me know what do you think about it.

Cheers.

Marco (mkdm)
From: mkdm
5 Oct 2017   [#655] In reply to [#652]
Hi Max.

P.s....

@Me : "..(also with icons if possible)..."

I think it's easily feasible for example assuming " icon file name.png = node name".
Icons could be placed into a folder inside the root of P.E.

Anyway...let me know.

Ciao!
From: Max Smirnov (SMIRNOV)
5 Oct 2017   [#656]
James
>>This is just a thought, but would it be possible to have a "Copy & Remove" option (or "Cut" in Adobe nomenclature)?
I added this function today morning.

>>The only things that would fit the description that I can see is: "NEW","LOAD","SAVE" etc. but they have not been removed.
In v0.96 and earlier versions the icons was stored in /imgs directory as png files. In v0.97 this directory has been removed. Now NE engine draws icons automatically every time you you run it.
Now you can change color of the icons in colors.js file.

Marco
>> want to start with a simple thing and to see how it works. Something like this (please don't care about colors or icons, are only examples)
It's OK. Looks good. I'll make small change in init.js (or index.html) today, so you can add custom buttons and windows without making any changes in the core files.
I'll send you an example today evening.

>>I think it's easily feasible for example assuming " icon file name.png = node name". Icons could be placed into a folder inside the root of P.E.
Huge amount of separate png icons will affect on overall engine performance. Especially when you open NE window.
The better and more clear way is store the icons inside every node as base64 encoded image.

Show messages:  1-16  …  577-596  597-616  617-636  637-656  657-676  677-696  697-716  …  897-912