Category Archives: nsound
Nsound rewrite 2016
The Nsound code base is old, (10 years! I can hardly believe that). Obviously I’m a much better developer today (:P), and there’s lots of things that need cleaning. Maintenance is becoming a burden, the build process is complex, it’s … Continue reading
Nsound broken on Ubuntu 16
I’m sad to report that nsound is broken by default on Ubuntu 16 until I get time to fix it. The main issue is that the default swig package is swig3.0, for some reason this breaks most things in the … Continue reading
Listening to Gravity Waves with Nsound!
Gravity Wave Signal Processing With all the excitement about LIGO and gravity waves, I’ve downloaded the raw GW150914 detection data for from here. The file I downloaded was 32 seconds sampled at 4096 samples per second. Next I reviewed some of … Continue reading
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
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#include <Nsound/NsoundAll.h> #include <Nsound/biquad/FilterBank.hpp> #include <iostream> using std::cout; using namespace Nsound; using namespace Nsound::biquad; int main(void) { float64 sr = 48000; // sample rate auto khz = 1000.0; Biquad bq0(sr, 0*khz, 1*khz, 9, 6, 0, 4); Biquad bq1(sr, 4*khz, 2*khz, 12, 9, 0, 4); Biquad bq2(sr, 9*khz, 2*khz, -6, -3, 0, 4); Biquad bq3(sr, sr/2, 8*khz, 6, 3, 0, 4); FilterBank fb(sr); fb.add(bq0); fb.add(bq1); fb.add(bq2); fb.add(bq3); cout << "-----------------------------------------------------------\n" << "FilterBank: fb.to_json()\n" << "-----------------------------------------------------------\n" << fb.to_json() << "\n"; fb.plot(); Plotter pylab; pylab.ylim(-7, 13); pylab.title("N=4, Butterworth"); Plotter::show(); return 0; } |
The … Continue reading
More YouTube Nsound Videos
I’ve posted several more videos about Nsound: Oscilloscope Moog VCF & DelayLine TapeDeck
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 … Continue reading
Nsound spotted in the wild!
Occasionally I search the web to find people using Nsound in their project, here are a few links: Algorithmic Music Composition Sonification of images Sonification of sand Europython 2014 MickSynth
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 … Continue reading
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:
1 2 3 4 5 6 7 8 9 10 11 |
import Nsound as ns b = ns.Buffer() b << 1 << 2 << 3 c = b.cbegin() for i in xrange(10): print float(c) c += 1 |
Which will produce the … Continue reading