Previous topicNext topic

advanced nodes

Suggestions for new features for Magic.
Post Reply
Syd
Posts: 60
Joined: Thu Oct 16, 2014 10:32 am

advanced nodes

Post by Syd »

So I've found myself wishing I could trigger events conditionally a few times recently.

For example another animation at the end of a oscillator or similar.

I havn't exactly figured out what the most 'magic' way to propose to do this is, perhaps a modifier you could put at the end of your modifier list that exposes the current value to a list of variables and a window similar to the playlist window that showed exposed variables.

From there nodes like a boolean node that would trigger its own bypass if conditions were met.
WgjFoVz.png
WgjFoVz.png (25.36 KiB) Viewed 19411 times
2 sec mockup of what I mean by that.

Another alternative could just be exposing a nodes own bypass to the MDK so conditional effects could be made.

I'd love to get some discussion about ways this could be done better and more user friendly. Also any tricks you're currently using to achieve things like this with the tools currently available :)
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: advanced nodes

Post by Magic »

For example another animation at the end of a oscillator or similar.
Hmm, can you describe this a bit more? I'm not sure I understand. An oscillator doesn't really "end"; it keeps going forever.
Another alternative could just be exposing a nodes own bypass to the MDK so conditional effects could be made.
I do plan on allowing the bypass button to be controlled in the same way as other module parameters, so you'd be able to use modifiers for it. Would this be sufficient?

I don't think there's a way to expose the bypass button to the MDK, because when bypass is engaged, the MDK draw functions aren't called.
Syd
Posts: 60
Joined: Thu Oct 16, 2014 10:32 am

Re: advanced nodes

Post by Syd »

Eric wrote:Hmm, can you describe this a bit more? I'm not sure I understand. An oscillator doesn't really "end"; it keeps going forever.
sorry, I worded it a bit vague. what I mean is say when an oscillator hits 1.0 (or a configurable value) activate another chain of nodes.

Use case would be advanced animations where when it passes some value with an osc and triggers another animation.
Eric wrote:I do plan on allowing the bypass button to be controlled in the same way as other module parameters, so you'd be able to use modifiers for it. Would this be sufficient?

I don't think there's a way to expose the bypass button to the MDK, because when bypass is engaged, the MDK draw functions aren't called.
What you're proposing with the bypass parameters is definitely awesome, esp if it also gives us midi control too :)

I'm assuming modifiers for bypass would continue to calculate even with the bypass on?
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: advanced nodes

Post by Magic »

What you're proposing with the bypass parameters is definitely awesome, esp if it also gives us midi control too :)

I'm assuming modifiers for bypass would continue to calculate even with the bypass on?
Yup, what I'm thinking is that you would go into the module's menu and select something like "Show Parameter for Bypass". A new Bypass parameter would appear at the bottom of the module, and it would work just like the other parameters.
bypass1.jpg
bypass1.jpg (7.35 KiB) Viewed 19794 times
What do you think?
Syd
Posts: 60
Joined: Thu Oct 16, 2014 10:32 am

Re: advanced nodes

Post by Syd »

that's a really nice change!

although still doesn't help that much with synchronizing animations across nodes.

Perhaps another alternative could be a node that only has a single output at a time?

functionality would be:

(value / number of outputs = selected output) so 2 outputs with a value of 0.51 enables output 2, disabling output 1 etc.
blackdot
Posts: 528
Joined: Sun Jul 06, 2014 10:18 pm

Re: advanced nodes

Post by blackdot »

+1 for conditional nodes. Boolean, and or xor etc :).
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: advanced nodes

Post by Magic »

Ahh, so I think you're talking about some kind of "mixer" module? In which the parameter's value would control which of the module inputs is let through?

Try this with the GLSLShader module:
FadeMix.txt
(261 Bytes) Downloaded 1194 times
Hook up two inputs to the module, and use the X Param to fade between them.

Yes? No? Let me know what you think. I wrote that shader a while ago but I guess I never posted it.

Also, if you have a copy of Resolume, some of its FFGL plugins behave in a similar way, particularly the ones that have "Mixer" in their names.
Syd
Posts: 60
Joined: Thu Oct 16, 2014 10:32 am

Re: advanced nodes

Post by Syd »

again, very close to what I'm after but I'm trying to use paramaters to keep it in sync.


Say for example I make an effect where I had a sphere that rolls from left to right with an oscillator. At 0.0 and 1.0 I want to trigger an effect where you get an explosion of particles (whether that's with video, ffgl, etc etc).
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: advanced nodes

Post by Magic »

To trigger a video with a Ramp modifier (for example), you can link the Goto Start parameter in the Video module. Like this:
GotoStartRamp.jpg
GotoStartRamp.jpg (15.44 KiB) Viewed 19773 times
When the Ramp crosses from below .5 to above .5, the Goto Start parameter will be triggered. If you disable the Looping parameter as I did above, the video will play to the End Time and then stop until it's re-triggered.

As for syncing with other oscillators in the scene, this is what the "Edit > Synchronize Modules" command is for. While editing a scene you can use it to start all oscillators at the beginning, so that they will be perfectly in sync if their parameters are the same. But more importantly, this happens automatically when you change scenes.

Am I on the right track here? :)
Espen
Posts: 40
Joined: Sat Nov 12, 2016 12:22 pm

Re: advanced nodes

Post by Espen »

Perhaps i should have posted this as a new thread, as it consists of more ideas than what can apply to this thread, but this is where it started, and so this is where it goes :lol:

The "linearity" of the modifiers is kinda limiting. Especially since there is only 1 line of modifiers. A "network" thing would be great.

A "scene"/"macro"-layout (like the regular magic window) to place the modifiers of each module/box/window in (double clicking on the box/module could expand it to a mini-scene thing), where the modifiers could be linked according to ones needs. This should allow placing modifiers on the modifiers (which is already mentioned). And it could also perhaps enable us to place the "Sound-Input" thingS where we want in the line of modifiers - like the other modifiers. It would be AWESOME!!! If one could make scenes within scenes - or Macros - then the functionality would be a LOT better!

A GLOBAL/MASTER "Volume"/"Frequency" sensitivity thingy would also be AWESOME! Especially for people without MIDI controllers, it takes a lot of work to adjust a bunch of parameters everytime one wants to play higher or lower volume. Im using MIDI, and so i already have my assigned "HighPass" and "LowPass" sliders, but it would be more practical to have an additional "MASTER VOLUME SENSITIVITY" - or ideally multiple ones for various frequencies, as some music have more bass than treble, and vice versa...

The DJ software "Traktor" has a function called "key-mappings", like MIDI-mapping, only with the regular QWERTY keyboard. Id LOVE to see this in this software as well..!

GLOBAL MODIFIER FOR OFFSETTING THE MIDI INPUT - To make the most out of a limited MIDI-controller, why not make A MASTER/GLOBAL module-thingy (or perhaps as a function in the "AUDIO-MIDI" window) that allows offsetting MIDI CC#, or perhaps the "MIDI channel"... Like the "Shift" or "CapsLock" buttons on a computer..? If this would be difficult to switch with a MIDI command, then maybe a "Program Change" command could work instead??? Or is this also MIDI??? Ability to use a regular COMPUTER QWERTY KEYBOARD for this purpose would add a LOT of extra functionality for people with just a limited MIDI controller

MIDI input with "swing" function, so that the effect of the MIDI slider increases or decreases the further "up" (or down) one pushes a slider.

Ability to invert MIDI signals on specific modifiers

Ability to choose MIDI VALUE; both TO and FROM

Ability to use MIDI to range from a negative to a positive number would also make things a lot simpler.

As well as an external BPM input thing, which i know is already mentioned. Switching between shaders, etc, with only the "20-80hz" function does not allow for very good syncronization with the music, and i dont want to have to manually change some mathematical values for every new song...
Syd
Posts: 60
Joined: Thu Oct 16, 2014 10:32 am

Re: advanced nodes

Post by Syd »

Espen wrote: A GLOBAL/MASTER "Volume"/"Frequency" sensitivity thingy would also be AWESOME! Especially for people without MIDI controllers, it takes a lot of work to adjust a bunch of parameters everytime one wants to play higher or lower volume. Im using MIDI, and so i already have my assigned "HighPass" and "LowPass" sliders, but it would be more practical to have an additional "MASTER VOLUME SENSITIVITY" - or ideally multiple ones for various frequencies, as some music have more bass than treble, and vice versa...
add a scale modifier to your FFTs, global volume can be adjusted in your audio/midi window by right clicking the box at the far right of your inputs.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: advanced nodes

Post by Magic »

Perhaps i should have posted this as a new thread, as it consists of more ideas than what can apply to this thread, but this is where it started, and so this is where it goes :lol:
It's ok, no problem :). But some of your suggestions are already in the software (such as what Syd described above), so you might want to have a quick look at the User's Guide. And some of your other suggestions are coming in 2.0. The rest I think I already have on my to-do list :).
The "linearity" of the modifiers is kinda limiting. Especially since there is only 1 line of modifiers. A "network" thing would be great.
Well, there are a *lot* of more advanced programs that can do what you're describing, such as Max/MSP, vvvv, TouchDesigner, Isadora, etc. These are full visual programming environments in which the network concept applies to everything, including single numerical values. Some of them are free for personal use, so you might want to check them out. But for Magic, I've decided to keep things simple and focus on the nodes as video processing/generating elements only. This is the way it will remain for the foreseeable future.
artnik
Posts: 268
Joined: Tue Jan 05, 2016 5:33 pm

Re: advanced nodes

Post by artnik »

Regarding right clicking to adjust global volume.

It would be better if this did not block the rest of the interface, or was available as a slider in the UI to allow "on the fly" adjustments live.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: advanced nodes

Post by Magic »

Yeah, I'm a bit embarrassed to admit that someone suggested that almost exactly 2 years ago (viewtopic.php?f=4&t=228&p=776#p776), but I still haven't gotten around to it. I promise I will make it a priority after 2.0.
damstraversaz
Posts: 176
Joined: Tue Aug 26, 2014 11:22 am

Re: advanced nodes

Post by damstraversaz »

great ! ;)
lodevalm
Posts: 2
Joined: Tue Mar 19, 2019 11:50 am

Re: advanced nodes

Post by lodevalm »

The DJ software "Traktor" has a function called "key-mappings", like MIDI-mapping, only with the regular QWERTY keyboard. Id LOVE to see this in this software as well..!
Hello, I know this is an old discussion but I want to point that the keyboard mapping would be very usefull.
If it is not feasible, at least changing shortcuts in preferences would be nice...

I use a mac laptop with Italian keyboard and I need to switch to english/USA keyboard every time I need to perform the playlist to go forward and backward through the scenes and it is quite annoying.

Thank-you!

Daniele
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: advanced nodes

Post by Magic »

Sorry about that, but why not use MIDI for the Playlist? That's really how it's designed to function best...

I've tried to design things such that you wouldn't need to use the keyboard during a performance, just a MIDI controller.
Post Reply