GithubHelp home page GithubHelp logo

christophejacquet / pifmrds Goto Github PK

View Code? Open in Web Editor NEW
1.4K 1.4K 327.0 3.43 MB

FM-RDS transmitter using the Raspberry Pi's PWM

License: GNU General Public License v3.0

C 93.72% Python 4.00% Makefile 2.28%

pifmrds's People

Contributors

christophejacquet avatar ffontaine avatar limpens avatar markondej avatar martchus avatar olika120 avatar skylarmt avatar stealthii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pifmrds's Issues

Ability to use TA?

Hi, I love playing with this, is there any TA trigger coming to this?

Tip for streaming any content

Hi there, thank you for your wonderful software!

In your examples, you talk about sox to stream non-wav data to PiFmRds. Unfortunately, some protocols (like HTTP Live Streaming, or extracting audio from video) are not supported with sox.

To play nearly everything to FM, you can use LibAV (http://libav.org) or FFMPEG (http://ffmpeg.org but not availble out-of-the-box on Raspbian) but it has some delay before outputing the result on stdout, resulting on PiFmRds stopping because it can't immediately read stdin.

Here is a workaround that may be useful for some fellows. Launch on 2 separate terminals or background the first process :

$ sudo avconv -re -i http://url.of.the/file-or-stream -vn -sn -f mp3 udp://127.0.0.1:8080
$ nc -l -u 8080 | sox -t mp3 - -t wav - | sudo ./pi_fm_rds -audio -

Pipe using

Hello, it's possible to use with pipe ?

an example

sox -t mp3 http://www.linuxvoice.com/episodes/lv_s02e01.mp3 -t wav -r 22050 -c 1 - | sudo ./pi_fm_rds

Consider using a socket connection

Hello,

like other folks around, we use the mpd backend to manage the playlist queue.
I wonder if there is a way to keep the PiFmRds process always active, and to swap the piped in audio stream?

I wonder if having PiFmRds listening to data on a socket, and another program to swap the content sent to that socket would do the trick.

It would enable more complex pipelines while keeping PiFmRds approach similarly solid.

Audio play slowly

Hi!
I found another problem with PiFmRds.
Play some mp3 file with mpg123 on the built-in audio output (jack) of Raspi then stop playback (mpg123).
Then start PiFmRds and no stereo no rds signal, and the audio play slowly.

Only Raspi reboot solve this problem.

If first start PiFmRds (after reboot) everything is ok.
If I quit from PiFmRds and then play mp3 with mpg123 on built-in audio, the same problem occur. The audio play slowly.

If You have free time, please test it.
Thanks.
Peppi

PS: Sorry my pour english.

Audio file looping endlessly

I am trying to play a directory full of audio files, and I wrote a bash script to play them all and shuffle between them. However, when the audio file ends, it loops to the beginning of the file instead of playing the next song. My script works flawlessly with another audio program. Please advise on how to solve this issue.

background noise during playback

testing with simple piece of cable (20cm) and the stereo wave file i got an annoing noise on the background.
Only my case or other got same issue?

thanks

Generation time of the RDS messages

This is not really an issue, it is more a doubt about the program but I think that it is an interesting question and I couldn't find a better way of asking it.

I'm using your program in my MSc Thesis. I'm basically using the RDS as a control channel in a wireless mesh sensor network. The thing is, the default rate at which the RDS messages are being generated in this program is too slow for my needs. I was able to increase that rate by changing the usleep period (line 475 of the pi_fm_rds.c file). Using a usleep of 1 in that cycle, I was able to increase the message generation rate to 1 RDS message from type 0A every 150 ms approximately (I have also done some modifications to only generate 0A messages). This increased rate is achieved at the cost of range and error rate.

What I wanted to know is why we need this sleep and why it has to bee so long if we want the RDS transmission to be reliable and have a large range. If I got it right, you use this sleep between getting the samples but I would like to know more technical details. Moreover, according to my research, the physical limit for the bitrate of the Radio data System is 1187,5 bits per second. (as stated in this article http://www.iaeng.org/publication/WCECS2013/WCECS2013_pp431-436.pdf). With your program, the bit rates that we can achieve are much lower. Is this due to a limitation of the PWM generator of the Raspberry Pi?

To summarize, I just wanted to have an explanation of why the RDS generation has to be so slow in order to be reliable.

Thank you very much in advance. This is a limitation of the RDS that I would like to address in my MSc Thesis.

Best regards.

use of a SDR chipset to avoid noise of the GPIO output

hello.
I'm experimenting with this code, transmitting Stereo audio and RDS over the GPIO, but the result was not so exciting.

I was wondering ... why do not use a SDR chipset over usb bus to transmit audio on the air?
RTL2832U could be a nice candidate ..... any chance to add SDR support to PiFMRds?

Thanks,

Federico

SOX Error

Hi,
When I use this, I get an error when using Sox, I get:
sudo: sox: command not found
Error: could not open stdin for audio input.
Terminating: cleanly deactivated the DMA engine.
What does this mean? I am using the code provided and have not done anything that is not in the instructions.
Many Thanks in advance.

Program stops after a few hours

I know this has come up before, but it still does not seem to be fixed.... basically, when running this, it will turn itself off after a few hours and stop sending RDS and audio, it will however keep the signal occupied. Is there any reason why it stops sending audio and RDS after a few hours? Also, is it possible for this to work 24/7 (for as long as the Sox incoming audio feed lasts)?
The pi does not shut down and after a few hours it behaves like it would if you were to terminate by pressing CTRL + C. I simply restart it by pressing UP then ENTER but I don't wish to run it like this.

Program not compiled on Raspberry 2

Hi,
After a clone of repository, I have this error when i compiled :
pi@raspberrypi:/PiFmRds/src$ make clean
rm .o
rm: cannot remove `
.o': No such file or directory
Makefile:51: recipe for target 'clean' failed
make: *** [clean] Error 1
pi@raspberrypi::
/PiFmRds/src$ make
gcc -Wall -std=gnu99 -c -g -O3 -march=armv7-a -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math -DRASPI=2 rds.c
gcc -Wall -std=gnu99 -c -g -O3 -march=armv7-a -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math -DRASPI=2 waveforms.c
gcc -Wall -std=gnu99 -c -g -O3 -march=armv7-a -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math -DRASPI=2 pi_fm_rds.c
pi_fm_rds.c:105:21: fatal error: sndfile.h: No such file or directory
compilation terminated.
Makefile:42: recipe for target 'pi_fm_rds.o' failed
make: *** [pi_fm_rds.o] Error 1

Mpd pipe problem

hi, I'm having trouble setting a pipe pifm_rds mpd, this is the configuration I'm using

audio_output {
type "pipe"
name "FM_fifo"
#path "/tmp/mpd.fifo"
#command "/root/pifm/pifm - 88.2 44100 2"
command "/root/pifm/pi_fm_rds -freq 88.3 -ps PiFM -rt Hola -audio -"
format "44100:16:2"
}

Using first command works ok, but second command hangs the PI.
i dont know if i'm doing something wrong.

Sorry my english

Could not get audio to input

Error Dump:
Using mbox device /dev/vcio.
Allocating physical memory: size = 3403776 mem_ref = 3 bus_addr = fe625000 virt_addr = 0x7690f000
ppm corr is 0.0000, divider is 1096.4912 (1096 + 2012*2^-12) [nominal 1096.4912].
Error: could not open stdin for audio input.
Terminating: cleanly deactivated the DMA engine and killed the carrier.

Pure MPX input (192kHz) from external audio processor

Hi!

Is it possible to input 192kHz mono audio to the PiFmRds to use external processing (stereo + RDS)? This is how it's done in "real" FM transmitters, so it essentially would be simulating that operation, thus bypassing any internal stereo or RDS generation.

Program quit after 3-4 hours

Hi!

I use PiFmRds with piping audio.
My command is: mpg123 --loop -1 --buffer 1024 --no-icy-meta -s http://streamURL:8000 | sox -t raw -b 16 -e signed -c 2 -r 44100 - -t wav - equalizer 11800 0.7q 20 | sudo ./pi_fm_rds -freq 92.5 -audio -
Everything works perfectly for 3-4 hours, then the program quit with this message: "Could not rewind in audio file, terminating"
I tested it with mp3 stream and local mp3 too, and the result is the same.

If You have free time, please test it.
Thanks.
Peppi

pi_fm_rds.c:100:21 fatal error: sndfile.h no such file or directory

hello, i execute the command make and give that output:

gcc -Wall -std=gnu99 -c -g -O3 -march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math rds.c
gcc -Wall -std=gnu99 -c -g -O3 -march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math waveforms.c
gcc -Wall -std=gnu99 -c -g -O3 -march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math pi_fm_rds.c
pi_fm_rds.c:100:21: fatal error: sndfile.h: No such file or directory
compilation terminated.
Makefile:31: recipe for target 'pi_fm_rds.o' failed
make: *** [pi_fm_rds.o] Error 1

Is there any reason for that?

Could not allocate memory.

When I try to run the program, I get these four messages in the command line and then it just terminates:

Using local mbox device file with major 249.
Allocating physical memory: size = 3403776 ioctl_set_msg failed:-1
Could not allocate memory.
Terminating: cleanly deactivated the DMA engine and killed the carrier.

Obviously the issue is that it can't allocate the needed memory, but I can't figure out why.
Any help is appreciated.

Stuttering playback

So pi_fm_rds seems to work great for me except that audio tends to stutter a little from time to time. It's about a half second blip every couple of minutes.

I'm running it on a pi 1, would using a pi 2 help with the issue?

Static and Very Low Sound Quality on Raspberry pi 2

I've tried messing with the ppm, and that took care of the low pitch audio. However there is a static in all of the signals, I have tried various sound files on different frequencies. Also I think the audio output it always mono, and the output also sounds like I'm listening to music on my walki talki (very muffled). Is this a Raspberry pi 2 specific thing? I remember reading a few months back that there was super clear FM (almost station quality) for the raspberry pi do none of these work for the 2?

Noob question about harmonics

Hello. As far as I understand harmonics are created because of the square waves that raspberry produce. What if we use dac in the output?

preamphasis is missing

In order to get a decent audio quality, you really have to amplify the high frequencies.

currently i am decoding all my files, then applying an equaliser and then rendering those files back to mp3, before i use them with PiFM RDS. A rather complicated way.

I also tried using alsaequal, but because i am using loopdevices i can't get it to work, no matter what i do. (PiFm listens on Loopback,1,0; standard audio output is Loopback,0,0)

A preamphasis really should be implemented right into PiFm

are there any plans on implementing something like that? Is PiFm even still being developed?

Pipe audio in via Aux lead

Would it be possible to pipe audio in via Aux lead? I feel the reason the program quits after several hours may be due to a network drop out.

Could not rewind in audio file. Terminating

Hi, is there a way to get an icecast stream to pick itself up again after this error so I don't have to keep picking it up every few hours, it's a very disappointing bug. Thanks in advance

Pi_Fm_Rds won't compile on Raspberry Pi 2

Hi,

I'm unable to compile Pi_Fm_Rds on a Raspberry Pi 2.

There is no error message after the "make" command but the pi_fm_rds executable is not created even though other items are.

If I try and compile pi_fm_rds.c separately a number of errors occur:

root@pi-web-vpn:/home/pi/PiFmRds/src# make pi_fm_rds
gcc pi_fm_rds.o -o pi_fm_rds
pi_fm_rds.o: In function terminate': /home/pi/PiFmRds/src/pi_fm_rds.c:208: undefined reference tofm_mpx_close'
/home/pi/PiFmRds/src/pi_fm_rds.c:209: undefined reference to close_control_pipe' pi_fm_rds.o: In functiontx':
/home/pi/PiFmRds/src/pi_fm_rds.c:424: undefined reference to fm_mpx_open' /home/pi/PiFmRds/src/pi_fm_rds.c:428: undefined reference toset_rds_pi'
/home/pi/PiFmRds/src/pi_fm_rds.c:429: undefined reference to set_rds_rt' /home/pi/PiFmRds/src/pi_fm_rds.c:435: undefined reference toset_rds_ps'
/home/pi/PiFmRds/src/pi_fm_rds.c:445: undefined reference to open_control_pipe' /home/pi/PiFmRds/src/pi_fm_rds.c:471: undefined reference topoll_control_pipe'
/home/pi/PiFmRds/src/pi_fm_rds.c:499: undefined reference to floorf' /home/pi/PiFmRds/src/pi_fm_rds.c:488: undefined reference tofm_mpx_get_samples'
/home/pi/PiFmRds/src/pi_fm_rds.c:465: undefined reference to set_rds_ps' /home/pi/PiFmRds/src/pi_fm_rds.c:461: undefined reference toset_rds_ps'
collect2: ld returned 1 exit status
: recipe for target 'pi_fm_rds' failed
make: *** [pi_fm_rds] Error 1

Any advice gratefully received.

BB

Raspberry pi2 problem

Hello

I ve got a problem

following your tutorial, then:
root@raspberrypi2:/home/pi/PiFmRds/src# ./pi_fm_rds
I get , on my raspi 2:
Can't open device file: mbox
Try creating a device file with: sudo mknod mbox c 100 0
just discovering git hub
too difficult for me to understand the problem

TY

//--------------------------------------------------------------
bonjour,
J'ai un soucis lors du lancement du programme

en suivant tes explications puis :
root@raspberrypi2:/home/pi/PiFmRds/src# ./pi_fm_rds
j obtiens:
Can't open device file: mbox
Try creating a device file with: sudo mknod mbox c 100 0

Pipe all RPi2 audio to PiFmRds?

Trying to pipe all audio that would output on HDMI or Composit through to PiFMRds, how would one go about doing this? Looking to setup a daemon to run in the background with kodi so I can listen to music and such through my home stereo wirelessly.

Thanks!

swap GPIO pin ?

Don't know if this is possible at all, but I'd like to move the pin which is used
for transmitting to another GPIO pin, is it doable at all ?

GPIO4/pin 7 is usually used by the RTC module addon (it uses pin 1-3-5-7-9),
hence the need of moving the FM-pin ;)

thank you in advance

Broadcast Computer's Audio

Hi
I was wondering if it's possible to broadcast the computer's audio over fm radio / how would it be done?
by computer's audio I mean what would be playing out of the speakers?
Thanks heaps
James

PiFmRDS on Raspberry Pi B+ Compile Error VFP register

gcc -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: error: rds.o uses VFP register arguments, pi_fm_rds does not
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: failed to merge target specific data of file rds.o
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: error: waveforms.o uses VFP register arguments, pi_fm_rds does not
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: failed to merge target specific data of file waveforms.o
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: error: pi_fm_rds.o uses VFP register arguments, pi_fm_rds does not
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: failed to merge target specific data of file pi_fm_rds.o
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: error: fm_mpx.o uses VFP register arguments, pi_fm_rds does not
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: failed to merge target specific data of file fm_mpx.o
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: error: control_pipe.o uses VFP register arguments, pi_fm_rds does not
/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/../../../../armv6j-softfp-linux-gnueabi/bin/ld: failed to merge target specific data of file control_pipe.o
collect2: error: ld returned 1 exit status
Makefile:11: recipe for target 'app' failed
make: *** [app] Error 1

Compile fails with this error. If it helps, here is the gcc version and specs output:

localhost src # gcc -v --dumpspecs 
Using built-in specs.
COLLECT_GCC=/usr/armv6j-softfp-linux-gnueabi/gcc-bin/4.8.4/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/armv6j-softfp-linux-gnueabi/4.8.4/lto-wrapper
gcc: error: unrecognized command line option '--dumpspecs'
Target: armv6j-softfp-linux-gnueabi
Configured with: /var/tmp/portage/sys-devel/gcc-4.8.4/work/gcc-4.8.4/configure --host=armv6j-softfp-linux-gnueabi --build=armv6j-softfp-linux-gnueabi --prefix=/usr --bindir=/usr/armv6j-softfp-linux-gnueabi/gcc-bin/4.8.4 --includedir=/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/include --datadir=/usr/share/gcc-data/armv6j-softfp-linux-gnueabi/4.8.4 --mandir=/usr/share/gcc-data/armv6j-softfp-linux-gnueabi/4.8.4/man --infodir=/usr/share/gcc-data/armv6j-softfp-linux-gnueabi/4.8.4/info --with-gxx-include-dir=/usr/lib/gcc/armv6j-softfp-linux-gnueabi/4.8.4/include/g++-v4 --with-python-dir=/share/gcc-data/armv6j-softfp-linux-gnueabi/4.8.4/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.8.4 p1.5, pie-0.6.1' --enable-libstdcxx-time --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-altivec --disable-fixed-point --with-float=softfp --with-arch=armv6j --disable-libgcj --enable-libgomp --disable-libmudflap --disable-libssp --enable-lto --without-cloog --disable-libsanitizer
Thread model: posix
gcc version 4.8.4 (Gentoo 4.8.4 p1.5, pie-0.6.1) 

Catastrophic failure when reading from fifo

Please forgive the vague issue report, as I have little information available, however here's what happened:

mkfifo audio.wav
./pi_fm_rds -freq 87.9 -audio audio.wav

In another terminal:

sox file.mp3 audio.wav

The first file played correctly, however when I attempted to play a second file with "sox file2.mp3 audio.wav", nothing happened. I switched back to the terminal that was running pi_fm_rds, hit control-C and the Pi screen (HDMI out) flashed blue for about a second and then the Pi shut down. The Pi will not power on. I don't know if the bootloader is damaged or if the entire CPU is dead.

Failed to open control pipe

pifmrds

-ctl xxxx parameter fails each time i try to open the control pipe!

Any hints on what might be the problem?
Where can i gather more data about it in order to better understand the issue?

Props!

Seems not to kill carrier-frequency on exit

I have an issue with a freshly (today) installed version on my raspberry pi.
When I end the transmission (with ctrl+c) the carrier signal still seems to be broadcasted as the noise (which is normally coming from my radio on the specified frequency) does not come back.
I am able to restart a transmission on a different frequency, so that the "noise" on the first frequency comes back. Unfortunately I have the problem on the new frequency then.

The only way to stop broadcasting is to reboot the raspberry.

I have testet pifrmrds some month ago and didn't have this problem.

What can I do? Is this a bug?

Raspbian GNU/Linux 7
PiFmRds from github 2014-12-05

Thank you!

Noob issues with Getting rds to work

Im pretty new to radio on any device, so getting the pi to transmit is quite hard work. I have installed everything correctly, yet when broadcasting it, no text appears what so ever on my radio or on my phone. I thought it wa my rx fault but then i realised it showed up other radio stations ps names.
If anyone could help that would be great.

ps (i know im a noob and i dont know what im talking about. I have had other experience on the raspberry pi though so plz dont be patronising

Launching at startup results Xorg at 100%

This is my instruction in a sh file (lauching with a cron instruction) :
sox -t mp3 http://radioserver3.profesionalhosting.com:10078/listen.pls -t wav - | sudo /home/pi/PiFmRds/src/pi_fm_rds -freq 90.0 -pi 1234 -ps Navas -rt ‘Transmisiones experiemtales’ -ctl /home/pi/PiFmRds/src/rds_ctl -audio -

I have too a laucher file in /etc/init.d but i have the same problem.

When i launch manual not have this problem.

What i can do?

** Sorry but i'dont speak english so well i want.

MPX output to soundcard

Hi!
I woluld like to use PiFmRds with a 192kHz capable sound card. Is there any chance to do it?
I need only the MPX signal on the sound card output.

Thanks.
Peppi

Interference

Just a question, what harmonics does this let out? Does this program let out anything else other than the MhZ FM signal?
Is there anyway to filter what does come out?
Regards

Won't compile on Raspberry Pi B+

Hey there. PiFmRDS doesn't seem to want to compile on my Raspberry Pi B+ and it keeps spitting out this error. Any ideas?

pi@raspberrypi ~/projects/PiFmRds-master/src $ make

gcc -Wall -std=gnu99 -c -g -O3 -march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math pi_fm_rds.c
pi_fm_rds.c:100:21: fatal error: sndfile.h: No such file or directory
compilation terminated.
Makefile:31: recipe for target 'pi_fm_rds.o' failed
make: *** [pi_fm_rds.o] Error 1

Possible to send RDS signals without Audio?

Would it be possible to send RDS signals out and if no audio is inserted not to send any? Basically, use this alongside another transmitter, one for audio and this for RDS? Currently when you launch this without specifying audio it sends out blank audio on the frequency I want to send no audio over the frequency just RDS text, RT, PS, TA etc.

RDS CT PTY and pre-emphasis

Hi!

PiFmRDS is a great project.
What I miss: pre-emphasis and RDS functions (CT, PTY).
It would be good if they can be included in future versions of these.

Many thanks to dev !

PS: Sorry my pour english.

Make Magazine's - improve quality patch

Make-Magazine/PirateRadio@484e189

I am trying to make the same changes to your code and am having some trouble locating the right place.

src/fm_mpx.c
@@ -244,7 +244,7 @@ int fm_mpx_get_samples(float *mpx_buffer) {
         if(channels>1) {
             mpx_buffer[i] +=
                 4.05 * carrier_38[phase_38] * out_stereo + // Stereo difference
-                .9*carrier_19[phase_19];                  // Stereo pilot tone
+                .83*carrier_19[phase_19];                  // Stereo pilot tone

             phase_19++;
             phase_38++;

I am pretty sure that was correct for one change. I do not see a multiplication by .1 but I do see two divisions by 10.
pi_fm_rds.c: float dval = data[data_index] * (DEVIATION / 10.);
rds_wav.c: mpx_buffer[i] /= 10.;

I expect the one I would want to change is the one that references mpx_buffer in rds_wav.c. Does that look right?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.