Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7996805
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T14:47:51+00:00 2026-06-04T14:47:51+00:00

Title says all – what library(ies) or code or whatever does a digital audio

  • 0

Title says all – what library(ies) or code or whatever does a digital audio workstation written in C++ (like Ableton) use to render its graphics and play audio?

After finding out that C# + XNA is a horrible choice for computer-based daws — the metronome hardly ‘hit’ correctly after I developed it, and when I fixed that, it would go off beat — I decided that now I would switch to C++, due to the fact that C++ is an intermediate-level language, while C# is high-level; and also because of cross-platform compatibility.

After several (with extremely varied terms) Google searches, I was not able to find data on this subject. Could anyone give me the information that’ll help me begin writing a DAW?

If you’re wondering, I’m writing a DAW mainly because I need one and I like the idea of having one that I can customize, change what does what and etc; and also for fun. I tend to write really advanced and high-level projects like these for fun, although I hardly finish any… 😉

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T14:47:53+00:00Added an answer on June 4, 2026 at 2:47 pm

    First off, it is perfectly possible to write a stable metronome and handle timing correctly any language. Plenty of basic web-based DAWs are written in Java and Flash, for example. Today’s Google (moog) doodle runs in HTML5/Javascript (if you have chrome). Higher-level languages tend to give you less control over things like garbage collection, which usually means you cannot achieve as low latency, but timing should never be an issue unless you are doing something wrong.

    Now, to answer the question:

    Most professional, commercial DAWs use their own libraries to interface directly with the APIs that the system provides. For audio, on linux, this means OSS or Alsa; Mac OS X: Core Audio; Windows has many audio APIs because they hate you. Some companies, such as Avid, have their APIs because they also hate you, but their hardware is compatible with standard APIs because they don’t really hate you.

    For graphics: Use whatever graphics library your system supports. For portability, Qt and OpenGL are good options. I’m sure there are others. There aren’t really any standard libraries for displaying waveforms or anything — you do that yourself. It’s not super easy to do it right and efficiently, but it’s not rocket science either. As far as display goes, you can also opt to use a high-level language without trouble.

    You can also think about using http://www.openframeworks.cc/ and http://libcinder.org/

    For audio, you could use the very popular PortAudio library: http://www.portaudio.com/

    PortAudio runs on may platforms, written in C, good community support and easier to use than any one of the existing APIs.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

The title almost says it all. I have a jquery code i've written, im
Title says all. Sample code: ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>(); HashMap<String, Object>
I guess the title almost says it all. My original url looks like: http://www.something.com/buy/index.php?p=025823
The title pretty much says it all, so here's the code: #include <stdio.h> /*
The title pretty much says it all. If I have something like (from PHP
Like the title says, what's the best way in JavaScript to get all radio
My title pretty much says it all, but a colleague has written a component
Title pretty much says it all. Given a table like <table> <tr> <th>Header 1</td>
The title pretty much says it all. I would like to test e.g. UsersController::admin_index()
Title says all. I'll have navigation that looks like this and it's dynamically created

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.