Skip to content

Discussion and development of web/wasm version #287

@falkTX

Description

@falkTX

For those unaware, https://cardinal.kx.studio/ is totally a thing now for some reason.
Also https://minicardinal.kx.studio/ for a mini/stripped-down version that loads faster.

There are some issues and things still to do.
Because this is for playground and testing and fun, and not all that serious, let's not open more than 1 ticket for web related things.
Everything web/wasm related should be on this ticket.

Stuff to do or implement:

  • audio input
  • touch events
  • clipboard (do fake internal one if not possible to expose in browser)
  • webmidi
  • host time controls (on menu bar, providing fake but valid BBT values)
  • intro message explaining what it all is, what to expect etc
  • detect incompatible browser setups and refuse to even load (noscript, no simd, no webgl2)
  • build libsndfile and fftw for extra module features
  • minimum gui size (CSS is enough?)
  • allow url parameters to tweak page behaviour, also load patches as base64 encoded string
  • test loading all modules and disable those with custom non-GLES2 compat code

Known issues:

  • Loading zst compressed project file fails to load patch.json
  • opening salamonis-mono-regen example patch triggers an exception
  • going full screen can mess up with the viewport size and coordinates
  • ctrl+a clears all text
  • audiofile player is missing regular audio support (only mp3 works)
  • audiofile and midifile inside ildaeil fail to show file dialogs
  • latest changes made performance in chrome worse?? firefox still fine..
  • compressed data assets > 50Mb
  • missing versioning to js, wasm and data downloads
    (so they are updated automatically when reopening the page as needed)

Stuff to fix or workaround:

  • apply high-dpi event offset
  • test and implement fractional scaling "high-dpi" (only supports 2x and 3x now)
  • prevent ctrl/cmd+ shortcut keys from going to the browser
  • prevent browser from zooming the page
  • oddities with mouse down and leaving browser window

Undecided:

  • host parameters
  • host cv
  • persistent storage (client-side browser DB)
  • bundle a few simple LV2 plugins (mda, caps, tap, etc)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions