1. Unexplained Sounds — Whistle

    My first experiment with using sped-up oceanic hydrophone recordings as a musical element, contrasted against the Hurdy Gurdy.

    This one is a currently (2014-04) unidentified sound (probably an underwater volcano erupting) known as “whistle”.

  2. “Grass is greener on the other side” effect of wanting something you don’t have, mainly because you don’t have it, is exceedingly common. The solution seems to be to experience as many things as possible.

  3. Tried Kerbal Space Program — surprisingly difficult, though I attribute that partly to the unclear design and pedagogy. Great fun though, and an immediate emotional connection with the characters — esp. the way my kerbonaut gets all excited when rocket’s launching.

  4. Javascript has no real Set or Dictionary implementation, which for someone spoiled by python’s set and dicts is rather frustrating. However, in leiu of the poorly supported js Set type, plain old objects can be massaged into acting as both sets and dicts:

    
    // Python: d = dict()
    var d = {};
    
    // d['key'] = 'value'
    d['key'] = 'value';
    
    // d.get('nonexistent', 'fallback')
    d.hasOwnProperty('nonexistent') ? d['nonexistent'] : 'fallback';
    
    // d.keys()
    Object.keys(d);
    
    // s = set()
    var s = {};
    
    // s.add(1)
    s[1] = true;
    
    // 1 in s
    s.hasOwnProperty(1);
    
    // Accessing all values in set:
    Object.keys(s);
    

    Notes: the in operator can be used to test membership, but will incorrectly return true for __proto__, as well as all properties up the prototype chain, i.e. all properties and methods of Object. hasOwnProperty is much safer to use.

    Similarly, the use of the ternary operator for get-item-with-fallback could in theory be replaced with d['item'] || 'fallback', unless of course the value stored was falsey, in which case the or will incorrectly return a truthier fallback.

  5. MTU has this wonderful explanation of the differences in physics between open/closed conical and cylindical bore instruments. Try some of the equations out in grapher or an equivalent!

    Open cylindrical bore (e.g. panpipes): y=sin(nx)

    Closed conical bore (e.g. saxophone): y=sin(nx)/nx

    where n is the harmonic e.g. 1, 2, 3, 4 etc. in both cases.