Search Unity

Released: Visualizer Studio - A Music Visualization scripting package!

Discussion in 'Assets and Asset Store' started by AlteredReality, Aug 16, 2011.

  1. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Hey all! I just submitted my first asset to the asset store! It is called Visualizer Studio. It is a scripting package that allows you to create games that react to the music! It should be on the store soon!

    Here is a video of the included example level, along with the general description and some use cases:
    http://www.youtube.com/watch?v=G5KOhO7OvQQ

    If you have any feedback, questions, or comments, either after or before playing with the package, feel free to let me know!

    For feedback on Visualizer Studio, you can reply to this, or reach me at: VisStudioUnity@yahoo.com
    You can also find more updates on Twitter at: www.twitter.com/visstudiounity

    For info on Altered Reality and our products, you can check out our website at: www.alteredr.com

    For a Web Player Demo, go here and scroll to the bottom: Visualizer Studio

    Visualizer Studio Pro \w Source Code is available on our website!

    Enjoy!


    Andy - Altered Reality



    EDIT: JUST RELEASED! http://u3d.as/content/altered-reality-entertainment/visualizer-studio/2dq


    EDIT: Adding some videos!

     
    Last edited: Jun 3, 2012
    Gozdek likes this.
  2. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Andy, this looks really cool. Do you include a scene file with the asset so it is a no brainer to get it up and going. I have lots of cool ideas for this!!!!
     
  3. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Yup, it has a scene in the package that has a couple different types of objects hooked up to the music in different ways. It even includes a pair of Prefabs that have a good starting point for the main visualization controller objects. So I'm hoping it is nice and easy to get started! :)
     
  4. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Oh sorry, I should have mentioned that in the original post! I'll update it now!
     
  5. Bantis

    Bantis

    Joined:
    Jul 1, 2010
    Posts:
    20
    I've gotten to beta an early version of Visualizer Studio, and I can't say enough great things about it. I wanted a lot of the props in my game to move and interact with my music tracks; getting this set up was incredibly easy, and didn't even require a line of script.

    Best of all, expanding upon this system to support your custom objects and functionality is a breeze. All the code is well commented and very clear, and looking at the examples has made it easy to roll my own Triggers and modifiers.

    I honestly can't recommend this package enough! Can't wait to see what the future holds!
     
  6. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Thanks! I'm glad that you have been enjoying it so much! If you ever have any additional feedback or questions going forward, please let me know! Thanks for the help testing it ahead of time!
     
  7. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
  8. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
  9. Bantis

    Bantis

    Joined:
    Jul 1, 2010
    Posts:
    20
    Looking forward to seeing what you do with it! I'm hoping to post a video soon!
     
  10. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Thanks and enjoy! :)
     
  11. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Looks pretty nice. I'll probably be checking this one out.
     
  12. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Just got it, lovely so far it's completely changed the way i'm going to approach my project, great stuff! I think some serious investigation will bear fruit as to what can be done with it
     
  13. onllm

    onllm

    Joined:
    Mar 4, 2011
    Posts:
    111
    mobile support? and performance? reacting to music playing in the game or input source such as mic?
     
  14. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    It'll run on a quick mobile, (I just ran it through a galaxy S2, was fine), not sure about mic, you just choose any audio source in the scene
     
  15. avedis777

    avedis777

    Joined:
    Jul 10, 2011
    Posts:
    25
    This looks pretty cool, I'd like to see some docs or tutorial videos so I can better understand how it works. Can it accept a live audio input from an external source like another media player while playing the game or does it have to be all imported and precompiled?
     
  16. MarkcusD

    MarkcusD

    Joined:
    Jul 12, 2011
    Posts:
    40
    Is the code in C#?
     
  17. Bantis

    Bantis

    Joined:
    Jul 1, 2010
    Posts:
    20
    Yup, and extremely well documented.
     
  18. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    It has only been tested on the PC, as I unfortunately do not have a setup for mobile. But as LazyGunn mentioned, it should run on mobile if you configure it to be less taxing, or if you have a powerful device. The main thing you can do for performance, is to reduce the window size on the main VisManager object. This reduces the precision and increases the bleed through among frequencies, but it should run faster.

    As for music/sound effects...it has mostly been tested using music. As LazyGunn mentioned again, you simply need to point it at an audio source to pull from. If it doesn't have an audio source, it will use the global AudioListener object, although that doesn't seem to have the same volume pickup as directly connecting to an AudioSource. So as a long the VisManager object is listening to any specific sound, it should be able to react to it.

    As for Microphone, I honestly don't know. From my quick searching, I didn't find an apparent way to work with input from the microphone.

    Any other questions, please let me know.


    Andy - Altered Reality
     
  19. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    I am actually making a basic use tutorial video tonight. I'll post when I finish it.

    As for external audio source, it only works with an Audio Source or an Audio Listener in the Unity engine. So, you won't be able to use an external source, unless of course there is a way to get external audio input into Unity that I am unaware of. :)
     
  20. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    What Bantis said. It's all C#, all the way!
     
  21. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    I just posted a basic tutorial video on YouTube. Check it out!

    http://www.youtube.com/watch?v=J_hmjkPOelA

    If anyone has any questions, or other videos they'd like to see in the future, please let me know. Enjoy!
     
  22. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924


    BIG, BIG, Help Andy. Thanks for Doing this. Would be interesting to see about expanding the frequency granularity by adding low bass, bass, high bass etc.
     
  23. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    No problem! And thanks for embedding it in the post for me, it didn't even occur to me! :p

    I'd definitely like to take some time going forward with creating additional, more advanced tutorials. I'd like to get more feedback before making the next one though, that way I can know which ones are highest in demand.

    Thanks for the support and feedback!
     
  24. Bantis

    Bantis

    Joined:
    Jul 1, 2010
    Posts:
    20
    The video is great! It's made it a real snap to get this going
     
  25. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Altered Reality - Thought you might find this interesting.

     
    Last edited: Aug 22, 2011
  26. b3y0nd3r

    b3y0nd3r

    Joined:
    Oct 5, 2010
    Posts:
    27
    Looks awesome. I'm looking forward for this Asset :D
     
  27. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Neat!
     
  28. Dzan

    Dzan

    Joined:
    Aug 23, 2011
    Posts:
    2
    Is there any way to analyse a track ahead of time, getting information on when peaks will occur on those settings? So not to play the whole track to get all the info first?
    For example to generate a level based on a track for the player to run through

    Thank you very much for your time. Hope my question was clear!
     
    Last edited: Aug 23, 2011
  29. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    As of right now, it is only for real time visualization of an AudioSource. As far as I am aware, Unity does not expose anything to "process" a song to get it's audio data over time. So, in order to do what you are asking, I would need to implement a system to process songs, store off the visualization data, and then add functionality to use that data. That being said, unfortunately, it is not something that is feasible in the near future. Sorry! :-/
     
  30. Dzan

    Dzan

    Joined:
    Aug 23, 2011
    Posts:
    2
    can you explain abit more about

    void OnValueUpdated(float current, float previous, float difference, float adjustedDifference);

    specifically the adjustedDifference part. Exactly how is it adjusted?
    Tried to find the answer in the code and readme...and failed :)

    Thanks!
    Dzan
     
  31. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    The adjustedDifference takes the difference value, and adjusts it to behave as if it had changed over a certain amount of time. The default behavior is to act as if it changed with the frame rate at 60 FPS, which would be a time period of 1.0f / 60.0f. This is done so that way if you have a large drop in frame rate, that you don't all of a sudden have a huge change in the difference value. So it is essentially normalizing it so that way each time it is passed in, it represents a constant amount of change.

    Hopefully that answers your question. An explanation is in the code for VisBaseController.m_fAdjustedValueDifference, but I'll make sure to update the documentation and code to contain that information where ever applicable. Sorry for any confusion!

    Let me know if you have any more questions.
     
    Last edited: Aug 28, 2011
  32. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    For anyone who is interested, I just finished the first pass of the Altered Reality website: www.alteredr.com

    You can this site for info on current and future releases, get contact info, post on the forums, and more.
     
  33. polytropoi

    polytropoi

    Joined:
    Aug 16, 2006
    Posts:
    681
    AlteredReality, I'm liking this a lot; very handy and fun to use. It was super easy to get the canned functions up and running as shown in the video. But I'm having trouble implementing the IVisModifierTarget interface - my C# is not so hot. Can you provide a snippet that shows how to implement the TargetModifier in a general way, to get the OnValueUpdated values into another script?
     
  34. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    I am out of town now, so I wont be able to reply with example code until tomorrow night. I will provide some example code on how to use it in a more detailed post tomorrow night. I just wanted to give you a quick heads up you know i got your request!
     
  35. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Sorry for the delayed response! I am back home and able to properly respond now.

    To make sure it is clear, the scripts VisTargetModifier and VisTargetModifier are meant to be used to have a single modifier or trigger interact with multiple game objects, instead of just the one they are attached to. So, once you have a script that implements IVisModifierTarget or IVisTriggerTarget, you need to add the object to the VisTargetModifier/Trigger. You can do this using the Inspector, or calling AddGameObject() on the script directly.

    Below are some example implementations of IVisModifierTarget and IVisTriggerTarget...

    Code (csharp):
    1.  
    2. public class ModifierTargetExample : MonoBehaviour, IVisModifierTarget
    3. {
    4.     public void OnValueUpdated(float current, float previous, float difference, float adjustedDifference)
    5.     {
    6.         //Do stuff here!
    7.     }
    8. }
    9.  
    Code (csharp):
    1.  
    2. public class TriggerTargetExample : MonoBehaviour, IVisTriggerTarget
    3. {
    4.     public void OnTriggered(float current, float previous, float difference, float adjustedDifference)
    5.     {
    6.         //do some more stuff here!
    7.     }
    8. }
    9.  

    I will also go ahead and add this to the documentation for Visualizer Studio so that it is more clear when reading about VisTargetModifier and VisTargetTrigger.

    Please let me know if this clears up your questions. And if you need any other help with anything at all, please don't hesitate to let me know!
     
  36. polytropoi

    polytropoi

    Joined:
    Aug 16, 2006
    Posts:
    681
    Perfect, thanks! Keep up the good work.
     
  37. John-B

    John-B

    Joined:
    Nov 14, 2009
    Posts:
    1,262
    Just wondering if this is strictly for listening to audio, or if it can be used to modify audio.

    I need to be able to either grab audio data or generate my own waveforms, manipulate the wave data, then play the new audio. It's that last step that has me stuck. Any way to use Visualizer Studio to set, rather than just get, audio data?
     
  38. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Visualizer Studio does not allow you to modify the audio in anyway. It simply allows you to use the audio that is currently playing, and to visualize that audio data in your game. Doing this is not currently in the scope of what I want to put into Visualizer Studio. Sorry!
     
  39. VJ_Anomolee

    VJ_Anomolee

    Joined:
    Dec 23, 2008
    Posts:
    40
    Hi. Just purchased your plugin + can't wait to really sink my teeth into it..
    However...I was very much hoping that Live audio input would be possible.

    Im already using this free plugin on the unify wiki http://www.unifycommunity.com/wiki/index.php?title=AudioInput to do simple visualizations.

    Can you please help me tie this AudioIn plugin into your package? I can do testing for you or anything else you need. Im sure its a very much requested feature and would probably help you sell more.

    Thanks for making this. I really appreciate what you have done with this package. Keep up the good work.

    ~All Best
    -VJ Anomolee

    ::::::http://VJanomolee.com:::::
     
  40. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Thanks for the purchase and the interest!

    That plugin is neat! Although, it looks like it only supports OSX, and it only returns a single float value for the current volume. Visualizer Studio utilizes some methods off of a AudioSource in Unity to get the FFT of the current audio input stream, so this plugin doesn't look like it maps to what I need to visualize the data at all. So it's not really possible to integrate this as far as I can tell.

    Do you know of any plugins that allow external input as an AudioSource in Unity?? If so, I could implement it with that.

    I am actually waiting until Unity 3.5 to implement this feature, as Unity is introducing direct support of microphones. So, you will most likely have to wait until 3.5 is released in order to have this feature. Sorry!

    In the mean time, if you have any questions about Visualizer Studio, feel free to let me know here or at VisStudioUnity@yahoo.com.

    Enjoy!
     
    Last edited: Sep 29, 2011
  41. VJ_Anomolee

    VJ_Anomolee

    Joined:
    Dec 23, 2008
    Posts:
    40
    Heya. Ya i just watched the Keynote wherein they announced support for "microphone in + webcam in".. : )
    so i guess i will just have to wait for 3.5 to get live input into VisualizerStudio then.

    Ok, so I watched your tutorial and setup a fresh project and scene, when i go to add the VisualControllers prefab All 3 'Vis Frequency Controller' 's attached to that prefab give me a "NO MANAGERS EXIST!" in the manager field..

    What happened?
     
    Last edited: Oct 4, 2011
  42. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Did you also add the VisualizerManager prefab?
     
  43. VJ_Anomolee

    VJ_Anomolee

    Joined:
    Dec 23, 2008
    Posts:
    40
    Oh whoops.... for some reason I had mixed up the Controller + Manager prefabs (putting them in opposite order)....
    Got it working now. Thanks for the quick response! I will post any further questions here. You have single handedly raised the bar of awesomeness for my VJ shows!
    Just in time too. I have a MAJOR performance coming up at this event http://dallasaurora.com
    Also if your curious, check out some of my past work:
    Glitchee: http://vimeo.com/19455573
    iSensorii: http://vimeo.com/9061977
    Dallas Museum of Art Performance: http://vimeo.com/7969711
     
  44. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Awesome! Keep up the great work! And let me know if there is anything else you need going forward.
     
  45. VJ_Anomolee

    VJ_Anomolee

    Joined:
    Dec 23, 2008
    Posts:
    40
    Ok another question:
    How would i tie in Visualizer studio to control settings within a camera Image Effect?
    I would love for extreme bass hits in the song to ramp up the chromatic aberration in my Vignette image effect script?
     
  46. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    In order to do this, the best way would likely be to implement your own Trigger, either deriving from VisBaseTrigger or VisBasePropertyTrigger. That would enable you to easily modify your image effect whenever there is a big bass hit. You can look at VisAddForceTrigger as an example of implementing VisBaseTrigger, or VisGameObjectPropertyTrigger as an example of implementing VisBasePropertyTrigger.

    Also, if you want to change your image effect every frame based off of the music, you could implement your own Modifier.

    Without actually working on your code, I can't really be any more specific as to how to do it, as I am unsure how your filter works. Hopefully that helps!
     
  47. Charbl

    Charbl

    Joined:
    Sep 28, 2011
    Posts:
    17
    Just bought this, but I'm having errors immediately on import :/

     
  48. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    I'm sorry you are having issues! I just tested the latest released version, and it imports just fine with no errors on my end. What version of Unity are you using? And are you running it on Windows or Mac? Any thing else that might be different on your end?

    Let me know, as I really want to help you figure this out! Thanks!
     
  49. VJ_Anomolee

    VJ_Anomolee

    Joined:
    Dec 23, 2008
    Posts:
    40
    Charbl,
    Have you tried deleting the entire VisualizerStudio folder from your project , Restart Unity, and reimport VisStudio from the asset store?
     
  50. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Charbl, did you ever get things working?