четверг, 19 сентября 2024 г.

Last Version audio player SW-AMP.

Here I will only share the latest version of my SW-AMP audio player.

LastVersion SW-AMP 1.2.0.37 (19 Sep 2024)

OldVersion SW-AMP 1.2.0.36 (16 Sep 2024)

If the player does not start on your Ubuntu 22.04 and 22.10 system, then you need to install a missing library on your system that cannot be added to appimage using the command:

user@host: sudo apt install libfuse2

And all the AppImages you have can run.

At the expense of distributing it in binary form - Appimage does not require root rights to install, so performing with user rights will not harm you, even if an attacker really wants it.



                      

                       19.09.2024
1. Fixed incorrect Chorus/Flanger effect integration.
2. Other serious errors were found and fixed.
3. A little tweaked interface.
    
                       16.09.2024
1. Due to the dependence of the interface on the language and operating system, I had to change 
    the location of the effects menu to the upper one.
2. Replaced the Chorus and Flanger effects with a much better Chorus/Flanger from the BassFX library.  
3.I also replaced the old reverberator, also from the BassFX library, with a very high-quality FreeVerb
4. Tweaked the interface for compatibility with other Linux distributions.

                       6.09.2024
1. A little cosmetics.
2. Error correction.

                       22.08.2024
1. Added bandwidth control of peak filters.
2. Added the option to collapse the playlist along with the player window.
3. Fixed autoplay errors.

                      11.08.2024
1. To reduce the size, I removed the effects from the field of view, except for the currently selected one.

                      1.08.2024
1. A lot of work has been done to identify errors and inconveniences.
2. Added 2 new effects - Peak Equalizer and Stereo Expander.
The peak equalizer has two filters for any frequency in the range of 40-18000 Hz. Can be used in a separate channel - left or right or both at the same time. In my opinion, it is very impressive.
The stereo expander based on the Haas effect is also pleasantly surprising.
                  
                      21.07.2024
1. Added options to save, reveal, close and delete your playlists.
2. The information to normalize the audio track is stored in ivy, so that the next time you play this audio track, you don't have to scan the file again.
3. The current playlist is displayed in the status bar of the playlist.
4. Removed from the player the function of deleting from the list of tracks that are currently unavailable for some reason (the DVD or flash drive was removed). Instead, the player reports that there is no such file. Otherwise, the playlist was lost in this way.

Note that actions in the current playlist directly affect its content. Therefore, if you do not want to change the saved playlist, it is better to close the player and open it again - then the pre-loaded playlist will be loaded from the default playlist and you can add audio tracks to it or delete it and then save this playlist with a different name.
For the correct operation of the new version of the program, due to the change in the structure of the playlist file, before the first launch, be sure to delete the file located in the swampproperties directory named listprop.xml:
./swampproperties/listprop.xml
When you close the player, the current playlist is saved in this file, and the next time you load the player, this playlist will be loaded, and if you make changes to it, you can also save them in another file.

                     21.06.2024    
1. The path of placing configuration files when using the function to open a file using another program in the system has been corrected.

                   05.06.2024    
1. Fixed the error of resuming the operation of the spectrum analyzer after returning from the tray.
2. Thorough improvement of the player interface.

                     27.05.2024    
1. Fixed audio track speed settings.

                     26.05.2024    
1. Added two new effects - "Compressor" and "Speed and pitch".
Speed - smoothly changes the playback speed of the audio track.
Pitch - changes the pitch of the track.
The compressor suppresses signals above the compression threshold, and signals below the compression threshold remain unchanged.
2. A gradual change in the speed of the audio track has also been added in the playlist menu.
3. Blocked elements of inactive effects in the effects window.

                     22.05.2024    
1. Completed the playlist window.
2. For convenience, added a menu item to end the application bypassing the tray.
After the update, you may need to delete the application settings folder, or simply go to the application settings and change the font size in the playlist.

                         19.05.2024
1. Further optimization.
2. Fixed errors found.
3. Added Georgian and Kazakh languages.
4. Left only the bar spectrum analyzer.

Please write which language you are missing in the player.

                         14.05.2024
1. In the spectrum analyzer, the scales have been changed to logarithmic.
2. Fixed errors found.

                         29.03.2024
1. Added view of album cover, in folder or subfolder 'covers'.
2. Bug fixes and cosmetic improvements.

                         16.03.2024
1. When the playing track is deleted from the playlist or when the playlist is cleared, the playback stops.
2. If, for some reason, one or more files have disappeared from your media or the path to them has changed since the previous start of the player, all missing files are deleted from the playlist.
3. Bit index of audio file quantization has been added.
4. The CPU load information has been changed, which now more adequately reflects the various components of this load.
Now you can even see a reduction in the load when the equalizer is disabled, when the output quantization frequency is changed, etc.
                     
                         10.03.2024
Added loading of the player from the terminal with an indication of the music file to be opened and the ability to launch the player by clicking on the audio file.
To do this, you need to select the audio file through the option to open with and point to the player file.

                         07.03.2024
1. Resolved the problem of an error with the playlist.
2. Improved window navigation.
3. Fixed errors found.
If there are any mistakes, don't hesitate to write.

                         06.03.2024
1. Fixed errors found.
                   
                        05.03.2024
1. Added font size change in playlist.
2. The load on the processor is reduced.
3. The playlist cleaning error has been fixed.
4. The possibility of sound overload has been reduced.
5. Fixed errors found.

                         19.11.2023
1. The playlist is now a separate window.
2. In the playlist, the font has increased.
3. More bugs fixed.

                         16.11.2023
1. Fixed the error of the player crashing when there is no access to a file that is already in the track list.
2. Further improvement of track levels and EQ.
   
                        15.11.2023
1. Optimized track normalization.
2. The work of the equalizer has been improved.
3. Deleted errors and added new ones :)

                        09.11.2023
1.Fixed track positioning errors.


                        14.06.2023
1. Fixed for OS Devuan.

                        03.04.2023
1. Fixed normalized samples.
2. Fixed Cue playlist open.
3. Added the ability to play OPUS format files.

                        15.03.2023 

1. Added Polish and French languages.
2. Fixed a bug that caused a crash when adding files.


понедельник, 27 мая 2024 г.

Dynamic loading of the libbass_fx.so library into the Lazarus project.

 I'm building an audio player for Linux. I'm writing it on freepascal in the Delphi-like Lazarus IDE using the BASS audio library. 

But there are libraries for Linux, but it is extremely difficult to find documentation on their use in Linux.   And even on the support forum for these libraries, I did not find a decent solution. 

Therefore, I want to share my work with interested people.

With the dynamic library lazdynamic_bass, I seem to have succeeded, but when I tried to add another processing effect to the 'Compressor' channel, it turned out that it was missing from this library. So I decided to include the libbass_fx.so library. If downloading the codec libraries did not cause any problems, connecting this library turned out to be not so simple.

Dynamic loading using the DynLibs library is the first thing that allowed this library to be loaded somehow.

lib:=LoadLibrary(Pchar(Path+'libbass_fx.so'));

It worked with the path to the library '.../lib/libbass_fx.so', but if you add an additional folder to the path of this library, for example '.../lib/fx/libbass_fx.so', the library was not loaded. Of course, the library file was in this subfolder.

But this is not the worst thing either. I was able to add the Compressor2 effect from this library to the project this way and it even worked as it should, but I was concerned that calling the BASS_FX_GetVersion function threw an exception. 

And it turned out that my worries were not in vain. When I tried to add another BASS_ATTRIB_TEMPO effect to the effects it also threw an exception and I had to look for answers to my questions in the text of Dynamic_BassFX.pas

It turned out that this library has a similar function for loading the library as in lazdynamic_bass.pas

In lazdynamic_bass.pas, this function Load_BASSDLL(PChar(fname)) loads the BASS library.

In Dynamic_BassFX.pas, this function Load_BASSFXDLL(PChar(fname)) loads the BASS_FX library.

Now all functions of this library work correctly!

Динамічне завантаження бібліотеки libbass_fx.so у проєкт на Lazarus.

 Я створюю аудіоплеєр для Linux. Пишу я його на freepascal у Делфі-подібній IDE Lazarus з використанням аудіобібліотеки BASS. 

Але бібліотеки для Linux є, але знайти документацію по їх використанню у Linux вкрай складно.  І навіть на форумі підтримки цих бібліотек я не знайшов гідного рішення. 

Тому хочу поділитись з зацікавленими людьми моїми напрацюваннями.

З динамічною бібліотекою lazdynamic_bass в мене начебто склалося, але при спробі додати ще один ефект обробки каналу 'Compressor', виявилось що він відсутній у цій бібліотеці. Тому я вирішив підключити бібліотеку libbass_fx.so. Якщо завантаження бібліотек кодеків не викликало ніяких проблем, то з підключенням цієї бібліотеки виявилось не все так просто.

Динамічне завантаження за допомогою бібліотеки DynLibs це перше що дозволило якось завантажити цю бібліотеку.

lib:=LoadLibrary(Pchar(Path+'libbass_fx.so'));

Це спрацьовувало при шляху до бібліотеки '.../lib/libbass_fx.so' , але якщо додати додаткову теку до шляху цієї бібліотеки наприклад '.../lib/fx/libbass_fx.so', то вже бібліотека не завантажувалася. Звісно що файл бібліотеки знаходився у цій підтеці.

Але і це не найстрашніше. Мені вдалося додати до проєкту таким чином ефект Compressor2 з цієї бібліотеки і він навіть працював як треба, але мене занепокоїло, що виклик  функції  BASS_FX_GetVersion викликало виключення. 

І виявилося що мої занепокоєння не марні. При спробі додати до ефектів інший ефект  BASS_ATTRIB_TEMPO він також викликав виключення і мені довелося шукати відповіді на свої питання у тексті Dynamic_BassFX.pas

Виявилося що у цій бібліотеці є схожа функція для завантаження бібліотеки як і у lazdynamic_bass.pas

У lazdynamic_bass.pas ця функція Load_BASSDLL(PChar(fname)) завантажує бібліотеку BASS.

У Dynamic_BassFX.pas ця функція Load_BASSFXDLL(PChar(fname)) завантажує бібліотеку BASS_FX.

Тепер всі функції цієї бібліотеки працюють коректно!

AdSen

Популярные сообщения