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

roland-mc909-utils

v1.0.1

Published

Roland MC-909 Groovebox Scripts Utilities for ACIDizing and preparing samples, BULK IMPORT

Downloads

24

Readme

Roland MC-909 Groovebox Scripts Utilities for ACIDizing and preparing samples | BULK IMPORT

Description

This is a set of scripts for ACIDizing and preparing WAV files samples, oneshots and audio loops for Roland MC-909 Groovebox sampler. These scripts solve the following issues :

  • no more need to import samples manually one by one or use third party tool like MC-909SampleEditor ! just copy all prepared samples to the SmartMedia card or the MC-909 internal storage, bulk process all your samples in one go !
  • no more need to set loop tempo manually on the MC-909 ! use ACID metadata from WAV files
  • no more need to set loop points manually on the MC-909 ! use sustain loop points from WAV files
  • no more need to set sample root key manually on the MC-909 ! use filename from WAV files

Requirements

  • Node v20 or above
  • TS-NODE to run the scripts as they are written in TypeScript
  • VSCode (recommended)

Installation

  • npm i or pnpm i to install the dependencies

Features

For samples loops

Support ACID chunk in wav files:

  • Set ACID beatmapped tempo
  • Set ACIDidized loop length in beats
  • Set sample tempo based on previous ACID metadata, no more need to set loop tempo manually on the MC-909 !

NB: ACID chunk metadata can be edited manually with audio editor like SoundForge

For samples oneshots

  • support standard WAV sustain loop points and convert them to Roland MC-909 loop points, no more need to set loop points manually on the MC-909 !
  • set sample root key based on filename, no more need to set sample root key manually on the MC-909 !

Sample preparation

  • Although the wavefile package support resampling and bitdepth reduction, they are not implemented in the scripts yet, samples for MC-909 must be 44.1Khz 16bits stereo or mono, so you must prepare your samples before using the scripts with a batch processing tool like SoundForge or EZ CD Audio Convert to prepare the samples to the 44.1Khz samplerate and 16 bit depth.
  • for oneshots samples, root key can be provided directly in the filename like this : BA MySample Cm.wav or BA MySample C.wav, the root key is extracted from the filename and set in the MC-909 sample metadata, supported root keys are : C, Cm, C#, C#m, D, Dm, D#, D#m, E, Em, F, Fm, F#, F#m, G, Gm, G#, G#m, A, Am, A#, A#m, B, Bm with C being a C3 (midi note 60), C# being a C#3 (midi note 61) and so one until B being a B3 (midi note 71)

Scripts usage

  • All scripts are located in ./scripts directory
  • Before running any scripts, edit SAMPLE_ROOT_DIR to the location of your samples that must be imported to the MC-909, the scripts will process all the samples in the directory and subdirectories.
  • The script can be run directly from the VSCode run icon or with the following command : or ts-node ./scripts/scriptname.ts or node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/scriptname.ts
  • a script report is generated at the root of this package : ./report.log

ACID Scripts

  • set-acid-beatmapped-tempo: set ACID beatmapped tempo
  • set-acid-loop-1beat: set ACIDized loop length in beats : 1 beat loop length
  • set-acid-loop-4beat: set ACIDized loop length in beats : 4 beats loop length
  • set-acid-loop-16beat: set ACIDized loop length in beats : 16 beats loop length
  • set-acid-oneshot: set ACID oneshot metadata
  • check-acid-loop-tempo : check ACID loop tempo for a targetted tempo, set TARGET_TEMPO_BPM to the desired tempo

MC-909 Scripts

  • 1-gather-stereo2mono : detect mono samples using 2 channels, they should be converted 1 mono channel for file size reduction as 2 channels are identical
  • 2-check-names : check if the samples are named correctly and respect the 16 characters limitation of the MC-909
  • 3-check-samples : check if the samples are 44.1Khz 16bits stereo or mono, which is the sample format used by MC-909
  • 4-count-sampleslots : count the number of sampleslots used by all the samples contained in the SAMPLE_ROOT_DIR

5-process-dir script

  • 5-process-dir : mains script to process all the samples in the SAMPLE_ROOT_DIR and subdirectories and rename the samples to smplxxxx.wav format where xxxx is the sample number of MC-909 starting at SAMPLE_START_INDEX, the folders and subfolders are processed by alphabetical order.
  • This script check wav format 44.1kHz/16bits and creates the Roland MC909 chunk metadata for each sample with
  • sample name based on the filename
  • for loops :
    • tempo based on ACID metadata, beatmapped or ACIDized loop length in beats
  • for oneshots :
    • write loop points based on WAV sustain loop points
    • write root key based on filename

DUMP CHUNK Script

  • dump-chunks: dump all chunks of a wav file to chunk.json format

Misc

Library and scripts based on the following packages:

  • wavefile https://www.npmjs.com/package/wavefile
  • uttori-audio-wave https://github.com/uttori/uttori-audio-wave
  • uttori-data-tools https://github.com/uttori/uttori-data-tools