0
1
mirror of https://github.com/radio95-rnt/fm95.git synced 2026-02-26 19:23:51 +01:00

clean up a bit

This commit is contained in:
2025-06-16 10:57:36 +02:00
parent fac42da5fe
commit 842a87a120
8 changed files with 39 additions and 67 deletions

View File

@@ -33,7 +33,9 @@
"string_view": "c", "string_view": "c",
"version.h": "c", "version.h": "c",
"cdecl.h": "c", "cdecl.h": "c",
"algorithm": "c" "algorithm": "c",
"socket.h": "c",
"time.h": "c"
}, },
"C_Cpp.errorSquiggles": "disabled" "C_Cpp.errorSquiggles": "disabled"
} }

View File

@@ -1,7 +1,5 @@
#include "bs412.h" #include "bs412.h"
#define BS412_RMS
#define LOG2_19000 log2f(19000.0f) #define LOG2_19000 log2f(19000.0f)
inline float dbr_to_deviation(float dbr) { inline float dbr_to_deviation(float dbr) {
@@ -23,19 +21,11 @@ void init_modulation_power_measure(MPXPowerMeasurement* mpx, int sample_rate) {
} }
float measure_mpx(MPXPowerMeasurement* mpx, float deviation) { float measure_mpx(MPXPowerMeasurement* mpx, float deviation) {
#ifdef BS412_RMS
mpx->sample += deviation * deviation; // rmS mpx->sample += deviation * deviation; // rmS
#else
mpx->sample += fabsf(deviation);
#endif
mpx->sample_counter++; mpx->sample_counter++;
float inv_counter = 1.0f / mpx->sample_counter; float inv_counter = 1.0f / mpx->sample_counter;
#ifdef BS412_RMS
float avg_deviation = sqrtf(mpx->sample * inv_counter); // RMs float avg_deviation = sqrtf(mpx->sample * inv_counter); // RMs
#else
float avg_deviation = mpx->sample * inv_counter;
#endif
float modulation_power = deviation_to_dbr(avg_deviation); float modulation_power = deviation_to_dbr(avg_deviation);
#ifdef BS412_DEBUG #ifdef BS412_DEBUG
@@ -48,7 +38,7 @@ float measure_mpx(MPXPowerMeasurement* mpx, float deviation) {
#ifdef BS412_DEBUG #ifdef BS412_DEBUG
debug_printf("Resetting MPX power measurement\n"); debug_printf("Resetting MPX power measurement\n");
#endif #endif
mpx->sample = deviation * deviation; mpx->sample = avg_deviation * avg_deviation;
mpx->sample_counter = 1; mpx->sample_counter = 1;
} }

View File

@@ -1,6 +1,6 @@
#include "audio.h" #include "audio.h"
int init_PulseInputDevicef(PulseInputDevice* dev, int sample_rate, int channels, char* app_name, char *stream_name, char* device, pa_buffer_attr* buffer_attr, enum pa_sample_format format) { int init_PulseInputDevice(PulseInputDevice* dev, int sample_rate, int channels, char* app_name, char *stream_name, char* device, pa_buffer_attr* buffer_attr, enum pa_sample_format format) {
#ifdef PULSE_DEBUG #ifdef PULSE_DEBUG
debug_printf("Initializing PulseInputDevice format with app_name: %s, stream_name: %s, device: %s, sample_rate: %d, channels: %d, format: %d\n", app_name, stream_name, device, sample_rate, channels, format); debug_printf("Initializing PulseInputDevice format with app_name: %s, stream_name: %s, device: %s, sample_rate: %d, channels: %d, format: %d\n", app_name, stream_name, device, sample_rate, channels, format);
#endif #endif
@@ -22,10 +22,6 @@ int init_PulseInputDevicef(PulseInputDevice* dev, int sample_rate, int channels,
return 0; return 0;
} }
int init_PulseInputDevice(PulseInputDevice* dev, int sample_rate, int channels, char* app_name, char *stream_name, char* device, pa_buffer_attr* buffer_attr) {
return init_PulseInputDevicef(dev, sample_rate, channels, app_name, stream_name, device, buffer_attr, PA_SAMPLE_FLOAT32NE);
}
int read_PulseInputDevice(PulseInputDevice* dev, void* buffer, size_t size) { int read_PulseInputDevice(PulseInputDevice* dev, void* buffer, size_t size) {
if (!dev->initialized) return -1; if (!dev->initialized) return -1;
int error = 0; int error = 0;
@@ -52,7 +48,7 @@ void free_PulseInputDevice(PulseInputDevice* dev) {
dev->initialized = 0; dev->initialized = 0;
} }
int init_PulseOutputDevicef(PulseOutputDevice* dev, int sample_rate, int channels, char* app_name, char *stream_name, char* device, pa_buffer_attr* buffer_attr, enum pa_sample_format format) { int init_PulseOutputDevice(PulseOutputDevice* dev, int sample_rate, int channels, char* app_name, char *stream_name, char* device, pa_buffer_attr* buffer_attr, enum pa_sample_format format) {
#ifdef PULSE_DEBUG #ifdef PULSE_DEBUG
debug_printf("Initializing PulseOutputDevice format with app_name: %s, stream_name: %s, device: %s, sample_rate: %d, channels: %d, format: %d\n", app_name, stream_name, device, sample_rate, channels, format); debug_printf("Initializing PulseOutputDevice format with app_name: %s, stream_name: %s, device: %s, sample_rate: %d, channels: %d, format: %d\n", app_name, stream_name, device, sample_rate, channels, format);
#endif #endif
@@ -88,10 +84,6 @@ int init_PulseOutputDevicef(PulseOutputDevice* dev, int sample_rate, int channel
return 0; return 0;
} }
int init_PulseOutputDevice(PulseOutputDevice* dev, int sample_rate, int channels, char* app_name, char *stream_name, char* device, pa_buffer_attr* buffer_attr) {
return init_PulseOutputDevicef(dev, sample_rate, channels, app_name, stream_name, device, buffer_attr, PA_SAMPLE_FLOAT32NE);
}
int write_PulseOutputDevice(PulseOutputDevice* dev, void* buffer, size_t size) { int write_PulseOutputDevice(PulseOutputDevice* dev, void* buffer, size_t size) {
if (!dev->initialized) return -1; if (!dev->initialized) return -1;
int error = 0; int error = 0;

View File

@@ -24,13 +24,11 @@ typedef struct
} PulseDevice; } PulseDevice;
typedef PulseDevice PulseInputDevice; typedef PulseDevice PulseInputDevice;
int init_PulseInputDevicef(PulseInputDevice *dev, int sample_rate, int channels, char *app_name, char *stream_name, char *device, pa_buffer_attr *buffer_attr, pa_sample_format_t format); int init_PulseInputDevice(PulseInputDevice *dev, int sample_rate, int channels, char *app_name, char *stream_name, char *device, pa_buffer_attr *buffer_attr, pa_sample_format_t format);
int init_PulseInputDevice(PulseInputDevice *dev, int sample_rate, int channels, char *app_name, char *stream_name, char *device, pa_buffer_attr *buffer_attr);
int read_PulseInputDevice(PulseInputDevice *dev, void *buffer, size_t size); int read_PulseInputDevice(PulseInputDevice *dev, void *buffer, size_t size);
void free_PulseInputDevice(PulseInputDevice *dev); void free_PulseInputDevice(PulseInputDevice *dev);
typedef PulseDevice PulseOutputDevice; typedef PulseDevice PulseOutputDevice;
int init_PulseOutputDevicef(PulseOutputDevice *dev, int sample_rate, int channels, char *app_name, char *stream_name, char *device, pa_buffer_attr *buffer_attr, pa_sample_format_t format); int init_PulseOutputDevice(PulseOutputDevice *dev, int sample_rate, int channels, char *app_name, char *stream_name, char *device, pa_buffer_attr *buffer_attr, pa_sample_format_t format);
int init_PulseOutputDevice(PulseOutputDevice *dev, int sample_rate, int channels, char *app_name, char *stream_name, char *device, pa_buffer_attr *buffer_attr);
int write_PulseOutputDevice(PulseOutputDevice *dev, void *buffer, size_t size); int write_PulseOutputDevice(PulseOutputDevice *dev, void *buffer, size_t size);
void free_PulseOutputDevice(PulseOutputDevice *dev); void free_PulseOutputDevice(PulseOutputDevice *dev);

View File

@@ -243,7 +243,7 @@ int main(int argc, char **argv) {
printf("Connecting to output device... (%s)\n", audio_output_device); printf("Connecting to output device... (%s)\n", audio_output_device);
pulse_error = init_PulseOutputDevice(&output_device, sample_rate, 1, "chimer95", "Main Audio Output", audio_output_device, &output_buffer_atr); pulse_error = init_PulseOutputDevice(&output_device, sample_rate, 1, "chimer95", "Main Audio Output", audio_output_device, &output_buffer_atr, PA_SAMPLE_FLOAT32NE);
if (pulse_error) { if (pulse_error) {
fprintf(stderr, "Error: cannot open output device: %s\n", pa_strerror(pulse_error)); fprintf(stderr, "Error: cannot open output device: %s\n", pa_strerror(pulse_error));
return 1; return 1;

View File

@@ -1,5 +1,4 @@
#include <stdio.h> #include <stdio.h>
#include <stdint.h>
#include <getopt.h> #include <getopt.h>
#include <time.h> #include <time.h>
#include <signal.h> #include <signal.h>
@@ -281,7 +280,7 @@ int main(int argc, char **argv) {
printf("Connecting to output device... (%s)\n", audio_output_device); printf("Connecting to output device... (%s)\n", audio_output_device);
opentime_pulse_error = init_PulseOutputDevice(&output_device, sample_rate, 1, "dcf95", "Main Audio Output", audio_output_device, &output_buffer_atr); opentime_pulse_error = init_PulseOutputDevice(&output_device, sample_rate, 1, "dcf95", "Main Audio Output", audio_output_device, &output_buffer_atr, PA_SAMPLE_FLOAT32NE);
if (opentime_pulse_error) { if (opentime_pulse_error) {
fprintf(stderr, "Error: cannot open output device: %s\n", pa_strerror(opentime_pulse_error)); fprintf(stderr, "Error: cannot open output device: %s\n", pa_strerror(opentime_pulse_error));
return 1; return 1;

View File

@@ -1,5 +1,3 @@
#include <stdio.h>
#include <stdint.h>
#include <getopt.h> #include <getopt.h>
#include <liquid/liquid.h> #include <liquid/liquid.h>
@@ -15,7 +13,7 @@
#define DEFAULT_SCA_FREQUENCY 67000.0f #define DEFAULT_SCA_FREQUENCY 67000.0f
#define DEFAULT_SCA_DEVIATION 7000.0f #define DEFAULT_SCA_DEVIATION 7000.0f
#define DEFAULT_SCA_CLIPPER_THRESHOLD 1.0f #define DEFAULT_SCA_CLIPPER_THRESHOLD 1.0f
#define DEFAULT_PREEMPHASIS_TAU 50e-6 // Europe, the freedomers use 75µs #define DEFAULT_PREEMPHASIS_TAU 50e-6 // Europe, the freedomers use 75µs (75e-6)
#define DEFAULT_MPX_POWER 3.0f // dbr, this is for BS412, simplest bs412 #define DEFAULT_MPX_POWER 3.0f // dbr, this is for BS412, simplest bs412
#define DEFAULT_MPX_DEVIATION 75000.0f // for BS412 #define DEFAULT_MPX_DEVIATION 75000.0f // for BS412
#define DEFAULT_DEVIATION 75000.0f // another way to set the volume #define DEFAULT_DEVIATION 75000.0f // another way to set the volume
@@ -36,7 +34,7 @@
#define MPX_DEVICE "FM_MPX.monitor" #define MPX_DEVICE "FM_MPX.monitor"
#define SCA_DEVICE "\0" // Disabled #define SCA_DEVICE "\0" // Disabled
#define BUFFER_SIZE 2048 // Make sure that this is divisible by two #define BUFFER_SIZE 2048
#include "../io/audio.h" #include "../io/audio.h"
@@ -113,9 +111,7 @@ void show_help(char *name) {
int main(int argc, char **argv) { int main(int argc, char **argv) {
printf("fm95 (an FM Processor by radio95) version 1.7\n"); printf("fm95 (an FM Processor by radio95) version 1.7\n");
PulseInputDevice mpx_device, rds_device, rds2_device, sca_device; PulseInputDevice input_device, mpx_device, rds_device, rds2_device, sca_device;
PulseInputDevice input_device;
PulseOutputDevice output_device; PulseOutputDevice output_device;
float clipper_threshold = DEFAULT_CLIPPER_THRESHOLD; float clipper_threshold = DEFAULT_CLIPPER_THRESHOLD;
@@ -126,12 +122,12 @@ int main(int argc, char **argv) {
float sca_deviation = DEFAULT_SCA_DEVIATION; float sca_deviation = DEFAULT_SCA_DEVIATION;
float sca_clipper_threshold = DEFAULT_SCA_CLIPPER_THRESHOLD; float sca_clipper_threshold = DEFAULT_SCA_CLIPPER_THRESHOLD;
char audio_input_device[64] = INPUT_DEVICE; char audio_input_device[48] = INPUT_DEVICE;
char audio_output_device[64] = OUTPUT_DEVICE; char audio_output_device[48] = OUTPUT_DEVICE;
char audio_mpx_device[64] = MPX_DEVICE; char audio_mpx_device[48] = MPX_DEVICE;
char audio_rds_device[64] = RDS_DEVICE; char audio_rds_device[48] = RDS_DEVICE;
char audio_rds2_device[64] = RDS2_DEVICE; char audio_rds2_device[48] = RDS2_DEVICE;
char audio_sca_device[64] = SCA_DEVICE; char audio_sca_device[48] = SCA_DEVICE;
float preemphasis_tau = DEFAULT_PREEMPHASIS_TAU; float preemphasis_tau = DEFAULT_PREEMPHASIS_TAU;
uint8_t calibration_mode = 0; uint8_t calibration_mode = 0;
@@ -177,22 +173,22 @@ int main(int argc, char **argv) {
else stereo = 1; else stereo = 1;
break; break;
case 'i': // Input Device case 'i': // Input Device
memcpy(audio_input_device, optarg, 63); memcpy(audio_input_device, optarg, 47);
break; break;
case 'o': // Output Device case 'o': // Output Device
memcpy(audio_output_device, optarg, 63); memcpy(audio_output_device, optarg, 47);
break;; break;;
case 'M': //MPX in case 'M': //MPX in
memcpy(audio_mpx_device, optarg, 63); memcpy(audio_mpx_device, optarg, 47);
break; break;
case 'r': // RDS in case 'r': // RDS in
memcpy(audio_rds_device, optarg, 63); memcpy(audio_rds_device, optarg, 47);
break; break;
case 'R': // RDS2 in case 'R': // RDS2 in
memcpy(audio_rds2_device, optarg, 63); memcpy(audio_rds2_device, optarg, 47);
break; break;
case 'S': //SCA in case 'S': //SCA in
memcpy(audio_sca_device, optarg, 63); memcpy(audio_sca_device, optarg, 47);
break; break;
case 'f': //SCA freq case 'f': //SCA freq
sca_frequency = strtof(optarg, NULL); sca_frequency = strtof(optarg, NULL);
@@ -260,7 +256,7 @@ int main(int argc, char **argv) {
int opentime_pulse_error; int opentime_pulse_error;
printf("Connecting to input device... (%s)\n", audio_input_device); printf("Connecting to input device... (%s)\n", audio_input_device);
opentime_pulse_error = init_PulseInputDevice(&input_device, sample_rate, 2, "fm95", "Main Audio Input", audio_input_device, &input_buffer_atr); opentime_pulse_error = init_PulseInputDevice(&input_device, sample_rate, 2, "fm95", "Main Audio Input", audio_input_device, &input_buffer_atr, PA_SAMPLE_FLOAT32NE);
if (opentime_pulse_error) { if (opentime_pulse_error) {
fprintf(stderr, "Error: cannot open input device: %s\n", pa_strerror(opentime_pulse_error)); fprintf(stderr, "Error: cannot open input device: %s\n", pa_strerror(opentime_pulse_error));
return 1; return 1;
@@ -269,7 +265,7 @@ int main(int argc, char **argv) {
if(mpx_on) { if(mpx_on) {
printf("Connecting to MPX device... (%s)\n", audio_mpx_device); printf("Connecting to MPX device... (%s)\n", audio_mpx_device);
opentime_pulse_error = init_PulseInputDevice(&mpx_device, sample_rate, 1, "fm95", "MPX Input", audio_mpx_device, &input_buffer_atr); opentime_pulse_error = init_PulseInputDevice(&mpx_device, sample_rate, 1, "fm95", "MPX Input", audio_mpx_device, &input_buffer_atr, PA_SAMPLE_FLOAT32NE);
if (opentime_pulse_error) { if (opentime_pulse_error) {
fprintf(stderr, "Error: cannot open MPX device: %s\n", pa_strerror(opentime_pulse_error)); fprintf(stderr, "Error: cannot open MPX device: %s\n", pa_strerror(opentime_pulse_error));
free_PulseInputDevice(&input_device); free_PulseInputDevice(&input_device);
@@ -279,7 +275,7 @@ int main(int argc, char **argv) {
if(rds_on) { if(rds_on) {
printf("Connecting to RDS95 device... (%s)\n", audio_rds_device); printf("Connecting to RDS95 device... (%s)\n", audio_rds_device);
opentime_pulse_error = init_PulseInputDevice(&rds_device, sample_rate, 2, "fm95", "RDS95 Input", audio_rds_device, &input_buffer_atr); opentime_pulse_error = init_PulseInputDevice(&rds_device, sample_rate, 2, "fm95", "RDS95 Input", audio_rds_device, &input_buffer_atr, PA_SAMPLE_FLOAT32NE);
if (opentime_pulse_error) { if (opentime_pulse_error) {
fprintf(stderr, "Error: cannot open RDS device: %s\n", pa_strerror(opentime_pulse_error)); fprintf(stderr, "Error: cannot open RDS device: %s\n", pa_strerror(opentime_pulse_error));
free_PulseInputDevice(&input_device); free_PulseInputDevice(&input_device);
@@ -290,7 +286,7 @@ int main(int argc, char **argv) {
if(rds2_on) { if(rds2_on) {
printf("Connecting to RDS2 device... (%s)\n", audio_rds2_device); printf("Connecting to RDS2 device... (%s)\n", audio_rds2_device);
opentime_pulse_error = init_PulseInputDevice(&rds2_device, sample_rate, 1, "fm95", "RDS2 Input", audio_rds2_device, &input_buffer_atr); opentime_pulse_error = init_PulseInputDevice(&rds2_device, sample_rate, 1, "fm95", "RDS2 Input", audio_rds2_device, &input_buffer_atr, PA_SAMPLE_FLOAT32NE);
if (opentime_pulse_error) { if (opentime_pulse_error) {
fprintf(stderr, "Error: cannot open RDS2 device: %s\n", pa_strerror(opentime_pulse_error)); fprintf(stderr, "Error: cannot open RDS2 device: %s\n", pa_strerror(opentime_pulse_error));
free_PulseInputDevice(&input_device); free_PulseInputDevice(&input_device);
@@ -303,7 +299,7 @@ int main(int argc, char **argv) {
if(sca_on) { if(sca_on) {
printf("Connecting to SCA device... (%s)\n", audio_sca_device); printf("Connecting to SCA device... (%s)\n", audio_sca_device);
opentime_pulse_error = init_PulseInputDevice(&sca_device, sample_rate, 1, "fm95", "SCA Input", audio_sca_device, &input_buffer_atr); opentime_pulse_error = init_PulseInputDevice(&sca_device, sample_rate, 1, "fm95", "SCA Input", audio_sca_device, &input_buffer_atr, PA_SAMPLE_FLOAT32NE);
if (opentime_pulse_error) { if (opentime_pulse_error) {
fprintf(stderr, "Error: cannot open SCA device: %s\n", pa_strerror(opentime_pulse_error)); fprintf(stderr, "Error: cannot open SCA device: %s\n", pa_strerror(opentime_pulse_error));
free_PulseInputDevice(&input_device); free_PulseInputDevice(&input_device);
@@ -316,7 +312,7 @@ int main(int argc, char **argv) {
printf("Connecting to output device... (%s)\n", audio_output_device); printf("Connecting to output device... (%s)\n", audio_output_device);
opentime_pulse_error = init_PulseOutputDevice(&output_device, sample_rate, 1, "fm95", "Main Audio Output", audio_output_device, &output_buffer_atr); opentime_pulse_error = init_PulseOutputDevice(&output_device, sample_rate, 1, "fm95", "Main Audio Output", audio_output_device, &output_buffer_atr, PA_SAMPLE_FLOAT32NE);
if (opentime_pulse_error) { if (opentime_pulse_error) {
fprintf(stderr, "Error: cannot open output device: %s\n", pa_strerror(opentime_pulse_error)); fprintf(stderr, "Error: cannot open output device: %s\n", pa_strerror(opentime_pulse_error));
free_PulseInputDevice(&input_device); free_PulseInputDevice(&input_device);
@@ -344,7 +340,8 @@ int main(int argc, char **argv) {
output[i] = sample*master_volume; output[i] = sample*master_volume;
} }
if((pulse_error = write_PulseOutputDevice(&output_device, output, sizeof(output)))) { // get output from the function and assign it into pulse_error, this comment to avoid confusion if((pulse_error = write_PulseOutputDevice(&output_device, output, sizeof(output)))) { // get output from the function and assign it into pulse_error, this comment to avoid confusion
fprintf(stderr, "Error writing to output device: %s\n", pa_strerror(pulse_error)); if(pulse_error == -1) fprintf(stderr, "Main PulseOutputDevice reported as uninitialized.");
else fprintf(stderr, "Error writing to output device: %s\n", pa_strerror(pulse_error));
to_run = 0; to_run = 0;
break; break;
} }
@@ -360,23 +357,21 @@ int main(int argc, char **argv) {
} }
Oscillator osc; Oscillator osc;
init_oscillator(&osc, polar_stereo ? 3906.25 : 4750, sample_rate); // 3906.25 * 8 = 31250.0, this is to reduce branching init_oscillator(&osc, polar_stereo ? 3906.25 : 4750, sample_rate); // 3906.25 * 8 = 31250.0, this is to reduce branching later on
FMModulator sca_mod; FMModulator sca_mod;
init_fm_modulator(&sca_mod, sca_frequency, sca_deviation, sample_rate); init_fm_modulator(&sca_mod, sca_frequency, sca_deviation, sample_rate);
iirfilt_rrrf lpf_l, lpf_r; iirfilt_rrrf lpf_l, lpf_r, mpx_lpf;
lpf_l = iirfilt_rrrf_create_prototype(LIQUID_IIRDES_CHEBY2, LIQUID_IIRDES_LOWPASS, LIQUID_IIRDES_SOS, LPF_ORDER, (15000.0f/sample_rate), 0.0f, 1.0f, 40.0f); lpf_l = iirfilt_rrrf_create_prototype(LIQUID_IIRDES_CHEBY2, LIQUID_IIRDES_LOWPASS, LIQUID_IIRDES_SOS, LPF_ORDER, (15000.0f/sample_rate), 0.0f, 1.0f, 40.0f);
lpf_r = iirfilt_rrrf_create_prototype(LIQUID_IIRDES_CHEBY2, LIQUID_IIRDES_LOWPASS, LIQUID_IIRDES_SOS, LPF_ORDER, (15000.0f/sample_rate), 0.0f, 1.0f, 40.0f); lpf_r = iirfilt_rrrf_create_prototype(LIQUID_IIRDES_CHEBY2, LIQUID_IIRDES_LOWPASS, LIQUID_IIRDES_SOS, LPF_ORDER, (15000.0f/sample_rate), 0.0f, 1.0f, 40.0f);
mpx_lpf = iirfilt_rrrf_create_prototype(LIQUID_IIRDES_BUTTER, LIQUID_IIRDES_LOWPASS, LIQUID_IIRDES_SOS, 1, (polar_stereo ? (46250.0f/sample_rate) : (53000.0f/sample_rate)), 0.0f, 1.0f, 1.0f);
iirfilt_rrrf mpx_lpf = iirfilt_rrrf_create_prototype(LIQUID_IIRDES_BUTTER, LIQUID_IIRDES_LOWPASS, LIQUID_IIRDES_SOS, 1, (polar_stereo ? (46250.0f/sample_rate) : (53000.0f/sample_rate)), 0.0f, 1.0f, 1.0f);
ResistorCapacitor preemp_l, preemp_r; ResistorCapacitor preemp_l, preemp_r;
init_preemphasis(&preemp_l, preemphasis_tau, sample_rate, 15250.0f); init_preemphasis(&preemp_l, preemphasis_tau, sample_rate, 15250.0f);
init_preemphasis(&preemp_r, preemphasis_tau, sample_rate, 15250.0f); init_preemphasis(&preemp_r, preemphasis_tau, sample_rate, 15250.0f);
MPXPowerMeasurement power; MPXPowerMeasurement power, mpx_only_power;
MPXPowerMeasurement mpx_only_power;
init_modulation_power_measure(&power, sample_rate); init_modulation_power_measure(&power, sample_rate);
init_modulation_power_measure(&mpx_only_power, sample_rate); init_modulation_power_measure(&mpx_only_power, sample_rate);

View File

@@ -1,10 +1,6 @@
#include <stdint.h>
#include <string.h>
#include <unistd.h> #include <unistd.h>
#include <arpa/inet.h> #include <arpa/inet.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <signal.h>
#include <stdbool.h>
#include <getopt.h> #include <getopt.h>
#include <pwd.h> #include <pwd.h>
#include <fcntl.h> #include <fcntl.h>
@@ -20,7 +16,7 @@
#define BUF_SIZE 1500 #define BUF_SIZE 1500
#define MAX_AUDIO_DATA_SIZE (BUF_SIZE - sizeof(VBANHeader)) #define MAX_AUDIO_DATA_SIZE (BUF_SIZE - sizeof(VBANHeader))
#define MAX_BUFFER_PACKETS 16 #define MAX_BUFFER_PACKETS 24
#define POLL_TIMEOUT_MS 75 #define POLL_TIMEOUT_MS 75
@@ -391,7 +387,7 @@ int main(int argc, char *argv[]) {
if (output.initialized) free_PulseOutputDevice(&output); if (output.initialized) free_PulseOutputDevice(&output);
int result = init_PulseOutputDevicef( // the f suffix is to specify the format, because without f it defaults to float int result = init_PulseOutputDevice(
&output, &output,
VBAN_SRList[vban_last_sr], VBAN_SRList[vban_last_sr],
vban_last_channels + 1, // Add 1 because VBAN channels are 0-based vban_last_channels + 1, // Add 1 because VBAN channels are 0-based