Giter VIP home page Giter VIP logo

anthcp / basicdsp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from trcwm/basicdsp

0.0 2.0 0.0 1.63 MB

BasicDSP - A tool for processing audio / experimenting with signal processing

License: GNU General Public License v2.0

QMake 0.10% C++ 19.60% Makefile 2.49% C 68.33% Python 0.89% MATLAB 0.01% CMake 0.24% M4 0.16% Shell 6.84% Java 0.89% Batchfile 0.02% HTML 0.08% Objective-C 0.34%

basicdsp's Introduction

BasicDSP v2.0 24-2-2017

Documentation

Introduction

BasicDSP is an educational program that lets users experiment with simple Digital Signal Processing (DSP) algorithms. It compiles on Windows, OSX and Linux with QtCreator and the Qt framework.

Screenshot of BasicDSP

For every input sample, a script is run to calculate an output sample. Input samples can come from a sound card or several built-in sources, including stereo .wav files. It features an oscilloscope and a spectrum analyzer

BasicDSP can be used to explore DSP algorithms, such as:

  • Digital filters
  • Digital PLL design
  • Spectral analysis
  • Non-linear functions (waveshapers, frequency mixers etc)
  • Software-defined radio algorithms
  • Sigma-delta noise shapers

Script commands

  • mod1(x) - returns the remainer of a division by one.
  • sin1(x) - returns sin(2pix)
  • cos1(x) - returns cos(2pix)
  • sin(x) - returns sin(x), where x is in radians
  • cos(x) - returns cos(x), where x is in radians
  • tan(x) - returns the tangent of x, where x is in radians
  • tanh(x) - returns the hyperbolic tangent of x, where x is in radians
  • limit(x) - clamps x to be within -1..1
  • round(x) - rounds x to the nearest integer
  • sqrt(x) - returns the square root of x
  • pow(x,y) - returns x^y
  • abs(x) - returns the absolute value of x
  • atan2(y,x) - returns the arctangent of (y/x)
  • sign(x) - returns 1 if x>=0 and -1 if x < 0.
  • noise() - returns white noise with amplitude between -1 and 1.
  • trunc(x) - rounds x toward zero, returning the nearest integral value that is not larger in magnitude than x.
  • ceil(x) - rounds x upward, returning the smallest integral value that is not less than x.
  • floor(x) - rounds x downward, returning the largest integral value that is not greater than x.
  • choose(x,v1,v2) - returns v1 if x>=0 or v2 if x < 0

Variables

  • inl - left input channel
  • inr - right input channel
  • in - (left+right)/2
  • outl - left output channel of sound card
  • outr - right output channel of sound card
  • out - writes to both left and right output channels of sound card
  • samplerate - a read-only variable that contains the sample rate in Hz

Build instructions

  • Download and install QtCreator and Qt 5.5 (or a higher 5.x release).
  • Start QtCreator.
  • Load the basicdsp.pro project file.
  • Configure the Qt toolchain when asked, i.e. where to build the binary.
  • Change to a Release build if desired (option in lower left-hand corner).
  • Choose Build -> Build All from the main menu.
  • If all goes well, you should have a working binary.
  • Report bugs to @TRC_WM on twitter or send mail to: n.a.moseley email_at_sign gmail.com

basicdsp's People

Contributors

trcwm avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.