Stream name not decoded by one station, reason currently unknow
Closed this issue · 18 comments
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
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.
Closing this for now. Feel free to re-open if needed.
wait 1 sec:)
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.
Let me check...
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.
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.
Ah, this lookslike a icy server issue, not your library issue.
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.
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.
Also, the url above also works over http.
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.
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.
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.
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.
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.