npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sfxui

v0.1.1

Published

A library of SVG user interface components for HTML based DAW's

Downloads

9

Readme

David Dependency Status npm package

Features/Goals

  • User interface components designed to be used in HTML/SVG DAW's (Digital Audio Workstation)
  • 100% SVG.js implementation, all components are extensions of SVG.js
  • Interactive elements with events exposed so you can build any kind of DAW
  • Prebuilt and customizable themes enable custom skinning of everything

Getting Started

As of right now, SVG.JS comes with SFXUI and is not installed seperately (that will change eventually).

  1. Install
npm install sfxui
  1. Since SFXUI extends SVG.js, some familariaty with SVG.js is required. Create an HTML document as you would with SVG.js and an element you can draw to.
<!DOCTYPE html>
<html>
<head>
  <title>SVG.js</title>
</head>
<body>
  <div id="drawing"></div>
</body>
</html>
  1. Create an SVG document
var draw = SVG("drawing").size(300, 300);
  1. Create SFXUI elements just as you would SVG.js elements. SFXUI elements are meant to be more robust than simple shapes so they will often need config objects.
var arc2 = draw.circularArc({
    min: -10,
    max: 10,
    value: 10,
    radius: 100,
    lineColor: 'blue',
    lineWidth: 10
})

CircularArc

Circular Arc's can have a minimum and maximum value, the middle of those two numbers would represent a arc that is a quarter of a circle. The image below represents a value that is 100% of the max.

Documentation

Coming soon.

To Do

  • [ ] Dial (composite circular arc with text showing value)
  • [ ] Envelope (simple multipoint curve editor)
  • [ ] ADSR Envelope (attack, decay, sustain, release)
  • [ ] Button (basic on/off state)
  • [ ] Much more

Why SFXUI?

Right now, you have no reason really, it's early days, go use NexusUI. NexusUI is a very robust direct SVG audio UI library, it does not however use SVG.JS. The goal is to provide the necessary library of DAW components that sit on top of SVG.JS so you can create the DAW itself with SVG.JS as well. This will enable a consistant UI layer to sit between your application code and something like Tone.JS (wrapper for Web Audio API).

Contributing

Sure if you like, use the npm scripts to get going, npm run dev serves up a watched html/dev/.html which is actually build/dist/sfxui.html. There are of course integrated tests as well in test/spec. Much more to come here as this library grows more mature.