furrtek / Waimea

Compact chronogram editor for Windows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Waimea

Compact standalone chronogram editor for Windows using OpenGL, written in good ol' VB6. Inspired by Wavedrom.

Download v0.20 HERE.

Waimea screenshot

Why VB6 ?

  • I still live in 1999
  • Super fast dev cycle for GUI apps
  • Small executables
  • No framework, only requires a 1.3MB dll (msvbvm60.dll)
  • Rather slow execution, but here we only need fast drawing
  • Can't be worse than Java !
  • I believe that a web browser is a program to browse the web, not an application host
  • Not portable :( But should run in Wine :)

Also: No install, no registry keys.

Features

  • Markdown syntax very similar to Wavedrom's
  • Fast and clean OpenGL rendering
  • Drag-scroll for large chronograms
  • Rulers
  • Time measurements
  • Popup notes (pins)
  • Modifiable layout/appearence (not as flexible as Wavedrom)
  • To come: Export to image (and svg ?)

Usage

  • Holding Alt shows all popup notes (if enabled)
  • Right click and drag to measure time
  • Double left click to reset view to origin

Syntax

A wave name starts with name: and a string.

A wave definition starts with wave::

  • . (dot): Repeat last block (except for H and L, they become h and l`)
  • z : Hi-Z
  • x : Undefined
  • l : Low
  • h : High
  • L : Falling with arrow
  • H : Rising with arrow
  • n : Clock negative
  • p : Clock positive
  • N : Clock negative with arrow
  • P : Clock positive with arrow
  • = : Data (grey)
  • 0~5 : Data (colored)

Text for data zones starts with data: and strings separated by commas. A vertical ruler can be set with ruler:, a x position, and a color index. A note can be added with pin:, a x position, a color index, and a string. A wave group is started with group:, a string, and a color index. A group is ended with groupend. Groups can be nested.

Layout.txt format

A block definition starts with the DEF keyword followed by the letter assigned to the block. Any text after the letter is ignored, it can be used as a comment to describe the block.

The drawing commands follow on the next line. The currently supported commands are:

  • SP: Start Point. Required, defines the block's starting point for hookup. Takes x,y.
  • EP: Ending Point. Required, defines the block's ending point for hookup. Takes x,y.
  • L: Line. Simply draws a line. Takes x1,y1:x2,y2.
  • LS: Line strip. Draws multiples lines, one connected to the other. Takes x1,y1:x2,y2:x3,y3...
  • SH: Shape. Draws a filled polygon. Takes x1,y1:x2,y2:x3,y3...
  • LC: Reset color to line color. Useful for colored blocks (data).

Coordinates 0,0 are top-left. Sizes should be normalized to 16x16.

For example, drawing a filled square clockwise: SH 0,0:16,0:16,16:0,16

known bugs

  • Might crash on badly formatted layout.txt file.
  • Drag-scroll not well optimized, can be laggy on some setups. Will have to draw in a buffer and scroll the buffer instead of redrawing everything each time.

About

Compact chronogram editor for Windows


Languages

Language:Visual Basic 100.0%