GithubHelp home page GithubHelp logo

inasb's Introduction

iNtelligent Audio Switch Box

WIP: this project was developed in November 2014, and has yet to be updated to the current version of JUCE

Authors

Brecht De Man, Tom (Artyom) Arjannikov, Nikolay Glazyrin, Simon-Claudius Wystrach

iNASB is actually a clever acronym of the creators' initials: Nikolay, Artyom, Simon and Brecht!

Background

iNASB is the result of a last-minute idea and a random meetup of four people at the the HAMR2014 hackathon, organised by Lab Rosa at Columbia. It took place during the weekend of 25-26 October at Academia Sinica’s Institute of Information Science in Taipei, Taiwan, immediately before the 15th ISMIR conference there and consisting entirely of conference delegates. See http://labrosa.ee.columbia.edu/hamr_ismir2014/ for more information.

Original page: http://labrosa.ee.columbia.edu/hamr_ismir2014/proceedings/doku.php?id=intelligent_audio_switch_box

Original repository: https://bitbucket.org/bogonetic/inasbv1

Instructions

iNASB is a VST or Audio Unit plugin that routes an audio signal to one channel or another, based on the characteristics of the signal. It automatically learns what channel to switch to during a training stage, when the audio to be associated with the given channel is recorded. The plugin is ready to use after both channels have some audio associated with them.

An example usage is the augmentation of an instrument performance by providing control over any kind of audio effect by parameters embedded in the performance itself, such as pitch, level, or timbral features. E.g. a guitarist who desires harmonic distortion only on the higher notes, a vocalist who wants a long echo on the really loud hits, or a trombone that needs a flanger on slides between notes. It can also be used in less creative, more functional ways to control level, dynamics or spectrum.

Plugin screenshot

Parameters

  • GAIN Amplification level of the input signal.

  • THRESHOLD The value of discrimination between channel A and B.

  • HYSTERESIS A noise gate that perpetuates the current state.

  • INERTIA Determines how fast to apply parameter changes, for example, a high inertia setting will create a sweeping effect.

Learning

During the learning stage, four spectral features (centroid, flatness, crest and roll-off) are extracted from training examples. They are associated with one of the channels and stored in memory. The user would toggle "Train A" or "Train B" button and then produce sound for the plugin to learn from. The "Finish" button completes the training stage, and the plugin becomes ready to route the signal.

During the playback mode an algorithm finds the training example(s) nearest to the features extracted real-time from sound and the corresponding class routes the sound signal to the appropriate channel.

Dependencies

iNASB is a VST plugin or Audio Unit created with JUCE and the VST SDK.

Awards

For this hack, our team received the prize for 'Best Code' - one of three HAMR trophies. The trophy is a hammer (get it?).

Plugin screenshot

inasb's People

Stargazers

Iver Jordal avatar Dimitri Diakopoulos avatar Nick Arner avatar

Watchers

 avatar James Cloos avatar Brecht De Man avatar Simon-Claudius avatar

Forkers

jboss001

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.