Anthony96922 / MiniRDS

Software RDS encoder with lots of features
GNU General Public License v3.0
13 stars 0 forks source link

how to build on windows #4

Open damp11113 opened 9 months ago

damp11113 commented 9 months ago

i can't build it on windows it error

>make
gcc -Wall -Wextra -pedantic -O2 -std=c18 -DVERSION=\"1.0\" -DRDS2 -DRBDS   -c -o minirds.o minirds.c
minirds.c:23:10: fatal error: ao/ao.h: No such file or directory
   23 | #include <ao/ao.h>
      |          ^~~~~~~~~
compilation terminated.
make: *** [<builtin>: minirds.o] Error 1
lucasfuzzersodre commented 9 months ago

@Anthony96922 could compile this software for Windows and develop a GUI as well, right?

Anthony96922 commented 9 months ago

I have no plans to make this cross-platform yet.

sunscreen commented 3 months ago

if I may make a suggestion, Fork MiniRDS and add support for RtAudio which is cross platform, then the community can develope a GUI for windows.

sunscreen commented 3 months ago

$ make g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o minirds.o minirds.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o waveforms.o waveforms.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o rds.o rds.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o fm_mpx.o fm_mpx.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o osc.o osc.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o resampler.o resampler.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o modulator.o modulator.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o lib.o lib.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o rds2.o rds2.c g++ -Wall -Wextra -pedantic -O2 --std=c++23 -g -ggdb -DVERSION=\"1.0\" -DRDS2 -DRBDS -c -o rds2_image_data.o rds2_image_data.c g++ ./rtaudio-4.1.2/RtAudio.o minirds.o waveforms.o rds.o fm_mpx.o osc.o resampler.o modulator.o lib.o rds2.o rds2_image_data.o -lm -lsamplerate -lpthread -l:libdsound.a -l:libole32.a -l:libwinmm.a -o minirds -s

sunscreen commented 2 months ago

Hey again just to let you know I have miniRDS's base code working under windows and WASAPI lowlatency also with out the need for a resampler in the generator. image

Anthony96922 commented 2 months ago

I don't recommend using the Windows resampler because it might not be as good for non-integer conversions as what is already in MiniRds. Stereo Tool discourages using the OS resampler too. (See https://www.thimeo.com/documentation/sound-cards.html)

sunscreen commented 2 months ago

Hi Thanks for the response @Anthony96922 had nothing but trouble with Secret Rabbit code .. with WASAPI you specify the the back end sample rate which then deduces the frame_count so this is certainly the problem for resamplers like SRC because they wont work well at 192000/1920 buffer size its just to big for the latency... I get BER of 0-4% spiking around 12% when I enable the SRC from 190000 -> 192000

If WSAPI's output sample rate matches that of generation then its 0% BER

Which begs the question why dosnt it natively work at 192000 with out SRC .. it should beable to generate N frames of RDS at X sample rate no? bypassing the need to resample via SRC or any thing else.. and directly outputing it ... but this also dosnt work for me

sunscreen commented 2 months ago

WASAPI has some special flags .. AUTO PCM conversion and a In built Resampler WASAPI wont resample any thing unless you asked it to do so because to my understand its a API FLAG WASAPI Can Internally convert any PCM stuff if you didnt know what your doing again this is a API FLAG.. but if your explicity using float it then its a 24bit float sound system.