Shadertoy to ISF
Shadertoy to ISF
Many of you have discovered that http://shadertoy.com is a great resource for adding new effects to your Magic projects. Shadertoy-format code is supported natively in Magic via the GLSLShader module, and it works well. But it does have some limitations.
Recent versions of Magic now support the ISF shader format, which is even more versatile than the GLSLShader module, because you can add and rename parameters, directly import texture images, do multi-pass rendering, and more.
Even more importantly, ISF shaders show up as modules in Magic's main menu, allowing you to organize them much more easily.
Syd and I developed a little script that lets you automatically convert Shadertoy shaders to the ISF format. Check it out here:
https://magicmusicvisuals.com/utils/sha ... to_isf.php
Try it out a few times, and after you've saved some ISF files to your computer, have a look at this topic: viewtopic.php?f=3&t=412, which will teach you how to get Magic to recognize the files as modules.
Please let me know if you have any questions. And if you haven't checked out http://shadertoy.com yet, head over there with a WebGL-enabled browser (such as the latest version of Chrome) to see some amazing GPU-accelerated graphics and effects.
Have fun,
Eric
p.s.: Please respect the license of each shader. Some of them aren't for commercial use.
Recent versions of Magic now support the ISF shader format, which is even more versatile than the GLSLShader module, because you can add and rename parameters, directly import texture images, do multi-pass rendering, and more.
Even more importantly, ISF shaders show up as modules in Magic's main menu, allowing you to organize them much more easily.
Syd and I developed a little script that lets you automatically convert Shadertoy shaders to the ISF format. Check it out here:
https://magicmusicvisuals.com/utils/sha ... to_isf.php
Try it out a few times, and after you've saved some ISF files to your computer, have a look at this topic: viewtopic.php?f=3&t=412, which will teach you how to get Magic to recognize the files as modules.
Please let me know if you have any questions. And if you haven't checked out http://shadertoy.com yet, head over there with a WebGL-enabled browser (such as the latest version of Chrome) to see some amazing GPU-accelerated graphics and effects.
Have fun,
Eric
p.s.: Please respect the license of each shader. Some of them aren't for commercial use.
Re: Shadertoy to ISF
Thank you for this cool tool!
Re: Shadertoy to ISF
This is awesome! Thanks,Eric, it just keeps getting better and better
Re: Shadertoy to ISF
>>Please let me know if you have any questions.
How many am I allowed?
" License Creative Commons Attribution-NonCommercial-ShareAlike"
What exactly does this mean? I can use it or I can't? Can I use it in a show, or does it mean that I just couldn't sell it ?
And now for the big one....
Msl3Rr
Would you be able to explain in layman's terms how he gets those cubes to react individually?
The links he provided, take me to pages that may as well have been written in Martian Idioma.
X,Y,Z,W for me in magic, only makes all of the cubes move simultaneously.
When it's on shadertoy, it's very cool.
How many am I allowed?
" License Creative Commons Attribution-NonCommercial-ShareAlike"
What exactly does this mean? I can use it or I can't? Can I use it in a show, or does it mean that I just couldn't sell it ?
And now for the big one....
Msl3Rr
Would you be able to explain in layman's terms how he gets those cubes to react individually?
The links he provided, take me to pages that may as well have been written in Martian Idioma.
X,Y,Z,W for me in magic, only makes all of the cubes move simultaneously.
When it's on shadertoy, it's very cool.
Re: Shadertoy to ISF
I'm not really an expert in this kind of thing, but personally I wouldn't use anything that says "NonCommercial" in a situation I was profiting from (ticket sales, videos with advertisements, etc.)." License Creative Commons Attribution-NonCommercial-ShareAlike"
What exactly does this mean? I can use it or I can't? Can I use it in a show, or does it mean that I just couldn't sell it ?
The cubes are reacting to the frequency spectrum of the audio. So you have to provide the spectrum to the shader somehow. In Magic, this is accomplished by using the AudioToImage module, and selecting the "Spectrum" option. Have a look at this post: viewtopic.php?f=3&t=277#p1739 (and you might want to look at the post before it also, for background). In your case, you would set it up exactly like the screenshot with the FFT Spectrogram module, except replace the FFT Spectrogram with your ISF module based on Msl3Rr.Would you be able to explain in layman's terms how he gets those cubes to react individually?
One thing to keep in mind is that he very specifically wrote Msl3Rr to look good with the audio track he provides. Other audio might not work as nicely, due to the frequencies being different. But you can play around with it in Magic and see what happens .
Another thing is, I think he is smoothing the frequency data. If you want more info, let me know and I can try to guide you through it. It's kind of a strange yet interesting process, because you have to start applying image filters to audio.
Re: Shadertoy to ISF
This worked, easy fix.
But more amazing is the speed of an answer to my question, thanks
But more amazing is the speed of an answer to my question, thanks
Re: Shadertoy to ISF
Hey Eric!! Guyz!!
I just found my "dream shader" on shadertoy but i can't convert it properly into Magic...
Eric, i know that you're now developing update for a new GLSLmodule, could you try smth with this?
This's a very special Shader which we're waiting for the whole life...)
Any help appreciated!!
https://www.shadertoy.com/view/XddSRX
I just found my "dream shader" on shadertoy but i can't convert it properly into Magic...
Eric, i know that you're now developing update for a new GLSLmodule, could you try smth with this?
This's a very special Shader which we're waiting for the whole life...)
Any help appreciated!!
https://www.shadertoy.com/view/XddSRX
Re: Shadertoy to ISF
Yup, that is a multipass shader -- indicated by the presence of a "Buf A" tab in addition to the "Image" tab. Multipass isn't supported right now, but it will be when I update the GLSLShader module.
Re: Shadertoy to ISF
Ohh man... That will be great!! I will pray hard for this))Eric wrote:Yup, that is a multipass shader -- indicated by the presence of a "Buf A" tab in addition to the "Image" tab. Multipass isn't supported right now, but it will be when I update the GLSLShader module.
Re: Shadertoy to ISF
Thanks for sharing this tutorial!! having much fun with Magic
Re: Shadertoy to ISF
Hey Eric,
knowing that you have been busy with updating MMV - but would you mind letting me know if the GSLS upgrade is something you have still on the plate?
Cheers
Heiko
knowing that you have been busy with updating MMV - but would you mind letting me know if the GSLS upgrade is something you have still on the plate?
Cheers
Heiko
Re: Shadertoy to ISF
Yes, definitely . But it's a bit more of a priority for us to get ISF v2 working first. Hopefully in one of the next two minor releases.
Re: Shadertoy to ISF
Hey Eric,
First, huge thanx for such a beautiful update v2. DarkUi = superb!!
But i'm still puzzling and can't get into this shader:
https://www.shadertoy.com/view/XddSRX#
Maybe some updates follow?
Cheeerz,
Y
First, huge thanx for such a beautiful update v2. DarkUi = superb!!
But i'm still puzzling and can't get into this shader:
https://www.shadertoy.com/view/XddSRX#
Maybe some updates follow?
Cheeerz,
Y
Re: Shadertoy to ISF
That shader uses multiple (in this case only one) buffers to layer effects within the shader. MMV doesn't support buffers yet but it's been on Eric's radar for a while. That's the thing about software - it is fluid so things change around you and sometimes it is hard to keep up, especially as a developer.
Re: Shadertoy to ISF
Sky is blue.. Grass is green..
-
- Posts: 176
- Joined: Tue Aug 26, 2014 11:22 am
Re: Shadertoy to ISF
that's really a nice tool, thanks a lot Eric.
I have an issue with the image: they don't show on the page and I can't download them ( it works before so shadertoys seems to have change something).
Unfortunatly Syd's link to all the textures as a zip download seems to be broken.
I have an issue with the image: they don't show on the page and I can't download them ( it works before so shadertoys seems to have change something).
Unfortunatly Syd's link to all the textures as a zip download seems to be broken.
Re: Shadertoy to ISF
It does seem like Shadertoy changed something. But I think I fixed the problem, so let me know if there are still any issues.
-
- Posts: 176
- Joined: Tue Aug 26, 2014 11:22 am
Re: Shadertoy to ISF
it works perfectly, thanks a lot for the fix !
-
- Posts: 2
- Joined: Sat May 06, 2017 6:21 pm
Re: Shadertoy to ISF
Hi, I'm in the midst of demo'ing your software. I've been using a few GLSL shaders and took me a while to find I could convert to ISF. One thing I wonder after having trouble getting the source textures from the Shadertoy site myself, are you having to use the Shadertoy API to retrieve the textures or are they simply visible in source code of page somewhere ?
Re: Shadertoy to ISF
Hi Michael, yes the API is necessary to retrieve the textures. That's one of the conveniences provided by my script -- it handles the texture retrieval for you.
-
- Posts: 2
- Joined: Sat May 06, 2017 6:21 pm
Re: Shadertoy to ISF
Cheers. saves me puzzling over html/js code of their pages .
Re: Shadertoy to ISF
Hi Eric,
I just wanted to mention, that you have another soul praying for a multipass support ....
Lots of epic shaders out there
Regards,
S.
I just wanted to mention, that you have another soul praying for a multipass support ....
Lots of epic shaders out there
Regards,
S.
Re: Shadertoy to ISF
Hey, just got Magic and I'm loving it so far. I gave this a try and none of the shaders I tried worked. Is this still working or did I screw up some how? Usually I'm smart
So here's a couple of the ones I tried, if anyone could give a shot converting them and let me know how it goes or have any ideas what I may be doing wrong.
https://www.shadertoy.com/view/XlsczN
https://www.shadertoy.com/view/MtfSz2
https://www.shadertoy.com/view/Md3SRM
Thanks
So here's a couple of the ones I tried, if anyone could give a shot converting them and let me know how it goes or have any ideas what I may be doing wrong.
https://www.shadertoy.com/view/XlsczN
https://www.shadertoy.com/view/MtfSz2
https://www.shadertoy.com/view/Md3SRM
Thanks
Re: Shadertoy to ISF
Thanks for letting me know. It looks like Shadertoy changed its spec recently, so I just updated my script and it should work with the second two. The first one is multipass so it won't work (yet).
Re: Shadertoy to ISF
Thanks for the quick reply and the quick fix, works now. Guess I'll start saving a list of all the multi-pass shaders in anticipation
Re: Shadertoy to ISF
Hi,
Is it possible to use Magic with this shader:
https://www.shadertoy.com/view/4sB3WV
I don't want to use textures, but Magic generated content. I tried to do it the "tutorial way" but it gives me a "one way" module:, that doesn't have an input.
Thank you!
Regards,
S.
Is it possible to use Magic with this shader:
https://www.shadertoy.com/view/4sB3WV
I don't want to use textures, but Magic generated content. I tried to do it the "tutorial way" but it gives me a "one way" module:, that doesn't have an input.
Thank you!
Regards,
S.
Re: Shadertoy to ISF
If you want to use Magic images as inputs instead of the Shadertoy textures, click the checkbox that says "Don't use IMPORTED images (advanced)".
Re: Shadertoy to ISF
I'm not 100% per cent sure if I've done this correctly because a lot of this is new to me.
I didnt know how to get the shadertoy content so it would work in Magic, so I googled it a bit and found this converter. I converted it, then copied and pasted it into a text file, and deleted .txt at the end and replaced it with .fs . Is that correct ?
If I've done that right, do I just link to a folder anywhere with those .fs files in it, or will it work more fluidly if that folder is placed in a specific place within the magic installation folder ??
Apologies for noob questions. I excel at audio DAWs, but this is all new to me and i'd never even heard of a shader until yesterday and thought it was simply a tool to make gradients of a colour so that red could become lighter red or blue becomes lighter blue etc....so imagine my surprise when I tried the shaders and found not shaders, but FX !!
Very cool. I see the potential for awesomeness, but feeling very green
I didnt know how to get the shadertoy content so it would work in Magic, so I googled it a bit and found this converter. I converted it, then copied and pasted it into a text file, and deleted .txt at the end and replaced it with .fs . Is that correct ?
If I've done that right, do I just link to a folder anywhere with those .fs files in it, or will it work more fluidly if that folder is placed in a specific place within the magic installation folder ??
Apologies for noob questions. I excel at audio DAWs, but this is all new to me and i'd never even heard of a shader until yesterday and thought it was simply a tool to make gradients of a colour so that red could become lighter red or blue becomes lighter blue etc....so imagine my surprise when I tried the shaders and found not shaders, but FX !!
Very cool. I see the potential for awesomeness, but feeling very green
Re: Shadertoy to ISF
Try this tutorial: viewtopic.php?f=3&t=412
Re: Shadertoy to ISF
thanks eric. I had a look at that and it seems easy enough.
Having problems with shadertoy though. I can see 1 page and the video is moving but i click to the next page, they take an age to load, and then get a message about webGL being disabled, so i went into firefoxes config page ( the here be dragoons page ) and went down to webGL.disable.angle or something like that and changed it from true to false, or vice versa ( cant remember ), and it worked for a few minutes and screwed up again. I tried this several times, changing back and forth from true to false, but firefox wont play the videos now.
Without the videos, the code doesn't appear either, so I can't copy / paste and do the .fs thing without it.
Any ideas ??
Having problems with shadertoy though. I can see 1 page and the video is moving but i click to the next page, they take an age to load, and then get a message about webGL being disabled, so i went into firefoxes config page ( the here be dragoons page ) and went down to webGL.disable.angle or something like that and changed it from true to false, or vice versa ( cant remember ), and it worked for a few minutes and screwed up again. I tried this several times, changing back and forth from true to false, but firefox wont play the videos now.
Without the videos, the code doesn't appear either, so I can't copy / paste and do the .fs thing without it.
Any ideas ??
Re: Shadertoy to ISF
Hmm... well I can't say I'm an expert on Firefox or WebGL or Shadertoy itself... but I might suggest trying a different browser, such as Chrome...
Re: Shadertoy to ISF
yeah I tried Chrome, and its just a little bit better, but does the same thing. Im new to graphics so a lot of it is double dutch to me, and was hoping you might know. Thanks anyway
Re: Shadertoy to ISF
Hey everyone!
I am trying to get a pixel sorting type shader for live performances. I have been trying one with no success in Magic and then read that you can't use ones with multiple buffers. I found this one (https://www.shadertoy.com/view/MstyDl) but the program still closes every time I try to use it. I am very new to uploading these myself so any help on how to get them into Magic would be much appreciated.
I am trying to get a pixel sorting type shader for live performances. I have been trying one with no success in Magic and then read that you can't use ones with multiple buffers. I found this one (https://www.shadertoy.com/view/MstyDl) but the program still closes every time I try to use it. I am very new to uploading these myself so any help on how to get them into Magic would be much appreciated.
Re: Shadertoy to ISF
When you say that the program closes, do you mean that Magic crashes? If so, you may want to try updating your graphics drivers...
-
- Posts: 2
- Joined: Sun Oct 21, 2018 9:32 pm
Re: Shadertoy to ISF
Thanks Eric,
Very useful indeed.
If you are considering any updates to the conversion script, I've needed to manually add the following line:
float iFrame = FRAMEINDEX;
to the converted code for shaders that use the iFrame variable (similar to the way the code handles iTime). Not sure how common this is, but might be worth adding at some point if you are making any other changes.
Very useful indeed.
If you are considering any updates to the conversion script, I've needed to manually add the following line:
float iFrame = FRAMEINDEX;
to the converted code for shaders that use the iFrame variable (similar to the way the code handles iTime). Not sure how common this is, but might be worth adding at some point if you are making any other changes.
-
- Posts: 720
- Joined: Sun Sep 14, 2014 8:15 am
- Location: UK
- Contact:
Re: Shadertoy to ISF
I wanted to use the awesome Shadertoy XY Audio Oscilloscope in Magic. https://www.shadertoy.com/view/3t23Rt
The current shadertoy_to_isf script only produced minimal output, so I used the VIDVOX ISF editor to import from Shadertoy which managed much better. I highly recommend this editor for Windows users.
With David Lublin's help I managed to get it working very nicely in their ISF editor's preview window, getting results just like those in the Shadertoy environment.
When I try the same shader in Magic it only works partially, with just vertical deflection (and that mainly in the +X direction).
Help!
The current shadertoy_to_isf script only produced minimal output, so I used the VIDVOX ISF editor to import from Shadertoy which managed much better. I highly recommend this editor for Windows users.
With David Lublin's help I managed to get it working very nicely in their ISF editor's preview window, getting results just like those in the Shadertoy environment.
When I try the same shader in Magic it only works partially, with just vertical deflection (and that mainly in the +X direction).
Help!
- Attachments
-
- XY_Audio_Oscilloscope_3t23Rt_V1.7.fs
- Most recent version, with lots of parameters made adjustable. The parameters (like color) work normally, the problem is with the plotting.
- (8.85 KiB) Downloaded 45181 times
Re: Shadertoy to ISF
Yes, that's a multipass shader and my conversion script won't handle it. If the Vidvox editor works for multipass then I'd definitely recommend it over my old script.
I ran your .fs file on my everyday laptop and it makes Magic run at 2 fps with nothing else in the scene though...?
I ran your .fs file on my everyday laptop and it makes Magic run at 2 fps with nothing else in the scene though...?
-
- Posts: 720
- Joined: Sun Sep 14, 2014 8:15 am
- Location: UK
- Contact:
Re: Shadertoy to ISF
Odd. I've attached a project that I tried on two of my systems (both GTX1070) and it runs at good speed, running 720p at nearly 200fps at the same time as the ISF editor. With no music input there's normally a small dot in the centre of the screen.
Here's a screenshot of the attached project running, with the ISF window alongside for comparison.
In order to see something more than just a dot or vertical line in the attached Magic project I turned the persistence way up - and then there's a trail drifting towards the top right corner. I used a low persistence setting for the ISF instance of the shader for clarity.
David Lublin did mention that I might need to change his ISF editor into OpenGL 4 mode, but I found enabling OpenGL 4 made no difference (although I couldn't confirm that the editor was indeed changing modes accordingly).
Perhaps you can spot something in the ISF editor's output code that Magic doesn't handle.
Here's a screenshot of the attached project running, with the ISF window alongside for comparison.
In order to see something more than just a dot or vertical line in the attached Magic project I turned the persistence way up - and then there's a trail drifting towards the top right corner. I used a low persistence setting for the ISF instance of the shader for clarity.
David Lublin did mention that I might need to change his ISF editor into OpenGL 4 mode, but I found enabling OpenGL 4 made no difference (although I couldn't confirm that the editor was indeed changing modes accordingly).
Perhaps you can spot something in the ISF editor's output code that Magic doesn't handle.
- Attachments
-
- XY_Audio_Oscilloscope.magic
- Magic project illustrating the issue.
- (1.45 KiB) Downloaded 42736 times
-
- Posts: 720
- Joined: Sun Sep 14, 2014 8:15 am
- Location: UK
- Contact:
Re: Shadertoy to ISF
Oops, I just noticed that my Magic project has the XY scope module in Points rather than Lines mode. It makes the trail a little more responsive when the persistence is maxed out. In the ISF editor I much prefer the Lines mode.
Re: Shadertoy to ISF
Ok. I guess I can't guarantee that the ISF editor will behave exactly the same as Magic, and I can't guarantee that the code between them is 100% compatible. But I will have a look when I get a chance.
Shouldn't your AudioToImage module have Spectrum selected, not Waveform? Maybe not, I dunno.
Shouldn't your AudioToImage module have Spectrum selected, not Waveform? Maybe not, I dunno.
-
- Posts: 720
- Joined: Sun Sep 14, 2014 8:15 am
- Location: UK
- Contact:
Re: Shadertoy to ISF
Thanks Eric! This shader is particularly interesting with its built-in DSP audio filtering. It will be great if that's possible in Magic.Eric wrote:... I will have a look when I get a chance.
It's definitely AudioToImage Waveform for all oscilloscope-like shaders, although it can sometimes give interesting effects if the "wrong" setting or a combination is used.Eric wrote:Shouldn't your AudioToImage module have Spectrum selected, not Waveform? Maybe not, I dunno.