Gravity Freakin’ Waves!

How lucky we are to live in this time, the first moment in human history, when we detected gravity waves!  It was only 4 years ago in 2012 when the Higg Boson was discovered at the LHC, 2 years ago we landed on a comet, 1 year ago we flew past Pluto. Today, we detected gravity waves!

This will open up a whole new era of astronomy, potentially detecting gravity waves across our universe, unobstructed by gas and dust. We could potentially even get hints about the big bang that are older than the cosmic microwave background (CMB), the oldest light in the universe.  Gravity waves could also provide new clues and limits for the quantum theory of gravity, perhaps leading us to the theory of everything!

Way to go LIGO and everyone who worked on this achievement!

Science wins!

Posted in science | Leave a comment

Nsound spotted in the wild

Today I found a simple Python app that uses a TK GUI that wraps around Nsound’s AudioStream to resample .wav files:


Link: ResampleGui


Posted in nsound | Leave a comment

Nsound::biquad::FilterBank Work In Progress

I’ve made some good progress on a biquad filter bank on this branch.  I’ve been able to replicate Figure 10 from this reference:


That’s a filter bank with 4 individual biquad filters, here’s the C++ code that produced the plot:

The program also produces this output:

This work is to enable a parametric equalizer application, where an audio sample can be loaded and filtered in real-time while the user adjusts the filter parameters.

I’ve been using the picojson library and it was been really easy to use.

Posted in nsound, programming | Leave a comment

Nsound spotted in the wild

Here’s another link to someone using Nsound:

Posted in Uncategorized | Leave a comment

More YouTube Nsound Videos

I’ve posted several more videos about Nsound:


Posted in nsound | Leave a comment

Nsound + Biquad + JSON

I’ve stared using github to host the nsound source code here.  I’m currently working on porting some of the code in this paper:

High-Order Digital Parametric Equalizer Design

I’ve ported most of the MATLAB code to Python and have made some progress on a C++ version here.  Here’s a plot:


This class will also be able to read/write JSON strings.  So one could load any IIR filter designed elsewhere and load it into the Biquad class.  Here’s a sample of the JSON for the filter designed above:


Posted in computing, nsound, programming | Tagged , | Leave a comment

Nsound spotted in the wild!

Occasionally I search the web to find people using Nsound in their project, here are a few links:


Posted in nsound | Leave a comment

Yahoo Mail Bug Can Lead To Loss Of All Messages

Yesterday while using Yahoo Mail, I was clearing out my Trash folder by clicking on the trash icon.  The usual popup dialog asking me to confirm showed up so I clicked Okay.

At the time, I had only 4 items in the Trash folder, so when the dialog was taking a long time to delete 4 items I started to get worried.  Once the busy dialog cleared, my INBOX was Empty!  I just deleted all my email from the last 15 years!

By clicking near the Trash Can icon next the either the Spam or Trash folders, a dialog box for deleting All Emails for the Inbox shows up!  It’s very easy to reproduce in Firefox 38.0 running on Ubuntu 14.04.  Just click near the icon and you will get a dialog to delete everthing out of your inbox:


I’ve posted a feedback request to Yahoo about the problem, we’ll see if they will fix it and restore my email.

Yahoo bug.

Posted in Uncategorized | Leave a comment

Nsound 1.0 Roadmap

I’ve been thinking about what would it take for a Nsound 1.0 release.  Below is a working outline of the things I’d like to have in 1.0:

  • Low Latency Real-Time Audio on Mac, Windows, and Linux
    • Already have low latency with portaudio + jack on Linux
    • Using jack through portaudio doesn’t work easily on Mac & Windows
    • So probabbly need to compile and link agains JACK directly
  • Tools for working in the frequency domain
    • I already have a firt cut at a spectrogram class
    • Need ways to easily manipulate frequency domain data
    • Then easily transform back to the time domain
  • Add some classic filters with reonance control (#63)
  • Add dynamic delay lines
  • Refactor the codebase to use C++11 and functions_with_underscores()

Do you want to join the project?  Send me an email.

Posted in nsound | Comments Off on Nsound 1.0 Roadmap

Nsound Circular Iterators

On the Nsound development branch, I’ve exposed the C++ circular iterators for the Buffer class to the Python module.  This code will eventually get released as part of Nsound-0.9.3.

Here’s how one might use them:

Which will produce the this output:

The function cbegin() returns a Buffer::circular_iterator object that can be dereferenced using the Python builtin float(). The iterator can be incremented using the += operator. Once the iterator goes off the end of the Buffer, it wraps around back to the beginning again, circular.

Posted in nsound | Comments Off on Nsound Circular Iterators