Skip to content

treat ALL instruments as wave-managed (like morph) -- make native wave engine go away. #117

@thenfour

Description

@thenfour

don't do this until we're ready to make our own playroutine (#74) because of the waveform slot allocation complexity

the reason: generated wave slots eat into the waveform pool.

  • reserve waveforms 0-3 for the 4 channels
  • we will keep our own waveform pool outside of waveform memory (that can hold many more waveforms)
  • during playback all notes, all sfx will have their waves written in realtime to wave memory.

2 channels playing the same sfx is actually troublesome... we don't want to duplicate sfx, or force sfx into a pool system, but we can't have them crossing channels because there will always be a scenario that causes glitches.


better idea: use waveform slots a bit like a very simple voice allocator. Not fixed waveform -> channel mapping. Keep a table of waveformIndex -> [sfx, channel].

  • during playback, find the best waveform index to use per sfx,chan, use it as your "target slot".

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions