Search Unity

Introloop - Easily play looping music with intro section

Discussion in 'Assets and Asset Store' started by 5argon, Jan 8, 2016.

  1. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    I have released version 5.0.0! The package changes considerably to comply with Unity standard going forward. Also there are breaking changes as you may have guessed from SemVer front number bump. You can read all the changes here : http://exceed7.com/introloop/CHANGELOG.html#500---2019-11-25

    Also you noticed that the site is completely new, it now sync with in-package documentation down to even CHANGELOG.md. API documentation in the site will always be up to date with C# XML triple slash comment from now on.
     
  2. bdavis1000

    bdavis1000

    Joined:
    Oct 4, 2013
    Posts:
    18
    Hi,

    This tool is really useful, thank you!
    I'm having a small issue with it:
    I have an audio mixer snapshot tied to an effect the user can trigger that interpolates pitch up to 300% on my main mixer, it appears that when the user activates this, the introloop player (which uses the same mixer) gets out of sync. For instance I have a ~45 second song set to a regular loop, if I activate my snapshot for about 10 seconds then disable it and wait, the song will hit the end of the file and sit there for another 10-15 seconds of silence before looping again.

    I'm wondering if there is a known way around this or if it's a bug? I suppose I could add a new introloop file for each song at 300% pitch but then I'd miss out on the interpolation effect.

    Thanks

    EDIT: posted in the discord and saw pitch shifting is unsupported. I found pausing, resuming, and then seeking to the last play head works well enough, it causes an audible jump but i only need to do this when the effect is turned off so its easy enough to hide
     
    Last edited: Aug 5, 2020
    5argon likes this.
  3. Abelius

    Abelius

    Joined:
    Nov 11, 2016
    Posts:
    37
    Hi there, I was wondering if I could use your plugin from Adventure Creator, but I guess some actions would need to be made.

    Would you consider adding this third party support as an additional package?

    Edit: I also use PlayMaker. So that would also be an integration option.
     
  4. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Hi! Unfortunately I don't have experience working with any framework-style plugin such as PlayMaker or Adventure Creator. I don't know how they abstract things well enough to confirm this for you. Sorry!
     
  5. Abelius

    Abelius

    Joined:
    Nov 11, 2016
    Posts:
    37
    Well, those "actions" are just scripts. PlayMaker has its own data types, but other than that they're just small pieces of code that do something in particular in Unity.

    I mean, when I say "integration" I just mean adding a separate package to add those actions to PlayMaker, and I think the same can be done with Adventure Creator.

    Nevertheless, I'd give a try to make them myself, if I can count with your ocassional support. Thanks.
     
  6. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Introloop 6.0.0 is live with several breaking changes.

    Notably, I removed all magical behaviour to Resources folder and requires many things to be more explicit rather than magic, including how you connect the template AudioSource.

    If you decided to upgrade, please read the new documentation or at least the changelog carefully! https://exceed7.com/introloop/CHANGELOG.html
     
  7. huulong

    huulong

    Joined:
    Jul 1, 2013
    Posts:
    224
    Hey, I've upgraded an old project to the latest version, and I'm now trying to implement vertically sliced (multi-channel) adaptive music.

    For this, I need all my channels / instruments to start exactly at the same time. PlayScheduled() does this, but unfortunately, Introloop doesn't provide direct access to it. The "startTime" parameter of IntroloopPlayer.Play is in fact the time sought on the audio asset itself, not the time at which playing will start. Looking at IntroloopTrack.cs, I see that we just start playing at this time:

    Code (CSharp):
    1. var dspTimeNow = AudioSettings.dspTime + smallPrepareTime;
    Would it be possible to override this with a custom time precomputed in advance, so I can pass it to all my instruments Play?

    I have no issue using introloop on a single channel, and I should be able to PlayScheduled() multiple instruments if they don't need introloop (but even if I skip the intro, there is still the issue of looping delay, which would break sync between instruments on further loops). But combining introloop and synchronized instruments is the tricky part.

    I have seen few solutions for adaptive music on the net, which I assume fix both the start and looping sync issue. I could use them so at least I can have multiple instruments looping in sync; but then, I will lose the intro (unless I reimplement this myself too, or reuse the adaptive music code for horizontal slicing, considering the intro as just another horizontal part).
     
  8. montyjack

    montyjack

    Joined:
    Jan 10, 2014
    Posts:
    43
    Hey I just got this but I've run into a problem- I load all my audio via a config file. It looks like there's no way to set the audio clips or loop boundaries via the API. Can I modify the code to expose those properties without breaking anything?
     
  9. hncarlos

    hncarlos

    Joined:
    Dec 21, 2012
    Posts:
    12
    Hi! Just bought the asset and it's really a time saver!

    So, I was wondering if it is possible (or if you can make an update) to cross fade the loop. I'm having a really hard time setting the boundaries. That's because I don't have proper audios and will be much more easier if we can enable a "cross fade loop" in the scriptable object, so when the music loops we got a more smooth transition when the boundaries are not properly set.