Skip to content

mpariente/q

 
 

Repository files navigation

Q-Logo Audio DSP Library

CMake Build Matrix

Introduction

Q is a cross-platform C++ library for Audio Digital Signal Processing. Aptly named after the "Q factor", a dimensionless parameter that describes the quality of a resonant circuit, the Q DSP Library is designed to be simple and elegant, as the simplicity of its name suggests, and efficient enough to run on small microcontrollers.

Q leverages the power of modern C++ and efficient use of functional programming techniques, especially function composition using fine-grained and reusable function objects (both stateless and stateful), to simplify complex DSP programming tasks without sacrificing readability.

Q is the host of some experimental Music related DSP facilities such as Virtual Pickups (Virtual pickup placement simulator) and Bitstream Autocorrelation (An extremely fast and efficient pitch detection scheme) the author has accumulated over the years as part of research and development, and will continue to evolve to accommodate more facilities necessary for the fulfillment of various Music related projects.

The library is Open Source and released under the very liberal MIT license.

Announcement

2021 is a year of rethinking. In March, this year, I thought about closing the source code of some of my Open-Source libraries in the first “Rethinking Open Source” post. Now, I think it is a mistake. At the very least, the pitch-detection code should remain open. And indeed, while I said that the pitch-detection source code will be closed by mid-April, it never happened. It is my gift to the world, and it shall remain open.

Please follow this link for more info: Keeping it Open: Rethinking Open Source Part 2.

News

  • 20 Octpber 2021: BACF is not going away: See announcement above.
  • 14 April 2021: Q v1.0 beta is released: https://github.com/cycfi/q/tree/v1.0_beta
  • 11 March 2021: BACF pitch detection is going away. See announcement above.
  • 4 February 2021: Posted Fast and Efficient Pitch Detection: Power of Two. Bitstream Autocorrelation (BACF) is fast and accurate. What can be better? Well, two BACFs in parallel!
  • 6 July 2020: Posted Fast and Efficient Pitch Detection: Revisited. A long overdue article about the technical details of BACF.
  • 25 June 2020: Pitch/period detection improvements now in master branch.
  • 19 June 2020: Pitch/period detection improvements in develop branch (for now until it becomes stable). Mostly bug fixes; esp. the ability to handle higher frequencies and bigger low-high ranges.
  • 18 May 2020: We're getting closer to a 1.0 release. Busy working on the docs, including small improvements on the example code.

Discord

Feel free to join the discord channel for discussion and chat with the developer.

Documentation

Documentation is work in progress. Stay tuned...

  1. Design and Architecture
  2. Setup and Installation
  3. Hello, World
  4. Hello, Universe
  5. Fundamentals

About the Author

Joel got into electronics and programming in the 80s because almost everything in music, his first love, is becoming electronic and digital. Since then, he builds his own guitars, effect boxes and synths. He enjoys playing distortion-laden rock guitar, composes and produces his own music in his home studio.

Joel de Guzman is the principal architect and engineer at Cycfi Research and a consultant at Ciere Consulting. He is a software engineer specializing in advanced C++ and an advocate of Open Source. He has authored a number of highly successful Open Source projects such as Boost.Spirit, Boost.Phoenix and Boost.Fusion. These libraries are all part of the Boost Libraries, a well respected, peer-reviewed, Open Source, collaborative development effort.


Copyright (c) 2014-2020 Joel de Guzman. All rights reserved. Distributed under the MIT License

About

C++ Library for Audio Digital Signal Processing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.2%
  • CMake 1.6%
  • Python 0.2%