How to write C++ audio processing applications? [closed] - c++

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm an Electronics and Telecommunications student, next to my graduation. I'm gonna work on a project that involves my knowledge about DSP, music and audio in general. I allready know all the basic mathematic instruments and all the stuff I need to manage it, such as FFT, circular convolution ecc ecc.
I want to learn C++ programming basically for one reason: it's very important in the professional world!!! And I think it's one of the most used to write applications working with audio, especially when it's about real time processing.
Ok, after this small introduction I would like to know first, which are the most used libraries to work with audio processing in c++?? I was longer looking on the web but i couldn't find a lo of working stuff. (I work under linux with eclipse CDT enviroment).
Then I would like to know if there are good sources to learn how to write some working code, such as for example how to write a simple low pass filter. Basically now i will not write real time applications, I would like to start from the processing of a WAV file, or even better an MP3 file, so basically on vectors of samples.
Let's say that basically for now I would like to extract the waveform from an audio file, and save it to a thumbnail or to a PNG image.
Ok, for now I think it's all I would need.
Any ideas, advices, libraries, books, interesting sources about that?
Thanks a lot in advance for any kind of answer.
Giovanni.

I would suggest for you to write your own WAVE file reader and writer in C++, without relying on external libraries. The WAVE format is fairly straight forward, at least if you only intend on supporting the most common wave files.
Then you'll have access to the audio data, which you can easily manipulate in C++. I would recommend starting by modifying the volume, the number of channels to calculating statistics on the audio. Creating a PNG of the audio waveform requires some more advanced C++ skills...

Checkout this link which will give you some information on the available (commercial and open source) audio editing softwares.
Some interesting open source audio editing tools which are written in c++,
Audacity
LMMS
Qtractor
Ardour
Rosegarden
C++ library for audio processing.
SndObj
The Synthesis ToolKit in C++
C++ Code and links related Filters and audio processing..
C++ code for Filter,Audio Processing
Code Guru,Low pass filter

I've used BASS with good results (there's a C/C++ API you can use).

Related

Play sound on certain speaker - c++ [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
Which free C++ audio library could I use to play sounds(mainly sines) on a certain speaker, in a stereo system ? I know I could create sounds that play only on the left/right channel, and then simply play these, but this doesn't help me. My target is to play a frequency on the left speaker, and another frequency on the right one.
Thanks in advance :)
You might give idea about your OS. Anyhow have a look at following list of libraries:
Free Sound and Audio Libraries - set of crossplatform OpenSource audio libraries.
CLAM - (C++ Library for Audio and Music) - is a full-fledged software framework for research and application development in the Audio and Music Domain. It offers a conceptual model as well as tools for the analysis, synthesis and processing of audio signals.
Kowalski - Description of projectWindows/OSX/iOS.
Soundtouch - is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files
BASS - is an audio library for use in software on several platforms. Its purpose is to provide developers with powerful and efficient sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via OS codecs and add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a compact DLL that won't bloat your distribution.
To use Stereo under Windows have a look at this sample project

Extracting page dimensions from a PDF with a C++ program [duplicate]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I want to be able to generate PDF output from my (native) C++ Windows application. Are there any free/open source libraries available to do this?
I looked at the answers to this question, but they mostly relate to .Net.
LibHaru
Haru is a free, cross platform,
open-sourced software library for
generating PDF written in ANSI-C. It
can work as both a static-library (.a,
.lib) and a shared-library (.so,
.dll).
Didn't try it myself, but maybe it can help you
I worked on a project that required a pdf report. After searching for online I found the PoDoFo library. Seemed very robust. I did not need all the features, so I created a wrapper to abstract away some of the complexity. Wasn't too difficult. You can find the library here:
http://podofo.sourceforge.net/
Enjoy!
If you're brave and willing to roll your own, you could start with a PostScript library and augment it to deal with PDF, taking advantage of Adobe's free online PDF reference.
jagpdf seems to be one of them. It is written in C++ but provides a C API.
It depends a bit on your needs. Some toolkits are better at drawing, others are better for writing text. Cairo has a pretty good for drawing (it support a wide range of screen and file types, including pdf), but it may not be ideal for good typography.
PDF Hummus.
see for http://pdfhummus.com/ - contains all required features for manipulation with PDF files except rendering.
LibHaru seems to be used by many.
A non-open source approach is: PDF Creator Pilot which provides more language options including C++, C#, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP and Python
muPdf library looks very promising: http://mupdf.com/
There is also an open source viewer: http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html
Try wkhtmltopdf
Software features
Cross platform.
Open source.
Convert any web pages into PDF documents using webkit.
You can add headers and footers.
TOC generation.
Batch mode conversions.
Can run on Linux server with an XServer (the X11 client libs must be installed).
Can be directly used by PHP or Python via bindings to libwkhtmltox.
http://wxcode.sourceforge.net/docs/wxpdfdoc/
Works with the wxWidgets library.

Free C++ library for drawing flow diagrams or Directed graph? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I want to embed a flow diagram drawing canvas in my program.
Users would possible to:
draw "nodes" (rectangle nodes is enough) and "edges" (preferable to be orthogonal) to connect
"nodes";
use mouse to drag nodes for layout and resize rectangle;
select one or multiple nodes by mouse to delete, copy, paste etc.;
select one or multiple nodes by mouse to edit predefined properties (volume, temperature, pressure etc.) for them.;
change color (optional)
save/read data to/from files.
After drawing, the program only needs to get the connection logic (in data structure like Directed graph) and properties for further calculation.
Is there any free or open source C++ library to do this?
(Not necessary for cross-platform, available in windows is enough.)
I recently was looking in to this and came across a few other options, along with Graphviz:
http://igraph.sourceforge.net/screenshots.html
http://networkx.lanl.gov/gallery.html
http://gephi.org/screenshots/
I ended up using networkx. I'm going to be playing with Gephi shortly to see what kind of data I can load in to it.
Dynagraph seems to have GUI Drawing included
http://www.dynagraph.org/
Dynagraph for Windows is a complete OLE graph-drawing application, allowing you to paste graphs into other documents, and paste documents into a graph as nodes.
If you're willing to commit to using Qt code for the graphical side of things, Qanava does a decent job of it. For dealing with graphs themselves (non-graphically) Boost Graph is quite nice.
It looks like you will have to do it. Qt will make you able to do whatever you need.
Have a look at the graphics view framework that offers a lot of already implemented features to manipulate your graph.
It may not be what you're after, but if you want a quick and dirty way to do graphical output from your code, you can pipe to gnuplot and send it commands. If the graphs are complicated, you want something like Graphviz, but if they are just little graphs, then the most difficult piece is linking the two, and gnuplot makes that really easy.

Learning about Computer Vision [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am really intrigued by the field of computer vision and the potential it has. Are there any examples (preferably implemented in .NET) which I can study along with a reference book?
Sample Vision Code
Vision Source Code - Carnegie Mellon University
Open Source Computer Vision Library - Sourceforge
Computer Vision Test Images
libsift - Scale-Invariant Feature Transform implementation
C# wrapper for OpenCV
Resources
Computer Vision Online - Computer Vision Online
Computer Vision "Home" - Carnegie Mellon University
Lecture on Vision Systems - Cardiff School of Computer Science
Lectures on Computer Vision Systems - The University of Nottingham Computer Science Department
Feature Detection - Wikipedia Article
Scale-Invariant Feature Transform - Wikipedia Article
Stack Overflow Questions
Where do I learn about Image Processing and Object Recognition?
Image Processing Textbooks?
Computer Vision References
OpenCV (Open Computer Vision) is the most popular library, and it has been wrapped for C#:
http://www.codeproject.com/KB/cs/Intel_OpenCV.aspx
Some discussion about this wrapper and the library in general is here:
http://coolthingoftheday.blogspot.com/2008/08/opencv-open-source-computer-vision-for.html
-Adam
While the OpenCV library is interesting to use, it doesn't offer a lot of transparency as you learn. If you're interested in actually learning about the field, I would recommend looking into low-level image processing libraries and implementing your own Computer Vision applications. Once you've coded your own basic CV applications, using the OpenCV library becomes a lot easier. I would suggest the following topics to advance quickly through the basics:
sobel operators for edge detection
trying your hand at color segmentation
reconstructing 3d information from stereo images using disparity maps
Here's a site with some good test images (http://www.cs.cmu.edu/~cil/v-images.html).
I also found a good resource of course slides that cover the majority of these topics at (http://www.cs.nott.ac.uk/~tpp/G5BVIS/lectures.html)
Happy hacking =)
Here's a large collection of code, toolkits, and apps you might find useful
http://www.cs.cmu.edu/~cil/v-source.html
You could start by looking at some of the similar questions on this site:
where-do-i-start-learning-about-image-processing-and-object-recognition
image-processing-textbook
computer-vision-reference
I can also look at these two sites:
http://www.cs.cmu.edu/afs/cs/project/cil/ftp/html/vision.html
http://www.cs.cf.ac.uk/Dave/Vision_lecture/Vision_lecture_caller.html
The sites provide information, tutorials and code examples, even though they are not actively maintained anymore.
There is the OpenCV project on sourceforge with a book that you can get as well. You can see it here. However, that is not a .NET solution it is C
I recommend Open Computer Vision Library. It's much spoken of and looks promising. It even has an O'Reilly accompanying book :)
The Open Computer Vision Library has >
500 algorithms, documentation and
sample code for real time computer
vision. Tutorial documentation is in
O'Reilly Book
I've done a bit of work with SIFT in the recent past and it seems to be a rather interesting modern algorithm for feature detection, which is one of the major (and perhaps more advanced) topics within machine vision. Someone has written a C# library for SIFT with a pretty nice example that can automatically stitch together separate photographs of the same scene. Admittedly, this isn't a very complete answer, and I can't recommend a reference book, but hopefully it should be of some use to you anyway...
The AForge.NET library is pretty good and is written in C#, with the source available here.
Supported features are:
AForge.Imaging - library with image processing routines and filters;
AForge.Vision - computer vision library;
AForge.Neuro - neural networks computation library;
AForge.Genetic - evolution programming library;
AForge.Fuzzy - fuzzy computations library;
AForge.MachineLearning - machine learning library;
AForge.Robotics - library providing support of some robotics kits;
AForge.Video - set of libraries for video processing etc.
The algorithms are maybe not as cutting edge/academic as some of the other answers but a lot of the engineering problems taken care of (getting video into your application, etc).

Open source PDF library for C/C++ application? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I want to be able to generate PDF output from my (native) C++ Windows application. Are there any free/open source libraries available to do this?
I looked at the answers to this question, but they mostly relate to .Net.
LibHaru
Haru is a free, cross platform,
open-sourced software library for
generating PDF written in ANSI-C. It
can work as both a static-library (.a,
.lib) and a shared-library (.so,
.dll).
Didn't try it myself, but maybe it can help you
I worked on a project that required a pdf report. After searching for online I found the PoDoFo library. Seemed very robust. I did not need all the features, so I created a wrapper to abstract away some of the complexity. Wasn't too difficult. You can find the library here:
http://podofo.sourceforge.net/
Enjoy!
If you're brave and willing to roll your own, you could start with a PostScript library and augment it to deal with PDF, taking advantage of Adobe's free online PDF reference.
jagpdf seems to be one of them. It is written in C++ but provides a C API.
It depends a bit on your needs. Some toolkits are better at drawing, others are better for writing text. Cairo has a pretty good for drawing (it support a wide range of screen and file types, including pdf), but it may not be ideal for good typography.
PDF Hummus.
see for http://pdfhummus.com/ - contains all required features for manipulation with PDF files except rendering.
LibHaru seems to be used by many.
A non-open source approach is: PDF Creator Pilot which provides more language options including C++, C#, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP and Python
muPdf library looks very promising: http://mupdf.com/
There is also an open source viewer: http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html
Try wkhtmltopdf
Software features
Cross platform.
Open source.
Convert any web pages into PDF documents using webkit.
You can add headers and footers.
TOC generation.
Batch mode conversions.
Can run on Linux server with an XServer (the X11 client libs must be installed).
Can be directly used by PHP or Python via bindings to libwkhtmltox.
http://wxcode.sourceforge.net/docs/wxpdfdoc/
Works with the wxWidgets library.