Log In  


This is a tool to allow both time-domain and frequency-domain editing of the new custom sfx waveforms.

Cart #wave_designer-5 | 2024-04-01 | Code ▽ | Embed ▽ | No License
34

Note for existing users: use the buttons at the top-right to import/export to clipboard, it doesn't happen automatically on every change now.

Controls:

  • Mouse: click and drag to edit the wave directly (green line), harmonic magnitudes (blue bars in the middle), or harmonic phases (maroon/lavender bars on the bottom). Or click the play button to toggle preview playback, which plays sfx 1 on loop. The waveform is stored in sfx 0.
  • Left/right arrow: switch between a bunch of preset waves.
  • Tracker keys: play notes!

Buttons:

  • Play/pause
  • Undo and redo
  • Set phase to 0 or 0.25 (sin and cos buttons)
  • Keep odd harmonics only (odd button)

Features:

  • Time and frequency domain editing, always kept in sync.
  • Mouse drags are interpolated so fast drags work as expected.
  • Import/export your creation to the clipboard as a PICO-8 sfx string, using the buttons at the upper right. You may need to press ctrl-c/cmd-c on the web for this to work; on desktop it should be automatic.
  • You should be able to paste PICO-8 format sfx strings into the cart to load waves (including waves you've designed in this tool).
  • NOTE: if you are using the web version on a Mac, you will have to press some combination of both cmd-C and ctrl-C to copy, and both cmd-V and ctrl-V in order to paste, since the web version is really really finicky about how copy/paste works. You may get a stuck note when this happens.

Limitations:

  • If you want to change the preview sound (sfx 1) you have to edit it in the tracker. You can replace sfx 1 with some other looping sfx if you want, it just needs to use wavetable instrument 0.

Feedback is welcome!

34


Post-Release Comments
3

This is SO goood!


3

Lazy dev shorts for the win!


This is a very useful tool for experimenting. Does anyone know if it's possible to create an 'acid bass' synth using the new waveform editor? I've tried to get a squelchy bass sound without much success.


3

@8bit_gnosis Unfortunately I think that sound is not really going to be achievable with a static waveform. You need a frequency peak to sweep from higher to lower frequencies over the course of the sound. The closest thing achievable with a fixed waveform might be approximating the end state of the sweep, by steeply rolling off higher frequencies, adding a sharp peak right before the cutoff, and maybe slightly flattening out some waveform peaks to vaguely simulate some kind of saturation. But you're going to miss the sound of the filter cutoff quickly sliding down and picking out various harmonics along the way, which means it's really not going to sound right.

My acid bass experiments on PICO-8 have all used PCM.


1

@luchak Bummer. Thanks for the detailed explanation.

edit: You're the creator of RP-8! Those are exactly the types of bass lines I want in my game. I guess they still can't be replicated in a game cart. Awesome job with RP8 anyhow.


This is incredible Oo


1

WOW this is fantastic! and the two pico-view articles you wrote are incredibly helpful to understand what's going on and why


4

@8bit_gnosis: I read your comment and suddenly realized that you might be able to make the acid work by combining multiple waveforms and a custom SFX instrument that switches between them - made this:

[sfx]

...by grabbing the sawtooth, drawing a low pass with resonance peak - that is, picking a frequency, increasing the values around it, and decreasing values above it - and then doing it again with lower and lower frequency peaks:

It's not cheap, and you'd probably want to save some slots so you could make more variations on where the resonance sweep starts and stops, but it sounds kinda acid!


1

@packbat Brilliant! That's far closer to the acid sound I wanted than I ever got. Can't wait to play around with this. Thanks again!


1

@packbat That sounds great! Sequencing multiple custom waveforms with another sfx makes a lot of sense.



[Please log in to post a comment]