Topic: new engine: wtfx

First up, some bad news: I'm releasing this engine as source-only, because some of it's major features can't be simulated via an XM template. Sorry 'bout that...

Anyway, wtfx (aka "wavetable player with effects") is my latest attempt at creating some decent-sounding triangle waves on the beeper. While not perfect, it's quite an improvement over qaop and the like, I think.

Features:
- 2 channel wavetable mixing, 256 byte wavetables
- 4 volume levels per sample
- 17.5 KHz mixing
- tick-based effects (can change wavetables/pitches without having to set a new note)
- per-step tempo control

download
browse source

Enjoy! And thanks to introspec for stressing the importance of 8t output alignment wink

Post's attachments

wtfx-demo.tap 9.87 kb, 4 downloads since 2016-02-03 

You don't have the permssions to download the attachments of this post.

Re: new engine: wtfx

You are welcome, mate! It was worth it, right? smile

Very cool work. I am really looking forward for when you (or someone else?) actually create longer and more sophisticated tracks with this style of synthesis.

Re: new engine: wtfx

Thanks wink Yeah, definately worth doing the alignments for this one. I'm amazed how much it reduces noise in this case.

I'm afraid it'll be a while till someone makes a proper track with this. At least till I can figure out how to make 1tracker plugins (still haven't gotten beyond the "1tracker-will-simply-ignore-whatever-I-throw-at-it" phase), or number9 integrates it into Beepola.

4 (edited by Shiru 2016-02-04 15:52:13)

Re: new engine: wtfx

There is some issues with 1tracker for this engine. There is no means to make samples that long, so it either would be WAV import, or some interpolated sample - like, 32 positions by more than 4 levels that gets converted into proper sample internally. And a bigger issue, there is no FX tables concept whatsoever, so that would need to be added. A hacky way would be to make instrument share both wavetables and FX tables data, like, when cursor in the instrument column, you see only waveform editor in the instrument editor, and when it is in the FX table column, you see FX table editor in the instrument editor.

Well, and another issue that almost no one wants to use 1tracker anyway. So we likely just need another editor, a mix of Beepola/1tracker concepts (streamlined Beepola GUI with short patterns and stuff, but with plugin system, I'd propose JS this time around).

website - 1bit music - other music - youtube - bandcamp - patreon - twitter (latest news there)

5 (edited by utz 2016-02-06 12:48:24)

Re: new engine: wtfx

Yes, sadly the number of 1tracker users remains low, even though gotoandplay's new Phaser3 track might suck a few new people into trying it out. It's a shame, I certainly prefer the pattern-less approach. And I understand it would be rather messy to include wtfx. The same for Beepola, of course. I think the sample part could be solved in 1tracker by displaying a 16x16 hex matrix (plus WAV import), but the fx table part is indeed tricky. Another, somewhat smaller issue might also be that certain instruments (noise, kicks) need an alternate frequency table. Anyway, I don't have any real hopes to see wtfx in a tracker anytime soon.

Nevertheless, I've got to figure out how I can write plugins for 1tracker. It looks not even that difficult, seems rather I'm having some technical issues. I can copy and rename existing engines and they'll work, but as soon as I change anything in the code 1tracker will not "see" them anymore.

Btw just realized that I wasted a few cycles in the note data loader, will update in the next days.

Edit: Done. Optimized the data loader, and also replaced the noise samples, which had the volume levels wrong.

Re: new engine: wtfx

Regarding a potential new tracker, I just remembered an old idea I had when 1tracker came out.

The main disadvantage of the pattern-less approach in 1tracker is that with increasing song length, moving around in the song, keeping track of what is what, and changing large portions of the sequence becomes tedious and demands a lot of attention. So, how to solve this?

My idea is to have an additional visual representation of the sequence - not unlike the Beepola pattern sequence in terms of layout, but translated to the marker concept in 1tracker. Each section (ie. block of song data defined by two markers) will be numbered, and shows up as a block in the sequence layout. This is fluid, ie. when a marker is removed, the sequence view changes accordingly (numbering should stay to avoid confusion). Perhaps there should also be the possibility to name sections, or assign a color to them, for those structures the user decides to keep permanently.

Now, obviously this wouldn't quite work like a traditional pattern matrix, ie. blocks can't be used multiple times. But it would still offer several possibilities to the user:

- clicking on a block will move you to the according position in the song data.
- drag blocks to move them around in the sequence. Multiple consecutive blocks can be selected with Shift+Click.
- Clone one or several consecutive blocks by marking source blocks with Ctrl-Click, then right-click at the desired position to insert the clone.
- Cut sections by marking them like above, then Del. Freed up section numbers may be re-used by the auto-numbering.

Well, just some random ideas here. I have neither the time nor the skills to actually program something like this.