0

I'm probably missing something truly essential in my CSound6 API adventures. I've scoured the internets for answers but without luck. Also, this is my first post on stackoverflow, for it has answered all my previous questions by proxy (for which I'm eternally grateful of course). Here she goes:

I'm developing a standalone sampler/synthesizer/step sequencer based on a Raspberry Pi 2, think of the good old Electribe SX/MX. The GUI is based on SDL2 which I got going after some struggling. The sound engine I chose to use is CSound 6 and it's C++ API.

Of course, because of the Raspberry Pi being a 32 bit platform, I should link against 32 bit libraries.

However, the CSound manuals give little to no information about the use of the 32 bit libraries other than the few words spent on this page.

Of course, that would have been enough if libcsound.a or csound.dll or something alike would exist. I've got everything going with csound64 linked but I'm pretty sure that she'll disappoint me when actually compiling for the Raspberry.

The bin folder inside my CSound installation folder contains the following files that might have something to do with it, but after trying all of them, they do not seem to be the library I'm looking for:

csnd6.dll
csound6~.dll
csound64.dll and csound64.lib
CsoundQt-d-cs6.lib

So please, please help me with this. Even if you're in the same trouble, leave a note. Thanks for your help in advance!

  • RPi uses an ARM CPU, not a 32bit x86... Pretty sure you don't want to run Windows binaries under an x86 emulator (although maybe you could and still manage realtime audio) – Peter Cordes Dec 12 '15 at 18:37
  • No, I'm targeting armhf linux in the end and I might extend this with either a realtime or a preemptive kernel. I also figured that I do not need a specific 32bit library when I finally Cross-compile or compile on the RPi itself. Peter, do you think the RPi isn't capable of running a few simple csound synths in parallel? Right now I'm just wondering where csound would get its routines if installed on a 32bit Windows setup. Just not wondering enough to actually install one and see ;) – Yasja de Miranda Dec 13 '15 at 21:30
  • I don't know csound. My point was that you can't use Windows DLLs. If you have csound compiled for arm, then you're fine. It doesn't matter what you develop with, as long as your code is portable between 64 and 32bit – Peter Cordes Dec 13 '15 at 21:36
  • Thanks, I figured this. I also *think* I figured out what I misunderstood: It is not actually the targeted architecture which is 64 or 32 bit, but it is the precision of the values that go in and out of csound. There is a symbol one can set by adding a parameter to the linker (-DUSE_DOUBLE) which tells csound to use double-precision values (32 bit) instead of 64 bit floating-point values. – Yasja de Miranda Dec 14 '15 at 00:35
  • Yes, 64 vs 32 bit refers to size of pointers / integers. Float vs double is a separate thing. – Peter Cordes Dec 14 '15 at 00:51

1 Answers1

0

Csound can be compiled for different CPU architectures and it can also be compiled to use either 32-bit (float) or 64-bit (double) floating point precision for its signal processing. Users have compiled Csound for RPi and there are instructions for building Csound on RPi at [1]. A pre-compiled Csound appropriate for your CPU architecture should be available from apt repositories. Development headers should also be available as a separate development package.

[1] - https://github.com/csound/csound/blob/develop/BUILD.md

Steven Yi
  • 121
  • 2