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

@jsmidi/cli

v0.0.8

Published

JSMidi command line interface

Downloads

10

Readme

JSMidi CLI

The @jsmidi/cli is a command line tool for creating new JSMidi Projects. It creates the files and configurations needed to work with JSMidi and the JSMidi Atom Plugin.

Installation

Globally install @jsmidi/cli using the npm package manager.

$ npm install -g @jsmidi/cli

Usage

To create a new JSMidi Project run the following command where "myproject" is whatever you would like to name your project.

$ jsmidi new myproject

You should see the following output...

./myproject/jsmidi.config.json created
./myproject/.eslintrc.json created
./myproject/Live.js created
./myproject/.gitignore created
./myproject/Project.js created
./myproject/package.json created

Once your new project is created we need to install our dependencies.

$ cd myproject && npm install

NOTE: Creating a new project will include instructional comments in the Project.js and Live.js files. To create a new project without those comments use the --clean flag.

$ jsmidi new myproject --clean

Project Structure

Below is a breakdown of the project structure when you create a new project.

|-- lib
|-- .gitignore
|-- .eslintrc.json
|-- jsmidi.config.json
|-- package.json
|-- Project.js
|-- Live.js

Project.js

The Project.js file is where we setup the loop, tempo, define instruments and add those instruments to JSMidi tracks.

Live.js

The Live.js file is where we "play" our instruments and live code.

Lib Folder

The lib folder is where we can require additional files in our project. For example since you can extend JSMidi Instruments you may want to create a drum and add your own functions like a fill, symbol crash, etc. You can add those files to the lib folder and require them without relative paths.

// Notice there is no relative path.
const drums = require('lib/drums');

Config File

The jsmidi.config.json file is where we store information we need when building a JSMidi Project. If for some reason you would like to change the name of the Project.js file, the Live.js file or the lib folder you can make those changes in the jsmidi.config.json file.

This file is also required for the JSMidi Atom Plugin to work.

{
  "live": "Live.js",
  "project": "Project.js",
  "lib": "lib"
}