All Projects → ronaldschlenker → FluX

ronaldschlenker / FluX

Licence: GPL-2.0 license
A convenient way of processing digital signals in F#

Programming Languages

F#
602 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to FluX

Python-Adaptive-Signal-Processing-Handbook
Python adaptive signal processing tutorials
Stars: ✭ 80 (+370.59%)
Mutual labels:  signal-processing, audio-processing
Nara wpe
Different implementations of "Weighted Prediction Error" for speech dereverberation
Stars: ✭ 265 (+1458.82%)
Mutual labels:  signal-processing, audio-processing
RTspice
A real-time netlist based audio circuit plugin
Stars: ✭ 51 (+200%)
Mutual labels:  signal-processing, audio-processing
SpleeterRT
Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.
Stars: ✭ 111 (+552.94%)
Mutual labels:  signal-processing, audio-processing
Aca Code
Matlab scripts accompanying the book "An Introduction to Audio Content Analysis" (www.AudioContentAnalysis.org)
Stars: ✭ 67 (+294.12%)
Mutual labels:  signal-processing, audio-processing
RS-MET
Codebase for RS-MET products (Robin Schmidt's Music Engineering Tools)
Stars: ✭ 32 (+88.24%)
Mutual labels:  signal-processing, audio-processing
DTMF-Decoder
A Java program to implement a DMTF Decoder.
Stars: ✭ 28 (+64.71%)
Mutual labels:  signal-processing, audio-processing
python-soxr
Fast and high quality sample-rate conversion library for Python
Stars: ✭ 25 (+47.06%)
Mutual labels:  signal-processing, audio-processing
Sincnet
SincNet is a neural architecture for efficiently processing raw audio samples.
Stars: ✭ 764 (+4394.12%)
Mutual labels:  signal-processing, audio-processing
Klio
Smarter data pipelines for audio.
Stars: ✭ 560 (+3194.12%)
Mutual labels:  signal-processing, audio-processing
DDCToolbox
Create and edit DDC headset correction files
Stars: ✭ 70 (+311.76%)
Mutual labels:  signal-processing, audio-processing
Python Pesq
PESQ (Perceptual Evaluation of Speech Quality) Wrapper for Python Users (narrow band and wide band)
Stars: ✭ 144 (+747.06%)
Mutual labels:  signal-processing, audio-processing
Audio cat dog classification
Classification of WAV files from cats and dogs
Stars: ✭ 16 (-5.88%)
Mutual labels:  signal-processing, audio-processing
Surfboard
Novoic's audio feature extraction library
Stars: ✭ 318 (+1770.59%)
Mutual labels:  signal-processing, audio-processing
Edsp
A cross-platform DSP library written in C++ 11/14. This library harnesses the power of C++ templates to implement a complete set of DSP algorithms.
Stars: ✭ 116 (+582.35%)
Mutual labels:  signal-processing, audio-processing
Audio Reactive Led Strip
🎵 🌈 Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi
Stars: ✭ 2,217 (+12941.18%)
Mutual labels:  signal-processing, audio-processing
MusicVisualizer
A music visualizer based on the ATMEGA328P-AU
Stars: ✭ 30 (+76.47%)
Mutual labels:  audio-processing
ewtpy
Empirical wavelet transform (EWT) in Python
Stars: ✭ 52 (+205.88%)
Mutual labels:  signal-processing
FScape-next
Audio rendering software, based on UGen graphs. Issue tracker: https://codeberg.org/sciss/FScape-next/issues
Stars: ✭ 13 (-23.53%)
Mutual labels:  signal-processing
CNCC-2019
Computational Neuroscience Crash Course (CNCC 2019)
Stars: ✭ 26 (+52.94%)
Mutual labels:  signal-processing

Synopsis

Join the chat at https://gitter.im/FLooping/Lobby

FLooping is a signal processing library written in F#. It is designed for audio synthesis and effect processing, but can also be used for other purposes like simulation or control tasks (PLC). FLooping processes sample by sample, thus enabling to build low-level DSP structures such as filters, oscillators and other DSP building blocks.

FLooping simplifies the way in that state based functions are composed. Unlike in imperative languages where instanciation and evaluation of components have to be handled in user code, FLooping handles per-component state and evaluation of components for you. This leads to a way of describing signal flows where you can define components in-line and treat them as if they were pure functions.

Code Examples

How to Execute the Samples

  • Clone or download the source.
  • Restore paket dependencies: In the root folder, run the following command:
    • .paket/paket.exe install
    • (Windows cmd:) ".paket/paket.exe" install
  • The sample code below is a copy of the code in ./Demo.fsx
  • Open that file and send it to F# Interactive by selecting the code and press Alt+Enter.
#load @"./src/FLooping.fsx"

open Microsoft.FSharp.Data.UnitSystems.SI.UnitSymbols

open FLooping.Core
open FLooping.Audio
open FLooping.BuildingBlocks
open FLooping.IO


///
/// Evaluate all code lines until here and start playing with the code below.
///



// increment a counter by 1, starting with 0 and print it to the output.
loop {
    let! x = counter 0.0 1.0
    return x
}
|> toList 20
|> List.iter (printfn "%f")


// play a sin wave (5kHz) for 5 seconds
loop {
    let! x = sin 5000.0
    return x
}
|> playSync 5.0<s>


// modulate the frequence of a sawtooth wave with an LFO (low frequency oscillator)
loop {
    let! modulator = sin 5.0
    let amount = 0.05
    let! s = saw (1000.0 * (1.0 - modulator * amount))
    return s
}
|> playSync 5.0<s>


// "tatü-tataa": switch the waveform every 1/2 second
loop {
    // get environment
    let! e = env()
    let! v =
        if (e.samplePos / e.sampleRate) % 1.0 > 0.5 
        then tri 2000.0 
        else sin 2000.0
    return v
}
|> playSync 5.0<s>


// A feedback loop: Feed the value of a counter back to the next evaluation.
1.0 -=> fun last -> loop {
    let current = last + 0.1
    return { out=current; feedback=current }
}
|> toList 5
|> List.iter (printfn "%f")
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].