A bare bones framework for audio DSP on a PC

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
This must be a simple problem to solve! ... Here's the self-contained project using relative paths I think. In theory, you shouldn't need to have BASS installed on your system to load, compile and run this project. It seems to work fine for me.
I've just setup a fresh computer. It is a retired Dell L-400 with Pentium III 700 MHz featuring SSE.

WinXP SP3 French installed.
ASIO4ALL 2.9 installed

In the Windows Control Panel (System - Hardware - Peripherals) I needed to disable the built-in sound system (Crystal SoundFusion CS4281 WDM Audio). This way ASIO4ALL doesn't try dealing with that one.

I'm attaching the CM6206-based Sweex 7.1 USB Sound Card on the USB1 port.

ASIOSigGen is working nice. All 8 channels of the CM6206-based Sweex 7.1 USB Sound Card are nicely individualized. Highly variable CPU usage while outputting the white noise : from 11% to 86% and a few hiccups sometimes. In noticed that the CPU usage is the same when ASIOSinGen is idling, not generating sound. This is because ASIO4ALL is not in pause when ASIOSinGen is idling. As soon as ASIOSinGen windows opens, ASIO4ALL comes alive and stays in "play". The CPU usage is thus the same when ASIOSinGen is idling, or generating a sinus (440 Hz), or generating a Pink noise, or generating a White noise. Do you get the same pattern on your side? See attached .jpg.

Now about the bare bones framework.

Even after copying bass.dll and bassasio.dll in the .exe directory, the .exe sitting in the "Self Contained" \bin\Debug and \bin\Release do exhibit the same symptoms : AB stages only, high CPU percentage, ASIO on pause.

When compiling and generating new .exe, I have no compilation errors, I only get the usual compilation warnings, and the result is the same.

When installing CodeBlocks on that computer I noticed there was an option for adding "CB Share Config". If you have this enabled on your side, you may generate a file corresponding to your particular CodeBlock configuration. This may help.

Steph
 

Attachments

  • Dell L-400 CPU usage with ASIOSigGen.jpg
    Dell L-400 CPU usage with ASIOSigGen.jpg
    218.3 KB · Views: 255
Unfortunately... "The product you have selected has been classified as End of Service Life".

Hello Steph

I'm fully aware of this. I was after a multichannel sound card that cost virtually nothing. So the secondhand Audigy 2 ZS works as long as the Kx drivers are installed, otherwise, with the Creative drivers there is the problem of preset direct routing from input to output, which wastes two output channels. Using Kx, you have total flexibiility with the routing. I enclose a screenshot of how to set the routing up for what we're wanting to do. You can actually do it in real time (just double-click on the icon that appears in the system tray when the Kx drivers are installed and select the '4x DSP' button to display the routing window). Unfortunately the Audigy has less-than-perfect resampling to its internal 48 kHz sample rate.

The Creative X-Fi series are much better, specs-wise, but cost a bit more. However, they can be used with the standard Creative drivers, because these provide an 'Audio Creation' control panel that allows you to turn off any direct routing from input to output. Apart from the non-audiophile 'brand image' (they're just not expensive enough) they're pretty much perfect for the job.
 

Attachments

  • Kx.jpg
    Kx.jpg
    42.6 KB · Views: 239
Tomorrow I will be investigating the CodeBlocks compiler settings, BASS and BASSASIO versions, also the directory tree, for getting the bare bones framework reaching stages ABCD on my side.

When you tried the exe in the 'Self-contained project' were you using the one under 'debug' or 'release'? I think only the 'debug' version was freshly compiled by me.

Did my separately-compiled version of your source code get to ABCD when executed?

The interesting thing is that your compiled .exe gives rise to the same problems on my machine (only reaches AB), but when I compile it, it reaches ABCD.
 
Last edited:
When you tried the exe in the 'Self-contained project' were you using the one under 'debug' or 'release'? I think only the 'debug' version was freshly compiled by me. Did my separately-compiled version of your source code get to ABCD when executed?
'Self-contained project' .exe in Debug and .exe in Release behave the same : only stages AB, high CPU usage, ASIO paused.

The interesting thing is that your compiled .exe gives rise to the same problems on my machine (only reaches AB), but when I compile it, it reaches ABCD.
A defective bass.dll and/or bassasio.dll on my side could explain this. I downloaded bass24 and bassasio12 again. Still the same behavior. I noticed strange dates for bass.dll or bassasio.dll. I also tried to install other bass.dll and bassasio.dll versions but no luck : there is no version history of bass in un4seen website. Where can I find a different bass and bassasio version?

A defective CodeBlocks configuration on my side could also explain this. Do I need special settings in CodeBlocks compiler like Pentium 3 as target or some speed or size optimization? Do I need to fiddle with "Latin" settings?

Or perhaps this is my Windows version. Currently it is WinXP SP3 French. What is your WinXP language and version? Are special WinXP permissions or settings needed for allowing the callbacks? This is C, not C++, not .NET. Unmanaged code? No need for marshalling? The behavior is the same when I run the .exe as Administrator.

Also, there is that AVG security warning. When I manually scan bass.dll and bassasio.dll with AVG antivirus, he finds nothing. And still, AVG triggers when the CooperTop .exe runs for the first time after booting.
 
Last edited:
A defective bass.dll and/or bassasio.dll on my side could explain this.

Where can I find a different bass and bassasio version?
The BASS stuff in the 'Self-contained' project is 2.4.8.0 so you can try those.
A defective CodeBlocks configuration on my side could also explain this. Do I need special settings in CodeBlocks compiler like Pentium 3 as target or some speed or size optimization? Do I need to fiddle with "Latin" settings?
As far as I am aware I am using the 'default' settings. The compiler is GNU GCC. In Project->Build Options->Compiler settings I have no boxes ticked except for "Enable all compiler warnings".
Or perhaps this is my Windows version. Currently it is WinXP SP3 French. What is your WinXP language and version? Are special WinXP permission needed for alowing the callbacks?
I'm running XP Professional SP3. In Control Panel->System Properties->Performance (not somewhere I've ever looked before!) the settings are shown in the attached screenshots.

Also, there is that AVG security warning. When I manually scan bass.dll and bassasio.dll with AVG antivirus, he finds nothing. And still, AVG triggers when the CooperTop .exe runs for the first time after booting.
No virus warnings with Avira.

Sorry you're having such trouble! The paradox is that your compiled exe shows the same problems on my machine, but not my compiled version of your source code. Yet my compiled version shows the problem on your machine. So is it a compile-time problem, or a run-time problem? It seems to be a strange mixture of the two.
 

Attachments

  • properties1.jpg
    properties1.jpg
    57.8 KB · Views: 232
  • properties2.jpg
    properties2.jpg
    47.8 KB · Views: 223
The BASS stuff in the 'Self-contained' project is 2.4.8.0 so you can try those.
Tried it already. Same issues.

There is one interesting post on Un4seen forum, about the callbacks. "Un4seen Developments Forum > Developments > BASS > Topic: Callbacks in BASS".

Would be nice to have a small test application focusing on the callbacks. Using less variables, and displaying all the variables through the console, as currently some variables may not pass in a correct, general way.
 
Hello Steph. What conclusions do you draw from those questions and answers?
In bassasio12 examples, there is a "bin" subdirectory containing precompiled examples. They run fine on my computer equipped with Realtek High Definition audio, driven by ASIO4ALL. Let us take the "dsptest" as example. The precompiled .exe runs fine. I'm loading a white noise .wav, and I can hear the three different effects. The corresponding source code compiles fine on CodeBlocks, no errors, however when running the new .exe, nothing happens on the screen, and nothing happens through the speakers. The dialog boxes don't show and the app immediately terminates with a "0" return code. Kind of symptom indicating that I need to configure the CodeBlocks environment and libraries in a proper way. On WinXP SP3, do I need to indicate the libraries that are delivered along CodeBlocks (sitting into program files\CodeBlocks\MinGW\lib), or do I need to indicate other libraries?
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.