Coder Social home page Coder Social logo

psymp3's Introduction

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.

psymp3's People

Contributors

segin avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

netman69

psymp3's Issues

Vorbis class doesn't properly return sample buffer fill

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 | }                                                                                                                                                                                                                                       
      | ^

Build fails on link stage on Ubuntu 22.04 and msys (possibly others)

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.)

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.