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

[Feature Request] Wavetable length/height configuration & PSG Noise? #44

Open
N-SPC700 opened this issue Sep 14, 2024 · 1 comment
Open

Comments

@N-SPC700
Copy link

I'm requesting these features since I think it'd help the usability of the tracker more, at least in my opinion.

Noise generator

This one sounds silly. I know, I could just sample PSG noise from another tracker, or use drum samples, but with what I want to do, I don't think this will work. Since the tracker seems intent on being chiptune-like, I feel like it'd only be fitting. Simultaneously, I feel like I'm missing something myself, since I combed over the documentation and it surprised me that there was no mention of PSG noise being a viability in the program. I think a simple one could copy the noise pattern in the AY-3-8910, TI SN76489 (or its Sega variant since it differs) or C64, or something else. Maybe it could even be configured. Ultimately I think this would be a nice addition, since not everyone can/wants to break out the samples for a simple hihat sound.

Configurable wavetable lengths

The reasoning for this one is because Wavetracker uses exclusively 64-step long and 32-high wavetables, which matches no existing PSG. While this would be fine, it makes converting existing wavetables a lot harder. The feature being requested would give wavetable entries in the wave banks a configurable height and length (obviously to something reasonable for the program).

For example, if I wanted to convert a Gameboy wavetable, or a 32-step long N163 wave, I currently need to:

  1. Double every single value each wave has (Wavetracker is effectively 5-bit, going to 32) since the GB and N163 are 4-bit.
  2. Double each wave entry somehow. There are two options to tackle this:
    • First option is to simply paste the wave in twice. This causes it to play an octave higher than it needs to, meaning it cannot play bass frequencies as well.
    • Second option is to manually duplicate every step of the wave, which lets it play at the desired octaves without compromising the low end.
  3. An extremely unreliable and sometimes inaccurate method is to attempt porting the wave merely by eye and hoping the result is accurate enough.

However, the wave length/height process varies from chip to chip, here are some examples:

  • N163 can do waves all the way to 256 in length, with 64 being the most easily converted, but others require stretching or being crunched down
  • Konami SCC is 256 tall, and 32 in length, meaning that dividing the values is necessary, and then stretching that result.
  • PC Engine/Turbografx-16 is the easiest, since it merely needs the waves stretched or doubled, as it has the same wave height, but not the same length

In short, while converting from all of these is doable, it is extremely tedious to do, and I think configurable wave lengths would also be useful for those that make new waves, too, since 64x32 waves are rather overkill in some cases.

@Arg-xz
Copy link

Arg-xz commented Sep 15, 2024

Yeah, both the PSG Noise and Wavetable length and height config would be really nice to have. It would be great to have PSG noise so I wouldn't have to grab samples just for drums.

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

No branches or pull requests

2 participants