0
0

Sometimes it’s very useful if sample playback can be started at a specified point within the sample, rather than from the beginning. I can think of at least following uses for it:
[list=1:3uzltvzw]
[:3uzltvzw]If multiple instances of the same looping 3D sound are started simultaneously in the scene, randomizing the seek (ie the phase of the loop) avoids the common problems with such overlapping sounds: volume boost, flanging / echo / phasing issues.[/:m:3uzltvzw]
[:3uzltvzw]If there is an impact / collision sound, modulating Seek with Collision Strength sounds more varied than just modulating the volume. If the collision is softer, start the sample further down through: the sound gets shorter, and the sound’s start sounds different – which also helps reduce the needed number of random variations. (note: seeks can start at non-zero cross so a tiny ramp is needed at playback start to avoid clicks). Don’t believe me? Try making a timpani roll with a single timpani sample, first by re-triggering and modulating just the volume, then by Seeking, and you’ll hear what I mean![/:m:3uzltvzw]
[:3uzltvzw]If Seeking could snap to Beats and usable within Interactive Music, you could use four musical loops of the same length, and jump from one loop in the respective position within the other loop (for example, if the music change happens when the music has reached 0:21, the new loop will start playing from 0:21). This allows you to use a "layered approach" of sorts in the Interactive Music tab, which normally doesn’t allow the use of the Channel Mix effect.[/:m:3uzltvzw][/list:o:3uzltvzw]
AFAIK, FMOD can currently only do seeking within API level (ie only the programmer can access it). So…. why not expose Seek to the FMOD Designer users, and allow beat-aware seeking within music segments in Interactive Music? :)

  • You must to post comments
0
0

For the first two examples I think that the [b]Time_Offset[/b] effect will do this – you can hook this up to a physics parameter and use that to scale the start offset.

I’ve no idea if this is supported on all platforms though.

  • You must to post comments
0
0

Ah yes, that seems to be doing the job. Thanks! It’s a bit tricky though because the offset is in seconds, and the range is 0..60s.

For what I was shooting for, a floating point relative to the length of the sample (0.0 = start of sample, 1.0 = end of sample, 0.5 = halfway through the sample) could work better, it would also help against skipping past sample end if the value is too big (which can happen if the parameter is in seconds).

On the other hand, if you want to seek within music, the maximum value would need to be more than 60 seconds. Hmm.

  • You must to post comments
0
0

BTW, the user manual states:
[quote:298vj08t]Note: When using one-shot sound definitions, if the time offset value is greater than the length of the audio, no sound will be heard. [/quote:298vj08t]

However, my sound instance is one-shot, but using an offset value larger than the sample length still ‘wraps around’ ie if the offset is past the end, it will go back to the beginning + whatever offset is left.

BTW, is there any way to randomize the Time Offset within FMOD Designer, or does it need to be done via code? This would be useful in the case #1 I described in the thread start post.

  • You must to post comments
0
0

Heh, I was going to post about the lack of percentage time_offset – it’s especially annoying when you have multiple sounds in the definition but still need to specify a hard offset.

Not having the ability to randomize a parameter value on initialization is one of my personal FMOD peeves – it would give so much flexibility – but I’m pretty sure that this isn’t presently do-able without getting the parameter from code (I believe that this is in the feature requests wiki).

You can reduce the probability of really bad phase issues by adding a slight random trigger delay to your sound – something between 0-300ms – but obviously this doesn’t help if the sound needs to be tightly synced to on screen action.

Setting MaxPlaybacks to 1 would also work, but is probably not a good way to fix this. So would having a couple of different loops and randomizing between them (because there’s always [i:2p6vt7u8]loads [/i:2p6vt7u8]of memory to burn). ๐Ÿ˜‰

  • You must to post comments
0
0

[quote="Skaven":3goakc8p]If Seeking could snap to Beats and usable within Interactive Music, you could use four musical loops of the same length, and jump from one loop in the respective position within the other loop (for example, if the music change happens when the music has reached 0:21, the new loop will start playing from 0:21). This allows you to use a "layered approach" of sorts in the Interactive Music tab, which normally doesn’t allow the use of the Channel Mix effect.
[/quote:3goakc8p]
This use case is already supported in the music system through the use of shared timelines. Simply make all the segments involved share the same timeline, and when a transition happens the new segment will pick up where the old segment left off. The "shared timeline (stax soul)" and "shared timelines (vibes)" themes in the FMOD Designer examples project demonstrate this.

  • You must to post comments
0
0

Thanks for the feedback on the time offset effect and parameter randomisation – I have added these requests to our tracker.

  • You must to post comments
0
0

Thanks you for your time and efforts. ^_^

[quote="ben":3e3gkvfk][quote="Skaven":3e3gkvfk](for example, if the music change happens when the music has reached 0:21, the new loop will start playing from 0:21)
[/quote:3e3gkvfk]This use case is already supported in the music system through the use of shared timelines.[/quote:3e3gkvfk]
Ah, OK! Thanks. It was a bit hard for me to understand what Shared Timelines can or cannot do. I recall trying to use it earlier on, but something went wrong with it. I think the crossfades didn’t work properly. For ‘six levels of intensity’ I presume all the six segments need to be precisely the same length?

I need to figure out the best ‘link logic’ to make the six levels work. I guess it’s better to use "more than" condition than "between" condition to do the uplinks, and "less than" rather than "between" for downlinks, in case the "intensity" parameter moves too fast? And all six segments need to link to each other (1 links to 2, 3, 4, 5, 6; 2 links to 1, 3, 4, 5, 6, etc). Or what’s the best way to make music work like it does in [url=http://www.youtube.com/watch?v=hNaL6fIWzGc:3e3gkvfk]Jeff Schmidt’s example[/url:3e3gkvfk], but via the Interactive Music tab? Every segment linking to every other segment seems a bit complicated to set up. ๐Ÿ˜•

  • You must to post comments
0
0

[quote="Skaven":373any4h]For ‘six levels of intensity’ I presume all the six segments need to be precisely the same length?[/quote:373any4h]
Yes, this would be the best setup.

[quote="Skaven":373any4h]And all six segments need to link to each other (1 links to 2, 3, 4, 5, 6; 2 links to 1, 3, 4, 5, 6, etc). Or what’s the best way to make music work like it does in [url=http://www.youtube.com/watch?v=hNaL6fIWzGc:373any4h]Jeff Schmidt’s example[/url:373any4h], but via the Interactive Music tab? Every segment linking to every other segment seems a bit complicated to set up. :-?[/quote:373any4h]
Yes, it gets a bit complex if you try to link every segment to all the others. A good way to get around this is to use an empty "switch" segment to do the intensity switching. In this setup, each segment has a single unconditional link to the switch segment, and the switch segment has a conditional link to each segment. This means you only need two links per segment. The "sequence via parameters (retro)" theme in examples.fdp is a good demonstration of this.

  • You must to post comments
0
0

Thanks for the tip – I got it to work! :) One more thing, though: how do I get it to crossfade between the segments, but still seek to the corresponding position within the segment?

If I set the Theme Properties -> Synchronization -> Concurrent & On Beat, the music switches with a click. No crossfading is allowed as an option.

If It set the Synchronization = Sequenced, crossfade options become available, but I still can’t hear the crossfade (set to 1000 ms); the switch still happens with a click. ๐Ÿ˜• Does the empty logic node the transition "cycles through" cause this?

  • You must to post comments
0
0

[quote="Skaven":2yq3xe91]Thanks for the tip – I got it to work! :) One more thing, though: how do I get it to crossfade between the segments, but still seek to the corresponding position within the segment?

If I set the Theme Properties -> Synchronization -> Concurrent & On Beat, the music switches with a click. No crossfading is allowed as an option.

If It set the Synchronization = Sequenced, crossfade options become available, but I still can’t hear the crossfade (set to 1000 ms); the switch still happens with a click. ๐Ÿ˜• Does the empty logic node the transition "cycles through" cause this?[/quote:2yq3xe91]

I have the same problem, so I’m definitely interested in hearing an answer to this as well. :)

  • You must to post comments
Showing 10 results
Your Answer

Please first to submit.