Question (FMOD / Memory / Programmer Instrument)

Hi all, I have a question about memory usage and best practices with FMOD banks and programmer instruments.

I have about 30 heroes, and each hero has ~20 voice lines for showcase/demo. That’s about 600 voice files total. I’m considering two ways to set it up:

  1. Put all 600 voice WAVs into audio tables and pack them into one large VO bank, and use a single event with a programmer instrument to play lines by key.

  2. Create 600 separate FMOD events (one per voice) and assign each to a bank normally.

My main concern is memory usage. In my game, if a hero’s voice lines are not needed right now, I don’t need to play them. So I’m thinking of either:

  • Packing voice lines per hero (e.g., Hero01_VO.bank, Hero02_VO.bank, etc.) and load/unload per hero, or

  • Packing all voices into one bank and using a single event + audio table + programmer instrument to drive playback.

My questions:

  1. Which approach is more memory-efficient at runtime?
    Does using a single bank + one programmer instrument use less memory than having 600 separate events that might load sample data more often?

  2. In FMOD, does the programmer instrument setup only load metadata initially and load sample data on first play? I’ve seen hints that samples are only loaded when played, so large audio tables might not consume as much memory as many banks.

  3. If I were to create per-hero banks and load/unload them on demand instead of a single huge bank, would that help reduce memory further, or would the FMOD runtime still hold a lot of sample metadata in memory once a bank is loaded?

I’d appreciate advice or experiences from anyone who has designed a dialogue or VO system with dozens or hundreds of lines and needed to optimize memory.

Thanks!