Skip to content
This repository has been archived by the owner on May 30, 2022. It is now read-only.
/ 4x4JS Public archive

Four to the floor JavaScript - JSConf.EU 2013 talk

Notifications You must be signed in to change notification settings

sole/4x4JS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Four to the beat JS

"In the era of information overload, simple slides just don’t cut it.

Brace yourselves, for you’re going to experience a never-seen-before JavaScript talk. Or rather, a meta-talk: a continuous, seamless display of rich media content where I’ll describe how you can build this kind of engaging, hypnotic talks that involve the speaker, audio, visuals and a good dose of beats. All it takes is a little bit of rhythm."

This is the software I used for my JSConf.eu talk. To run it you need to fire up the node.js server but before that you need to install the dependencies. So...

  • clone
  • cd to the dir
  • npm install
  • cp local.json-dist local.json
  • node app.js

In another tab:

  • watchify public/js/main.js -o public/build/bundle.js

Or

  • browserify public/js/main.js -o public/build/bundle.js

And open http://localhost:7777 in your server

Controls

  • Left/right arrows to move back and forth
  • T toggles transport bar
  • G toggles gear GUI
  • F toggle fullscreen

To do

There are many things I wanted to do and might do in the future but I didn't have to do in little more than a month for preparing this talk :-) So let me share with you my to-do list:

  • twitter thingie

  • bajotron release weirdness

    • if it doesnt reach sustain (?) then on release goes directly to 0 (?)
  • use more controls from quneo

  • adsr per sample in porrompom for smoother decays

  • on screen piano keyboard - try notes without connected controller

  • filters? better sound.

    • with envelopes?
    • renoise curves -> envelopes points set value immediately
  • sampler instrument (different frequencies)

  • gfx gear

    • fft / spectrum
    • things that display notes - listening to note on etc
      • more abstract like those youtoube videos representing classical scores
      • cubic player style vis - note dots etc
  • vocoder

  • disconnect on note offs?

  • refactor defining Gear interface ("GearBase" class) (?)

    • Our 'when' is relative - is this good?
      • It becomes absolute when used with final audio api objects (eg in oscillatornodes). So far, in:
        • OscillatorVoice
        • SampleVoice
        • ADSR
    • Common methods
      • noteOn(note, volume, when)
      • noteOff
    • Common properties
      • output
        • (almost) every gear component output is a gain node
          • Allows for changing the gain amount of that node, automating it, etc (?)
        • also easy connection: someComponent.output.connect(audioContext.destination);
      • input (in some cases --> analyser node)
  • Orxatron -> npm dependencies: eventdispatcher

    • make it use the eventdispatcher packaged in node_modules --as dependency in package.json
  • Gear -> npm dependencies: eventdispatcher

  • gui -> how to test properly ?

  • xtag - things in templates don't seem to be having accessors and stuff initialised properly but seem to work OK if instantiated on the fly?

reusing

Colchonator -> Bajotron, ADSR Bajotron -> SampleVoice, NoiseGenerator, ADSR Porrompom -> SampleVoice

Gear

  • Bajotron
  • Colchonator
  • Porrompom
  • Mixer

'submodules'

  • ADSR
  • SampleVoice
  • NoiseGenerator

About

Four to the floor JavaScript - JSConf.EU 2013 talk

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published