Waveform Editor

This forum is currently in read-only mode.
From the Asset Store
Supports 1D, 2D, 3D arrays. Import and export arrays in JSON format
  • This application lets you compose a waveform. You don't create a wav-sample, nor does it produce any sound. You are creating one cycle or period of a waveform, that will be used in synths like AM Freehand, or for wavetable synthesis.

    You design your result with up to 5 waveforms that you combine with mathematical operators. For synths you may export the result to a text-file with a newline-seperated list of values. Those files can be exported directly to synths like AM Freehand and many others.

    <img src="http://dl.dropbox.com/u/11182740/construct/WaveEditScreen2.png" border="0">

    (1) The Menu

         - Open a project

         - Save a project

         - Take a snapshot of the current sliders

         - Apply a previously taken snapshot to the current sliders


    (2) Tooltip Window

         Shows some hints as well as the path of an opened, saved or exported project.


    (3) Resulting Waveform

         This waveform is the result of the combination of all the composing waveforms below.

         - Normalize switch, if inactive result is clipped

         - DC balanced switch, if active result will be cleaned from DC offset

         - Select 1 of 4 different export sizes (as samples per cycle)

         - Export waveform button, exports to raw text (newline seperated)


    (4) Composing Waveforms

         These waveforms are the building blocks for the resulting waveform. Combine them in any way you like. If you want one waveform to not have an effect to the result, just set it to 0 amplitude, 0 DC offset and choose the add-operator.

         - Select 1 of 5 different forms: sine, square, saw, triangle and seeded noise

         - Operator button: Click to toggle between add, subtract, multiply, divide, min and max


    (5) The Parameter Sliders

         Here you may change the parameters for the connected waveform. Choices are frequency, phase, amplitude and dc offset.

         - Click and hold knob to slide through the values


    (6) The Preview

         Here you will see all waveforms that you've set to "visible". The preview works with a resolution of 512 samples for that one cycle. When exporting in a different size, the exported waveform may look more or less detailed, depending on the export size. Also, the seeded noise is only consistent with the first value, when exporting to a different size.

    (3) and (4) share the following buttons:

         - Visibility, click to toggle the visibility in the preview on or off. Note: You may change parameters while a waveform is invisible.

         - Color, click and hold to open the color palette and choose another color

    The waveform editor comes with a selection of project files for you to explore.

    Download: waveform editor.rar

    Comments welcome.

  • Wow, nice one! Hard to believe you made this in Construct. It's along the lines of what I'd like to do with Construct 2, creating a modular audio platform of sorts.

    Really hope to see a robust and widely accepted audio API for the web soon, then integrated in C2.

  • I like the interface. To bad the sounds generated cannot be played from within the interface.

    In anvil studios the waveform can be edited by mouse to shift the frequency over the duration of the note. If you used the frequency thingy in xaudio, couldn't you make something similar?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I think, I have to stress the first paragraph of the opening post:

    "You are creating one cycle or period of a waveform, that will be used in synths like AM Freehand, or for wavetable synthesis."

    You are not generating a sound, no sample. Although the shapes may look like sound, they just describe one cycle of a sample-rate- and time-independant waveform. Such output will usually be recalculated to a bandlimited wavetable (as in AM Freehand) to be used as an oscillater which in result will produce sound. If you would just listen to the raw cycle it would sound a bit awful, with aliasing.

    The editor has a resolution of 512. That means, 512 informations describing one period of the resulting wave. Let's put in some time and frequency information:

    If the sample rate of the target instrument is 44100 and the frequency to be played 440 hz (standard pitch A) then those 512 informations represent 2.272727273ms or ca 100 samples of the sample rate

    Played at 880 hz (one octave higher), they represent 1.136363636ms or 50 samples

    Played at 220 hz (one octave lower), 4.545454545ms or 200 samples.

    But it is exactly the same waveform at all frequencies. And the generated waveform can be used with any sample rate/frequency combination, of course. The 44100 were only an example.

    That's why they are not played. It would need a wavetable synthesizer with conversion to bandlimited waveforms over the frequency spectrum built into the app, to make them produce sound.

    It is much easier to run some synth like AM Freehand (yeah, I named it quite often, but it is a fantastic and free VST instrument, and I didn't want to advertise any commercial one) parallel to the editor, quickly export and load into the synth and so on.


    If you used the frequency thingy in xaudio, couldn't you make something similar?

    When not working with waveforms as described above, but with short samples, you can do a lot more than that. Just look at this very rough, quick demo of Da Capo, a sequencer originally meant to assist in music based games, but abandoned a few months ago. Use the play button to play a melody sequence (entered as midi notes behind the scenes) while interactively changing bpm, base tune or instrument. And to prove that it really isn't some prerecorded melody you might even want to use your own instrument in .wav format. Just make sure, it represents standard pitch A (A3 on most samplers/DAW). But remember, it is not the next Logic/Cubase/Reaper, it is a skeleton only (it not even uses a simple adsr envelope, it just plays the samples as they are, plus frequency shifted)


Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)