CelliesProjects / ESP32_VS1053_Stream

A streaming library for Arduino esp32 with a vs1053 mp3/aac/ogg/flac decoder. Plays http, https (insecure mode) and chunked streams and parses the metadata. Also plays ogg and mp3 from sdcard.
MIT License
40 stars 10 forks source link

Stream name not decoded by one station, reason currently unknow #10

Closed Sentinel8000 closed 2 years ago

Sentinel8000 commented 2 years ago

Library working well, since weeks using still the esp32 board 2.0.2 core.

I have noticed trouble only by one station:

https://mediagw.e-tiger.net/stream/coolfm

Somehow library wont decode the station name, just the title - however wont have special characters: coolfm

CelliesProjects commented 2 years ago

Some radio stations do not send the station name over the stream. You can call audio_showstation() yourself with the station name just before connecting to the host, I also do that in my streamplayer.

CelliesProjects commented 2 years ago

Closing this for now. Feel free to re-open if needed.

Sentinel8000 commented 2 years ago

wait 1 sec:)

Sentinel8000 commented 2 years ago

Yeah, i know possible not all station sending both information.

I have used winamp to check this, if i good know winamp can read this icy name, if im checking File info, but in this case i see under Station: coolfm.

CelliesProjects commented 2 years ago

Let me check...

Sentinel8000 commented 2 years ago

Another rule what i have learned during using your library:

Every icy type webradio stream have minimal a common Station name.

On my webradio, this generate a weird effect, im store in a variable the station name, and if im switch to a another stream, because the function not read / push any new station name, i see the previous station name:) with the current artist/track name.

CelliesProjects commented 2 years ago

The station info is sent a bit strange via icy:

[ 19415][I][eStreamPlayer32_VS1053.ino:819] handlePastedUrl(): STARTING new url: https://mediagw.e-tiger.net/stream/coolfm with 0 items in playList
[ 19418][I][eStreamPlayer32_VS1053.ino:890] startCurrentItem(): Starting playlist item: 0
[ 19425][W][HTTPClient.cpp:258] beginInternal(): unexpected protocol: https, expected http
[ 19495][I][ssl_client.cpp:173] start_ssl_client(): WARNING: Skipping SSL Verification. INSECURE!
[ 21330][I][ESP32_VS1053_Stream.cpp:234] _parseMetaData(): metadata: StreamTitle='Joel Corry / David Guetta / Bryson Tiller - What Would You Do';
[ 22317][I][ESP32_VS1053_Stream.cpp:234] _parseMetaData(): metadata: StreamTitle='COOL FM - no.1 hit music - coolfm.hu';
[ 30310][I][ESP32_VS1053_Stream.cpp:234] _parseMetaData(): metadata: StreamTitle='Maroon 5 / SZA - What Lovers Do';

The info is in the StreamTitle data.

Sentinel8000 commented 2 years ago

Ah, this lookslike a icy server issue, not your library issue.

Sentinel8000 commented 2 years ago

Im not a developer, but, if you can wait few sec, i give you a youtube link, you can check yourself how i have used your libraray.

Sentinel8000 commented 2 years ago

https://youtu.be/BxsbCReP_Tk

CelliesProjects commented 2 years ago

Cool! Nice project!

On my webradio, this generate a weird effect, im store in a variable the station name, and if im switch to a another stream, because the function not read / push any new station name, i see the previous station name:) with the current artist/track name.

Also, send the station name just before connecting so you have the correct name on the display.

CelliesProjects commented 2 years ago

Also, the url above also works over http.

http://mediagw.e-tiger.net/stream/coolfm

Sentinel8000 commented 2 years ago

I have checked whats display the serial monitor under arduino ide, this problem comes because the variable wont get any new value as station name, as workaround i will try reset this variable after every change.

The current problem comes from, the function itself a trigger for variable, if i get new station name, knocks out the previous station name.

In first version i have a more primitive solution: i have stored a manual inputted Station names, not using the station name function.

Sentinel8000 commented 2 years ago

I have a another nice feature whats is not in video. The esp32 runs a webserver itself, and you can enter the statiuon urls via webbrowser. 11Névtelen

CelliesProjects commented 2 years ago

Check out

https://github.com/CelliesProjects/eStreamPlayer32_VS1053

With websocket push connection for streamtitle and station name.

Also a file progress bar over websocket. Also you can zap in the songs via the progress bar.

Sentinel8000 commented 2 years ago

Yeah, i have checked your project, you have maked a local music player what wont need any oled display. Yours more advanced like my wifi radio:) I just maked a simple web management site, without any extra controll.

Also i have succesfully adapted your utf8 decode solution, what with i have failed by first time, just need alter to use with OLED.

With oled i have lot troubles, driver etc.

Sentinel8000 commented 2 years ago

And i have maked a little mod in your library to give bass boost:

void ESP32_VS1053_Stream::setBassOn() { uint8_t rtoneCustom[4] = { 7, 15, 13, 8 } ; _vs1053->setTone(rtoneCustom); //bass treble }

void ESP32_VS1053_Stream::setBassOff() { uint8_t rtoneCustom[4] = { 0, 15, 0, 8 } ;
_vs1053->setTone(rtoneCustom); //bass treble }

in header:

void setBassOn(); void setBassOff();

So calling these you can set bass boost or set back to default, works well.

Not a realy important feature, but sounds better.

Sentinel8000 commented 2 years ago

Just a short follow up:

I have contacted with the coolfm support, the team confirmed the problem and waiting for developers to fix.

Also thank you for you for the investigation.