Goals: Control the external sensory environment.

Hardware:

Bose QuietControl 30

Bose QuietComfort 30 (pre-google assistant version)

Yes, both at the same time. Put the earbuds in, turn up noise cancellation all the way. Play the music through this set. Turn on the over ears, ensure the noise cancellation is on full, and put those on over the in-ears. Play no sound through the over-ears, just use noise cancellation. It's 700$ on your head, and it's worth every penny.

Using these together means you won't be able to hear yourself type on a mechanical keyboard. You won't hear people have yelling conversations across rooms with your head in the middle. You won't hear door slams and outside vehicles. It's a beautiful thing.

Face the wall - eliminate all peripheral vision. Literally add blinders to your glasses if you need to.

As of 2021-10-25, the second best choice is a combination of noise isolating (not cancelling) ear buds, and noise cancelling over-ears. This is probably a 90% solution to the Bose setup before, for 1/7th the cost. Neckbands are definetly the way to go, as they have true all day battery life and over ears can fit over them.

SoundCore U2 neckband Put this in with the default silicone covers. Use the full spectrum music and noise generation setup described below.

Soundcore Q20 over ears Just turn these on with noise cancelling enabled, do not play any sound through them.

The QuietComfort was no longer available. A comparable 70% solution are these COWIN E7 Noise Cancelling Headphones They block significant noise. They are not as configurable. The biggest downside is that they hurt the ears after 2 hours instead of 3+ like the bose. It has nearly the same effect though. It's been about a month living with these as the over ears every day, and the only issue is the discomfort.

A much cheaper alternative that will still let in significant outside noise and make your ears hurt after an hour: Howard Leight by Honeywell Sync Stereo MP3 Earmuff (1030110)

Put these in-ear plugs in first, then crank up the music through the earmuffs: Howard Leight by Honeywell MAX Disposable Foam Earplugs, 200-Pairs (MAX-1)

Find and play music:

What you are looking for is broad spectrum music. Examples are:

Best 8-bit electro gaming mix 2016 Do not browse youtube.com Anything electronic, dubstep, gaming etc. is known for inappropriate imagery.

or

Handel Organ Concertos

Both of which cover the low, mid and high range of frequencies in typical office environments, continuously. You may want the Goldberg Variations, but there is just simply too much empty space in the music to effectively drown out office environments.

Start your search tool. Search one of the url's above. Look at the information for the video. If it's a compilation, search for playlists with the song name, or the artist name, like:

//truecolor alchemist
//fadex
//organ concerto

Then play the entire playlists, and make a note of the non-vocal entires. You're looking for zero vocalizations within the music. 1 minute of words (including the repetition) per 45 minutes of non-vocal music. The Tron Legacy sountrack for example. is a great example of what you are looking for.

Select music by the following criteria: You're looking for pieces with a minimum of 100k views, with at least a 4 to 1 like to dislike ratio.

More ideas for finding music non-vocal broad spectrum music: Fadex is almost perfect in what you are looking for. Look up their web presence and check for entries on their spotify favorites, playlists, and punch those names into playlists on mpsyt.

Brown noise + Pink noise

Alternatively or additionally if required, add in brown (low frequency) and pink (high frequency) noise overlaid on top of the music. If you must have the Goldberg Variations, for example, start the goldberg variations, then add in:

Brown noise and Pink noise at about 60% music volume. It may seem loud at first, but it will blend in after a few minutes and you will realize later that it fills in the variability of office environment sounds resulting in increased focus.

Preferrably, use sox for audio generation with one of these options:

 play -c 2 -n synth [brownnoise|whitenoise|pinknoise]

Search tools

    # on Fedora core 29
    # Download and install conda3, make sure to use python version 3.7

    dnf install mplayer

    conda create --name mpsyt_py37 python=3.7
    source activate mpsyt_py37 
    pip install mps-youtube
    pip install youtube_dl

    # If that doesn't work, or it starts skipping files in playlists, or
    # otherwise won't play large swaths of youtube, you may need to
    # create an environment and load from source:
    # pip install --upgrade \
    #    https://github.com/mps-youtube/mps-youtube/archive/develop.zip

    Start mpyst in conda3 environment, then issue:
    >set player mplayer
    >set columns user:14 date likes dislikes views

Select music from by configuring the columns. You're looking for a minimum of 100k views, with at least a 4 to 1 like to dislike ratio.

As of 2018-02-05 13:54, you'll also need to change the download command to make use of chunk sizing to prevent youtube throttling. Start mpsyt then issue the command below (newlines are for readability)

  set download_command 
    youtube-dl --user-agent  \
      "Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0" \
     --http-chunk-size 10M
     --extract-audio %u -o '%F'

Phone configuration

Playing the music through cmus or mpsyt on the linux desktop is the best option. You still want podcasts and network connectivity through the phone as well. What you don't want is the various bose headsets announcing the calls and disrupting flow.

These instructions are for a 2016 era Motorola Moto E Black (2nd Generation) on Ting wireless running Android 5.1.

Connect the bluetooth headsets as Media audio, no phone audio, no contact sharing.

Get a google voice number For the regular cell phone number, set

Settings -> Sound and notification -> Interruptions

When calls and notifications arrive: Allow only priority interrputions

Priority interruptions: Events and reminders: on Calls: on Messages: on

Calls/message from: contacts only

Create a contact that has the google voice number called Google voice.

Now you give out the google voice number to everyone, and it will automatically forward the calls to the actual phone number. Tell all your important contacts that you are letting everything go straight to voicemail on the google voice number. If they must reach you immediately, dial the main number.

The phone will still light up, it will still vibrate for google voice calls. It will still light up for any other call that goes to the actual number as well, but only if it's already in your contact list.

Deploying

Use mpsyt as the primary music browser. As you find entries that meet the requirements, download them as 128k files. After downloading files, move them into subfolders. Change to each sub folder and run the conversion and sanitize names script to make sure they play on google music on android:

#!/bin/bash
#
# Convert downloaded files from mpsyt into mp3s
# Sanitize the filenames so they will play on google play
#
# Run this in the directory of downloaded files
#
for i in *.webm
do
ffmpeg -i "$i" -ab 128k "${i%webm}mp3"
rm "$i"
done

for i in *.m4a
do
ffmpeg -i "$i" -ab 128k "${i%m4a}mp3"
rm "$i"
done

for i in *.ogg
do
ffmpeg -i "$i" -ab 128k "${i%ogg}mp3"
rm "$i"
done

for i in *.opus
do
ffmpeg -i "$i" -ab 128k "${i%opus}mp3"
rm "$i"
done

for i in *.mp4
do
ffmpeg -i "$i" -ab 128k "${i%mp4}mp3"
rm "$i"
done

# From:
# https://odoepner.wordpress.com/2011/10/13/bash-script-to-\
#   recursively-sanitize-folder-and-file-names/

sanitize() {
  shopt -s extglob;

  filename=$(basename "$1")
  directory=$(dirname "$1")

  filename_clean="${filename//+([^[:alnum:]_-\.])/_}"

  # The idea is this is easier to read
  filename_clean="${filename_clean//\:/_}"
  filename_clean="${filename_clean//\!/_}"
  filename_clean="${filename_clean//\?/_}"

  filename_clean="${filename_clean///e}"
  filename_clean="${filename_clean///e}"
  filename_clean="${filename_clean///u}"
  filename_clean="${filename_clean///o}"
  filename_clean="${filename_clean///c}"
  filename_clean="${filename_clean///n}"
  filename_clean="${filename_clean///a}"
  filename_clean="${filename_clean///ae}"
  filename_clean="${filename_clean///oe}"
  filename_clean="${filename_clean///o}"
  filename_clean="${filename_clean///B}"

  if (test "$filename" != "$filename_clean")
  then
    mv -v --backup=numbered "$1" "$directory/$filename_clean"
  fi
}

export -f sanitize
find $1 -depth -exec bash -c 'sanitize "$0"' {} \;

Move them to a folder on an external micro-sd card, then put the card in the phone. Play directly from the phone over bluetooth to the Bose in-ears. Don't even connect the over ears to bluetooth anything, just leave them as noise cancelling. As you come across entries on the phone that don't meet the criteria, delete them directly on the phone.

Date Tags music