Previous topicNext topic

A few feature requests

Suggestions for new features for Magic.
Post Reply
Sadler
Posts: 1139
Joined: Sat Aug 02, 2014 7:10 pm
Location: London, UK

A few feature requests

Post by Sadler »

Here are a few thoughts I've gather recently, presented here with the understanding that Eric may already be working on some or all of these areas and may render these requests irrelevant. I admit that some of these may be a little half-baked but hopefully folks can see where they might be useful.

Global BPM setting
At present I have two ways of getting Magic to jump to a beat irrespective of audio. The first is a midi clock from MIDI-OX which I have to set manually using another program with tap bpm facility. The second is to generate OSC on the beat from Resolume and have Magic update from that. It would be great to have a BPM setting within Magic that is global to all settings but which emulate all current speed settings with a value of 120bpm (i.e. plays videos at speed 1.0, Increase 1.0, Sine 1.0 etc.). Whenever the BPM is adjusted from 120 all locked-in module parameters will adjust accordingly.

Tweak clipping plane values and/or resize for 3D model
On certain models and in certain situations neither a resized or not resized 3D model is suitable. When not resized it is too big and when resized it is too small. Also, when receding a model into the distance, it seems that the z-clipping plane makes it disappear before (z=100) it has gone a sufficient distance away from the view-port - again for some models in some situations.

UV module
To allow Magic generated textures on models at run-time.

Blend modes on multimix
Currently the multi-mix module transitions by (best guess) reducing the alpha of one channel while increasing the alpha of the next and adding them. Of course there is scope for transitions all over Magic but perhaps adding blend modes to the multi-mix would be a simpler start.

Neuron modifier
A module that is enabled by a low threshold and fires on a high threshold. Once it has entered its high state it becomes disabled until the next lower threshold. If set correctly this might allow modules to react only when loud audio follows quiet audio. Would make me less likely to miss the drop. Perhaps there is an existing combination of modifiers that can achieve this?

Overshoot modifier
which would carry on increasing depending on rate of increase from the input. This would allow translated objects to overshoot, for example, and add some swing to elements. I imagine there would have to be some opportunity for values to recover afterwards but perhaps they might speed up on the return like as spring.

Export to video codec with alpha
e.g. HAP. MP4 and PNG sequences are great but a bit inconvenient.

Some of these may have been partially requested before and for that I apologise but instead let me offer these as a +1.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: A few feature requests

Post by Magic »

Sure, here are a few notes:

Global BPM - yes, this is on our list. But as you describe it, some users might be upset if the BPM affected things they don't want to be affected. So there would have to be some way to indicate for every individual setting (i.e., every individual modifier) whether or not it should be affected by the BPM. This might be complicated.

Clipping planes, UVs -- we're working on better 3D model/animation support overall. It's a big project though.

Blend modes -- yes, there are many places where better transitions could be available (such as the Playlist itself). It's on our list :)

Neuron -- interesting idea.

Overshoot -- not sure if I understand :).

Export to better/more formats -- yes, this will happen relatively soon I think, maybe in v2.2 or v2.3.
Sadler
Posts: 1139
Joined: Sat Aug 02, 2014 7:10 pm
Location: London, UK

Re: A few feature requests

Post by Sadler »

Overshoot: Imagine a tight kick drum (or any audio on a threshold that goes from 0 to 1 instantly) and imagine you want that kick to hit pool balls around a table. Or an object (e.g a car) travelling in Z which gets a kick in X which, instead of travelling according to the magnitude of the audio, continues in X past the influence of the kick, swerving like on ice.



And, while I'm here, another feature suggestion...

At present the Input Selector selects one input at a time and if you bypass it it shows all its inputs - both extremely useful. It would be a very creative addition to this module if there was mode in between these two states where, as the index increases, inputs are added (or blended in some other way). This would give the ability to build up complexity gradually (build anything for that matter: words, buildings, robots, etc.) and to deconstruct by decreasing the index. A spread parameter could also be interesting where it would select a range of inputs to display, and a random option whereby a number of inputs are displayed according to the spread but selected randomly for all inputs.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: A few feature requests

Post by Magic »

Ok I guess I understand, lemme think if that's achievable within the current modifier framework.
At present the Input Selector selects one input at a time and if you bypass it it shows all its inputs - both extremely useful. It would be a very creative addition to this module if there was mode in between these two states where, as the index increases, inputs are added (or blended in some other way). This would give the ability to build up complexity gradually (build anything for that matter: words, buildings, robots, etc.) and to deconstruct by decreasing the index. A spread parameter could also be interesting where it would select a range of inputs to display, and a random option whereby a number of inputs are displayed according to the spread but selected randomly for all inputs.
Sure those are good ideas. Probably best in new module(s), not added to InputSelector.
dfaught
Posts: 9
Joined: Sun Feb 10, 2019 2:23 pm

Re: A few feature requests

Post by dfaught »

On the subject of 3D model animation there are at least a couple of different approaches, those being simply triggering a predefined animation sequence or individual control of defined parts of a model, either skeletal/skinned or mesh deformation. Triggering predefined sequences can be included in MD2-MD3, Collada or a few other models, or provided in a separate file like BVH files. Skinned/skeletal models are defined in several formats but not necessarily with any predefined animation sequences. I am curious which path(s) you are concentrating on.
artnik
Posts: 268
Joined: Tue Jan 05, 2016 5:33 pm

Re: A few feature requests

Post by artnik »

Before we get awesome animation features, my vote would be a less intense fix to the base 3D rendering first, (if its quicker to do the overhaul in phases). e.g. Definable light sources, basic surface shaders (ambient, specular, wireframe, bump mapping, normal mapping, phong, blinn, etc). It would go a long way to upping the basic functionality.
Sadler
Posts: 1139
Joined: Sat Aug 02, 2014 7:10 pm
Location: London, UK

Re: A few feature requests

Post by Sadler »

If you haven't seen Cables yet, check it out. It has many similarities with Magic but works as a slightly lower level, sitting somewhere between Touch Designer (or Smode) and Magic in terms of module (Op/Chop) granularity. I've been playing with it in beta and their tuts are great.



It has somewhat more extensive 3D capabilities than Magic but is almost as simple to use. This is goes just a bit further than artnik's preference to improve lighting and textures but not so far that it would take years of development.

It is a great example from a UI POV too. It is web based and suffers a bit from that. Modifiers are factored out into their own Ops and readability suffers. It isn't oriented to performance and so can't be used in a real-time situations but it is certainly powerful and fun to use.
Post Reply