Skip to content
This repository has been archived by the owner on May 5, 2023. It is now read-only.

svenkeidel/hsynth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

   ___      ___     ___      ___     ___      ___
  /\__\    /\  \   /\__\    /\__\   /\  \    /\__\
 /:/__/_  /::\  \ |::L__L  /:| _|_  \:\  \  /:/__/_
/::\/\__\/\:\:\__\|:::\__\/::|/\__\ /::\__\/::\/\__\
\/\::/  /\:\:\/__//:;;/__/\/|::/  //:/\/__/\/\::/  /
  /:/  /  \::/  / \/__/     |:/  / \/__/     /:/  /
  \/__/    \/__/            \/__/            \/__/

HSynth is a purely functional library for audio synthesis. Its main features are

  • A arrow-based DSL for creating and composing audio signals
  • Optimization of audio signals with the causal commutative arrows technique [1]
  • Support for MIDI
  • Plotting of audio signals

Getting Started

  • The requirements to run HSynth programs is the audio server jack2.

    git clone github.com/svenkeidel/hsynth2.git
    cd hsynth2
    
    cabal sandbox init
    cabal configure -fexamples -fjack
    cabal install
    
    # Start the jack audio server
    jack_control start
    
    # Start the audio example
    ./dist/build/example-jack/example-jack
    
    

Roadmap

  • Creating a nice community that invents and shares new instruments
  • Making HSynth a great learning resource for digital audio synthesis

References

[1]: Liu, Hai, Eric Cheng, and Paul Hudak. "Causal commutative arrows." Journal of Functional Programming 21.4-5 (2011): 467-496.

About

Software Synthesizer in Haskell

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published