{"id":20155378,"url":"https://github.com/de4me/mpg123-xcode","last_synced_at":"2026-04-16T00:32:08.780Z","repository":{"id":153852883,"uuid":"428683786","full_name":"de4me/mpg123-xcode","owner":"de4me","description":"mpg123 - Fast console MPEG Audio Player and decoder library","archived":false,"fork":false,"pushed_at":"2025-07-02T08:29:57.000Z","size":8231,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-30T01:25:38.423Z","etag":null,"topics":["arm64","audio","codec","framework","macosx","mpg123","xcode"],"latest_commit_sha":null,"homepage":"https://mpg123.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/de4me.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-16T14:16:57.000Z","updated_at":"2025-07-02T08:30:02.000Z","dependencies_parsed_at":"2024-02-05T06:26:26.082Z","dependency_job_id":"3926b869-9432-4036-9bcb-71e411b7aaee","html_url":"https://github.com/de4me/mpg123-xcode","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/de4me/mpg123-xcode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/de4me%2Fmpg123-xcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/de4me%2Fmpg123-xcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/de4me%2Fmpg123-xcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/de4me%2Fmpg123-xcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/de4me","download_url":"https://codeload.github.com/de4me/mpg123-xcode/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/de4me%2Fmpg123-xcode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31866298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arm64","audio","codec","framework","macosx","mpg123","xcode"],"created_at":"2024-11-13T23:32:02.829Z","updated_at":"2026-04-16T00:32:08.766Z","avatar_url":"https://github.com/de4me.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n*   mpg123 - MPEG 1.0/2.0/2.5 audio player            *\n*   README for version 1.x.y, dated at 29.06.2025     *\n*                                                     *\n* ...still the fastest MPEG audio player for UNIX ;)  *\n* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n0. Stuff\n\nFor building/installation info see INSTALL.\n\nThe mpg123 project was started by Michel Hipp and is now being maintained\nby Thomas Orgis. The source code contains contributions from quite a few\npeople - see AUTHORS for more info.\n\nIt is Open Source software licensed mostly under the LGPL v2.1, COPYING\nfor details. Patents on MPEG audio used to be an issue, but around 2017\nthe last patents should have expired. I'm no lawyer, that is just my\nopinion, of course. Get your own to make sure (opinion or lawyer, whatever\nyou prefer).\n\nProject's official website URL is\n\n\thttps://mpg123.org\n\n(or https://mpg123.orgis.org as fallback address if there is a problem\nwith the DNS forwarding)\n\nfor the traditional home page and\n\n\thttps://sourceforge.net/projects/mpg123\n\nfor sourceforge.net based services like download mirrors, mailing lists\nand bug/feature trackers.\n\n\n1. Introduction\n\nThis is a console based decoder/player for mono/stereo mpeg audio files,\nprobably more familiar as MP3 or MP2 files.\nIt's focus is speed. We still need some low-end benchmarks for the\ncurrent version, but playback should be possible even on i486 CPUs. There\nis hand-optimized assembly code for i586, MMX, 3DNow, SEE and 3DNowExt\ninstructions, while generic code runs on a variety of different platforms\nand CPUs.\nIt can play MPEG1.0/2.0/2.5 layer I, II, II (1, 2, 3;-) files (VBR files\nare fine, too) and produce output on a number of different ways: raw\ndata to stdout and different sound systems depending on your platform\n(see INSTALL).\nMost tested are Linux on x86 and Alpha/AXP and MacOSX on ppc as the\nenvironments the current developers work in.\nWe are always thankful for user reports on success (and failure) on\nany platform!\n\n\n2. Contact\n\nshort:\n\n\tmpg123-devel@lists.sourceforge.net\n\tmpg123-users@lists.sourceforge.net\nor\n\tmaintainer@mpg123.org\n\nlong: see doc/CONTACT\n\n\n3. Interface/Usage\n\nPlease consult the manpage mpg123(1). Some starter info follows.\n\n3.1 Simple Console Usage\n\nMpg123 is a console program - normally it just plays a list of files\nyou specify on command line and that's it. See the included manpage or\n\n\tmpg123 --help\n\nor, for the full story,\n\n\tmpg123 --longhelp\n\non command line syntax/options. I encourage you to check out the --gapless\nand --rva-album/--rva-mix options:-)\n\nIn the simple \"mpg123 file1.mp3 file2.mp3\" mode, the only thing you can\ndo to interact is to press Ctrl+C to skip to next track or end the whole\nplayback if pressing it twice.\n\nNote that this Ctrl+C behaviour is special to this mode; when any of\nthe following is activated, Ctrl+C will just kill the program like you\nwould expect normally (this changed from earlier versions).\n\n3.2 Advanced Console Usage\n\nYou can specify the option -C to enable a terminal control interface\nenabling to influence playback on current title/playlist by pressing\nsome key:\n -= terminal control keys =-\n[s] or [ ]\tinterrupt/restart playback (i.e. '(un)pause')\n[f]\tnext track\n[d]\tprevious track\n[]]\tnext directory (next track until directory part changes)\n[[]\tprevious directory (previous track until directory part changes)\n[b]\tback to beginning of track\n[p]\tloop around current position (don't combine with output buffer)\n[.]\tforward\n[,]\trewind\n[:]\tfast forward\n[;]\tfast rewind\n[\u003e]\tfine forward\n[\u003c]\tfine rewind\n[+]\tvolume up\n[-]\tvolume down\n[u]\t(un)mute volume\n[r]\tRVA switch\n[v]\tverbose switch\n[l]\tlist current playlist, indicating current track there\n[t]\tdisplay tag info (again)\n[m]\tprint MPEG header info (again)\n[c] or [C]\tpitch up (small step, big step)\n[x] or [X]\tpitch down (small step, big step)\n[w]\treset pitch to zero\n[k]\tprint out current position in playlist and track, for the benefit\nof some external tool to store bookmarks\n[h]\tthis help\n[q]\tquit\n\nYou can change these bindings to key to your liking by modifying term.h .\n\nNote: This interface needs not to be available on _every_ platform/build.\n\nAnother note: The volume up and down is performed by changing the scale\nfactor (like the -f parameter) ... so the audio is scaled digitally in\nthe given range of the output format (usually 16bits). That means the\nlowering the volume will decrease the dynamic range and possibly lessen\nthe quality while increasing volume can in fact increase the dynamic\nrange and thus make it better, if you deal with a silent source and no\nclipping is necessary.\nIt is a good idea to use RVA values stored in the file for adjusting\nlow volume files, though - mpg123 handles that in addition to your\nvolume setting.\n\n3.3 Control Interface for Frontends\n\nThere used to be several interfaces for frontends left over from that\npast, but only one of them remains for the present and future:\n\n\tThe Generic Control Interface\n\nIt contains of communication of textual messages via standard input to\nmpg123 and responses to standard output unless the -s switch for output\nof audio data on stdout is used - then the responses come via stderr.\n\nSee doc/README.remote for usage.\n\n\n4. Speed\n\nmpg123 is fast. Any faster software player is probably based on some\nhacked mpg123;-)\nMPlayer included mpg123 source code in it's mp3lib and we have to\nbe thankful for the MPlayer folks adding SSE, 3DNowExt and AltiVec\noptimizations over the years, which we were able to backport.\n\nmpg123 includes the AltiVec optimization since version 0.61 and the SSE\nand 3DNowExt optimizations since 0.66 .\nAlso, version 0.66 adds the merged x86 optimization build, which includes\nevery applicable optimization for x86 cpus except the one for i486,\nwich is a bit special.\n\nNow mpg123 catched up with MPlayer's mp3lib concerning decoding speed\non my Pentium M (which supports SSE):\nDecoding a certain album (Queensryche's Rage for Order) to /dev/null took\n22.4s user time with mpg123-0.66 compared to 24.7s with MPlayer-1.0rc1 .\n\nAlso, beginning with mpg123 1.8.0, there are fresh x86-64 SSE\noptimizations (provided by Taihei Monma) which make mpg123 the fastest\nMPEG audio decoder in my knowledge also on current 64bit x86 systems.\nManual optimizations continued with AVX probably being the last vector\ninstruction set that makes sense to implement the decoder for.\n\nIn 2025, a Core i7-10710U CPU needs 5.97 s for Queensryche's Rage for\nOrder with the AVX decoder, 6.01 s with x86-64 (SSE) and 9.05 s with\ngeneric C code from the Ubuntu 22.04 build of mpg123 1.29.3.\n\n\n5. Accuracy\n\nThe mpg123 engine is able to decode in full compliance to ISO/IEC 11172-3,\nfor all three layers, using floating point or integer math (the latter\nsince 1.8.1).\nAccuracy of 16bit output depends on specific optimization in use and\ncompile-time choice about the rounding mode (which is performance\nrelevant).\n\nThe ISO test suite is incorporated in the mpg123 subversion repository\nunder svn://orgis.org/mpg123/test, nightly tests of a build (with\nhigh-quality 16bit rounding) are published on the mpg123 website.\n\nDithered 16bit output is available as an option (the --cpu choices ending\nwith _dither). See\n\n\thttp://dither123.dyndns.org\n\non the whereabouts.\n\n6. History\n\nA looooong time ago (mid-90s), Michael Hipp wrote some initial mpg123\nand made it _the_ Unix console mp3 player in the following years.\nThe exact date of birth is fuzzy in human memory, but according to the\nmaster himself (Michael) mpg123 started in 1994 as an MP2 player which\na year later, 1995, gained MP3 ability.\nThe core decoder files have mostly 1995 as their birth year listed,\nso one can say that mpg123 as the layer1,2,3 player was born in 1995.\nIn any case, that is a looooong time ago for a media player - especially\nfor one that is still alive!\n\nThis is the historic description:\n\n\tThis isn't a new player. It's a fully rewritten version originally\n\tbased\n\ton the mpegaudio (FHG-version) package. The DCT algorithm in the\n\tsynthesis filter is a rewritten version of the DCT first seen\n\tin the maplay\n\tpackage, which was written by Tobias Bading\n\t(bading@cs.tu-berlin.de). The\n\trewrite was necessary, because the GPL may not allow this\n\tcopyright mix.\n\tThe mpegaudio package was written by various people from the\n\tMPEG/audio\n\tsoftware simulation group. The maplay is under GPL .. You can\n\tfind the\n\toriginal source code and the mpegaudio package on:\n\tftp.tnt.uni-hannover.de.\n\n\tEspecially layer3.c common.c and mpg123.h is based on the\n\tdist10 package.\n\tThe code is fully rewritten but I'm using sometimes the\n\tsame variable names or similar function names as in the\n\toriginal package.\n\n\tIn the current layer3.c I'm using a DCT36 first seen in Jeff\n\tTsay's\n\t(ctsay@pasteur.eecs.berkeley.edu) maplay 1.2+ package. His code is\n\tunder GPL .. I also tried the enhancement from Mikko Tommila. His\n\tcode is also in layer3.c (but it's disabled at the moment, because\n\tit was slightly slower than the unrolled 9 point DCT (at least on\n\t_my_ system)). Theoretically it should be faster. You may try\n\tit on\n\tyour system.\n\nWell, that's how it started...\nOfficial development ceased due to the typical lack-of-time syndrome\naround 2002 and the free-floating patches began to seize the day.\n\nBut before that, Michael wrote or rewrote the essential code; others\ncontributed their bits.\nThe main message is:\n\nCode is copyrighted by Michael Hipp, who made it free software under\nthe terms of the LGPL 2.1.\n\nPlease see doc/ROAD_TO_LGPL, COPYING and AUTHORS for details on that. Note\nthat the only notable legacy non-LGPL file was the old alsa output that\ndidn't work with alsa 0.9/1.0 anymore.\nAlso, there has been a libao output in the betas 0.60 for a short\nperiod. Libao being generally problematic for us because of its\nGPL license, this output is not distributed anymore in the release\npackages. There is now a new, LGPLed alsa output that made both the old\nalsa and libao obsolete for our purposes.\nSo, the distributed mpg123 releases actually only contain LGPL code, but\nyou get the other files from our subversion repository if you checkout\nthe trunk / version tags.\n\nThere has been quite some confusion about the licensing and \"freeness\"\nof mpg123 in the past.\nThe initial \"free for private use, ask me when you want to do something\ncommercial\" license caused some people to avoid mpg123 and even to write\na replacement mimicking the interface but using a different decoding\nengine - what was not actively developed for too long but entered the\n\"free\" software sections.\n\nThe Debian (non-free section) and Gentoo distributions cared about the\nlast stable and the last development release of mpg123 over the years\nwith mainly applying security fixes. Thanks go to the distribution\nmaintainers for not letting it alone to bitrot over the years.\n\nThomas Orgis started to hack on mpg123 in 2004 while working on his\npersonal audio experience with mixplayd and later DerMixD, utilizing\nthe generic control interface. In Feb 2005, he crammed control interface\nimprovements together with Debian's r19 fixes and released the personal\nfork/patch named mpg123-thor.\nLittle later that year, Nicholas J. Humphrey independently created the\nsourceforge project and released an autotooled 0.59r under official GPL\nflag with Debian and MacOSX fixes.\nIn the beginning of 2006, Thomas finally decided that he could work\n\"officially\" on mpg123 and contacted Michael Hipp for taking over\nmaintainership.\nMichael was all-positive about letting mpg123 really live again (and\nperhaps see version 1.0 some time;-) and also pointed at the sourceforge\nproject that didn't see much activity since the initial release.\nA lot of emails and some weeks later there was the two-developer team\nof Nicholas and Thomas working on merging their mpg123 variants as well\nas adding some features and fixes to let it shine again.\n\nAnd there we are now...\n\n7. End\n\nHave fun!\n____________\nThomas Orgis\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fde4me%2Fmpg123-xcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fde4me%2Fmpg123-xcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fde4me%2Fmpg123-xcode/lists"}