Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Waveform generator interface #34

Open
4 of 15 tasks
HertzDevil opened this issue Jan 10, 2016 · 0 comments
Open
4 of 15 tasks

Waveform generator interface #34

HertzDevil opened this issue Jan 10, 2016 · 0 comments

Comments

@HertzDevil
Copy link
Owner

copied from http://0cc-famitracker.tumblr.com/post/137007965391/a-waveform-generator-interface:


An interface which exports the following functions: (see fa38a6e)

The wave editor in the tracker will no longer display the preset waveform buttons; instead, right-clicking over the wave editor reveals a "Generate waves..." option, which is a dialog that implements the following:

  • A parameter setter function using stWavegenParam;
  • A list control to perform the aforementioned functionality;
  • A function quantizing the generated floating-point waveforms;
  • Optional. Applying a master volume to the generated waveforms, or normalizing all generated waveforms;
  • A function applying a clipping behaviour to the generated waveforms;
  • Choosing a waveform preset generator;
  • Replacing the currently selected waveform with a generated one at a specific tick;
  • Optional. Previewing the current waveform selected by the tick as above;
  • Optional. Previewing all waveforms; (Waveform generators may not guarantee or enforce any specific wave index sequence)
  • Replacing all waveforms with the generated ones (must be supported by the underlying instrument type; N163 only, FDS not yet);
  • Optional. Applying a master frequency multiplier to the generated waveforms;
  • Optional. Applying a filter to the generated waveforms. (Said feature should belong in the waveform generator itself if desired; loses accuracy since CreateWaves already samples the waveforms)

The tracker should contain at least the following built-in generators:

  • Sine, no parameters;
  • Triangle, no parameters;
  • Sawtooth, no parameters;
  • Pulse, with 1 float parameter (pulse width);
  • White noise, with 2 integer parameters (tick count, seed).

The tracker should enumerate through DLL files located at the /plugins directory so that third-party developers may include their own waveform generators for all sound chips that support wavetables: N163, FDS, and future extensions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant