segin / psymp3 Goto Github PK
View Code? Open in Web Editor NEWHome Page: http://code.google.com/p/psymp3/
License: Other
Home Page: http://code.google.com/p/psymp3/
License: Other
README FOR PSYMP3 2-CURRENT =========================== 1. Overview 2. System Requirements 3. Notes =========================== 1. OVERVIEW PsyMP3 is a simplistic audio media player with a flashy Fourier transform. PsyMP3 2.x is a radical departure from the code of the 1.x series. Whereas 1.x was written in FreeBASIC, 2.x is written in C++, and is portable! The "2-CURRENT" version tag represents the "bleeding edge" of development. End users shouldn't be using this; please use the last version tagged as -RELEASE. -CURRENT means "This is what I am working on, in whatever state it happens to be in, complete or not." You can reach me at <[email protected]>. 2. SYSTEM REQUIREMENTS Windows: Windows 10 or later. Windows 7 through 8.1 might work, YMMV. Linux, *BSD: The following dependencies are required: SDL 1.2 or later mpg123-1.8 or later taglib-1.6 or later libvisual-0.4 or later libvorbisfile libvorbis libopusfile libopus libogg libFLAC++ libFLAC FreeType 2.4 or later SDL_ttf 1.2 or later SDL_gfx 2.0 or later zlib-1.2.3 or later Mac OS X: Not officially supported, but building the dependencies for Linux/BSD with MacPorts might work. Building from git requires autoconf-archive for the extended macros. 3. USAGE Pass the paths to the MP3s, Ogg Vorbis, or Opus files to be played as program arguments. Audio files will be played in the order they are passed on the command line. All user interaction, aside from clicking the 'close' button for the window, is done via the keyboard. Keys and what they do: * ESC and Q: Quit PsyMP3. * Space: Pause (or resume) playback. * R: Restart the current track from the beginning * N: Seek to the next track. * P: Seek to the previous track. 4. NOTES At this time, PsyMP3 2.x is incomplete. There's very little UI code, and most features are missing at this time. If you are a developer, and are interested in helping me, please email me above. If you are an end user and you don't like this program, feel free to use something else, and check back later for improvements Unicode ID3 tags are supported. Please replace the included 'vera.ttf' with a different font file containing the Unicode glpyhs you desire. Advanced text layout is not supported (e.g. connected Arabic characters.) 5. LAST UPDATED This README was last updated on April 27th, 2024.
Vorbis::getData()
doesn't return how much of the buffer was actually filled with data; brief bursts of unexpected noise can be played at the very end of some Vorbis tracks.
Plus GCC chastises about it:
vorbis.cpp: In member function ‘virtual size_t Vorbis::getData(size_t, void*)’:
vorbis.cpp:86:1: warning: no return statement in function returning non-void [-Wreturn-type]
86 | }
| ^
The specific command to link on Ubuntu 22.04 is:
g++ -g -O2 -lmpg123 -ltag -lvorbisfile -lSDL_gfx -lSDL_ttf -lSDL -lFLAC++ -lFLAC -lopusfile -lSDL_ttf -o psymp3 about.o audio.o display.o exceptions.o fft.o fft_draw.o flac.o font.o libmpg123.o main.o mediafile.o mutex.o player.o playlist.o opus.o rect.o scrobble.o song.o stream.o surface.o system.o track.o truetype.o vorbis.o Widget.o
Similar occurs on msys2 when building for any target (UCRT64 is my preferred)
None of the external symbols outside of C library calls seem to get resolved unless the command is invoked manually with the external libraries (.dll or .so file) explicitly passed to the linker (or compiler invoking the linker.)
Add support for FLAC codec
Code doesn't check to see if anything is actually there, will attempt to load a path whether or not it's there.
Basically a null pointer dereference bug. Fix incoming.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.