Recent Activity

Image
Image
Image
Image

It took a couple of more months than I had expected (as always), but today the back-from-the-dead-update for &bedit command line has a stable RC ready! GUI will still needs a lot of work, but you can download the command line version from itch https://kipt.itch.io/bedit. Command line version is free, as always.

Although new features are few, here's what's actually have been updated:

  • Changed a lot of lexing by making tokenizer, parser and instruction generator basically a FSM.
  • Separated build time data from runtime data by:
    • adding instruction serialization,
    • adding binary meta data section required by runtime.
  • Updated debugger (yep, BEdit has a debugger):
  • Changed instructions; removed 5, added 27.
  • Lowered memory footprint by actually deleting data.
  • Changed command line to be single-pass.
  • Added plotting (see last couple of posts).
  • Added 348 automated tests.
  • Re-wrote public API to basically be three calls to compile instructions, and three to execute the runtime.
  • Updated coloring for command line visualization.

All-in-all 30 427 lines added and 8 652 lines deleted compared to previous release.

Only thing I didn't have time for was to write an optimizer...

View original message on Discord
Image
Image

A bit of continuation on my previous &bedit post, but now I think the plotting is ready. This time showing a 3.5 million sample count plot with some UI (yes, the browser loads for 4-5 seconds before displaying). https://www.youtube.com/watch?v=HlzS8Evjxfc

Oh and it also has a light theme... if ppl actually use that.

View original message on Discord
Image
Image

BEdit on-going update; just got the plot html visualization looking at least not bad. This one is generated from a wav file containing a sine wave (note C5) with the following code snippet:

struct WaveFile
{
    RiffHeader header;
    FormatChunk fmt;
    
    DataChunk(fmt.blockAlign, fmt.bitsPerSample, fmt.channelCount, fmt.audioFormat) data;
    
    if (fmt.audioFormat == WaveFormatID.IEEE_FLOAT)
    {
        var plot = create_plot();
        
        for (var channel = 0; channel < fmt.channelCount; channel += 1)
        {
            for (var i = 0; i < data.chunkSize / fmt.blockAlign; i += 1)
            {
                plot_y(fmt.channelCount * plot + channel, data.samples_ieee[i].e[channel]);
            }
        }
    }
}

Still some way to go but progress!

&bedit

View original message on Discord
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image