XMMS2

XMMS2
XMMS2
XMMS2-Logo-white-128.png
개발자XMMS 팀
최종 릴리즈
0.8 DrO+WIP / 2011년 10월 20일, 10년 전(2011년 10월 20일)[1]
프리뷰 릴리즈
0.9 DrP
저장소
기입처C[2]
운영 체제Unix와 같은
유형오디오 플레이어
면허증.LGPL-2.1 이후[3]
웹 사이트www.xmms2.org

XMMS2(X-platform Music Multiplexing System 2)는 XMMS 오디오 플레이어의 신세대입니다.XMMS 코드 베이스와는 별도로 처음부터 작성된 새로운 설계입니다.XMMS의 원작자 중 한 명인 Peter Alm은 XMMS2의 초기 설계와 코드화를 담당했지만(2002년 후반~[4]2003년 초반) 이후 Tobias Rundström과 Anders [5]Gustafsson에게 프로젝트를 추진하는 책임을 떠넘겼습니다.LXDE의 디폴트 음악 플레이어 애플리케이션인 LXMusic은 XMMS2 클라이언트입니다.

디자인 컨셉

XMMS2는 재생 제어, 재생 목록, 플러그인, 사용자 설정 가능한 GUI 등의 XMMS 시대의 음악 플레이어에서 개념을 차용하고 미디어 라이브러리 및 클라이언트 서버 설계 등의 기능을 추가합니다.

XMMS와 마찬가지로 XMMS2에는 플러그인 아키텍처가 있습니다.이것은 런타임에 특정 기능을 제공하는 로드 가능한 라이브러리에 특정 기능이 위임되는 모듈러 아키텍처의 일종입니다.XMMS는 5종류의 플러그인을 인식했습니다.

  • 파일 또는 스트림을 읽고 디코딩하기 위한 입력 플러그인입니다.
  • 사운드 출력을 처리하는 출력 플러그인.
  • 이펙트 플러그인은 출력하기 전에 디코딩된 오디오 데이터에 이펙트를 추가합니다.
  • 재생되는 오디오에 따라 다른 시각적 애니메이션을 제공하는 시각화 플러그인.
  • 적외선 리모컨 또는 조이스틱을 통해 XMMS를 제어하는 등 다양한 기능을 사용할 수 있는 일반 플러그인입니다.

XMMS2에서는 5종류의 플러그인도 인식되지만 기능은 다소 다릅니다.

  • 파일 또는 스트림을 읽기 위한 전송 플러그인.
  • 트랜스포트 플러그인으로 판독된 데이터를 디코딩하기 위한 디코더 플러그인.
  • 출력하기 전에 디코딩된 오디오 데이터에 효과를 추가하는 이펙트 플러그인.
  • 사운드 출력을 처리하는 출력 플러그인.
  • 재생 목록 데이터의 Import 및 내보내기를 처리하는 재생 목록 플러그인.

XMMS2와 달리 XMMS에는 사용자의 미디어 컬렉션에 대한 정보를 저장하는 라이브러리가 없었습니다.XMMS가 알고 있는 미디어 리소스는 재생 목록뿐이었습니다.2000년경부터 Winamp와 SoundJam MP와 같은 플레이어는 아티스트, 타이틀, 날짜, 재생 횟수 등의 파일에 저장된 메타데이터를 캐싱할 수 있는 간단한 데이터베이스 기능을 구현하기 시작했다.

XMMS2의 미디어 라이브러리는 재생 목록과 잘 통합되어 있습니다.이 통합을 통해 재생 목록에 추가된 모든 파일 또는 스트림은 미디어 라이브러리에 의해 메타데이터가 자동으로 캐시됩니다.이 작업은 모든 고유 URL에 대해 한 번만 수행되므로 메타데이터가 라이브러리에 이미 있는 경우 다시 읽히지 않습니다.메타데이터 이외에도 미디어 라이브러리는 플레이리스트를 빠르고 효율적으로 저장 및 새로고침할 수 있어 사용자의 음악 컬렉션에 한 곳에서 모두 액세스할 수 있습니다.

미디어 플레이어에서 거의 구현되지 않은 XMMS2의 기능 중 하나는 클라이언트-서버 아키텍처입니다.XMMS2를 사용하면 미디어를 검색, 선택 및 재생하기 위한 여러 인터페이스 구현 중에서 선택할 수 있으며, 오디오가 "백그라운드"에서 재생되는 동안 인터페이스를 닫을 수 있습니다.인터페이스는 언제든지 다시 열어서 사용할 수 있습니다.*nix에서 유사한 기능을 가진 다른 플레이어로는 음악 플레이어 데몬과 콘솔의 음악이 있습니다.

디자인

처음에 XMMS2는 단순한 공유 라이브러리였습니다.즉, XMMS2는 오디오 스트림을 디코딩하고 재생하는 메커니즘을 처리하기 위한 백엔드 코드이므로 사용자 인터페이스를 제공하는 컴파일된 프로그램에 링크해야 합니다.이 개념은 프런트엔드와 백엔드의 유연한 결합을 가능하게 하기 위해 [6]나중에 클라이언트-서버 모델로 확장되었습니다.이 접근방식의 장점은 다음과 같습니다.

  • 이것에 의해, 호환성이 있는 클라이언트는, XMMS2 데몬의 1개의 인스턴스에 접속해 제어할 수 있습니다.
    • 클라이언트는 다양한 유형의 사용자 인터페이스를 제공할 수 있습니다.그래픽 또는 텍스트 기반이며, 다양한 툴킷을 사용하여 구현되며, 다양한 데스크톱 환경과 통합됩니다.
    • 클라이언트 개발자는, 재생 코드에 대한 염려 없이, 인터페이스의 사용성의 향상에 전념할 수 있습니다.
  • TCP 소켓을 사용하면 사용자는 TCP/IP 네트워크를 통해 XMMS2 데몬을 원격으로 제어할 수도 있습니다.

XMMS의 플러그인 아키텍처를 통해 확장이 가능했지만, 어떤 면에서는 비효율적이었습니다.XMMS2는 그 점을 개선하려고 합니다.

  • XMMS에는 데이터를 읽고 오디오로 디코딩하는 입력 플러그인이 있다.XMMS2는 이를 Transport 스테이지와 Decode 스테이지로 분할하여 단일 트랜스포트 플러그인이 임의의 디코더 플러그인(웹 사이트에서 mp3 데이터를 읽는 HTTP 플러그인 등)에 데이터를 제공할 수 있도록 합니다.
  • 범용 플러그인은 스탠드아론 클라이언트에 의해 제공되지만 플러그인 아키텍처는 그대로 존재하기 때문에 XMMS2에서는 그다지 관련이 없는 것으로 판명될 수 있습니다.
  • XMMS는 일반적인 방법으로 컨테이너 형식을 처리할 수 없습니다.XMMS2 아키텍처는 컨테이너 포맷에 대한 지원을 쉽게 구축할 수 있도록 합니다.

XMMS2 및 기타 프로젝트

XMMS2라는 이름은 Peter Alm과 Tobias Rundström이 XMMS의 후계자가 되기 위해 프로젝트를 시작하면서 선택되었습니다.그러나 Peter와 Tobias가 코드를 공개하기 전인 2003년에 다른 개발자가 이 이름을 사용하기 시작했습니다.

  • 또 다른 프로젝트인 XMMS2는 "잘 알려진 xmms의 Gtk 2 포트"로 설명되었습니다.이것은 이 기사의 나머지 부분에서 설명하는 프로젝트와는 관련이 없습니다.이 프로젝트는 이제 중단되어 GNU Savannah에서 삭제되었습니다.
  • XMMS의 GTK+2 포트는 비프 미디어 플레이어로, XMMS2로 불리기도 합니다.[7]BMP FAQ에서는 이 프로젝트와 XMMS의 관계에 대해 설명하고 있습니다.

XMMSXMMS2의 약어는 XMMS는 X(원래 X11에서 크로스 플랫폼) MultiMedia System, XMMS2는 X(크로스 플랫폼) 음악 멀티플렉싱 시스템을 의미합니다.이 결정은 XMMS2가 비디오 지원 일반 멀티미디어 플레이어가 아닌 오디오 플레이어라는 것을 명확히 하기 위해 내려졌습니다.

레퍼런스

  1. ^ 로그 변경
  2. ^ XMMS2 대 MPD
  3. ^ 카피
  4. ^ 프로젝트 이력 아카이브 2006년 10월 11일 XMMS2 프로젝트 Wayback Machine에서 2007년 1월 11일 취득
  5. ^ 2007년 1월 2일, XMMS2 프로젝트 Wayback Machine에서 2007년 1월 11일 취득한 리드 디벨로퍼 아카이브
  6. ^ XMMS2 설계 2005년 10월 27일 Wayback Machine에서 2007년 1월 11일 취득한 XMMS2 설계
  7. ^ Thomas Nilsson, 2003-11-08의 'Another one'은 2007년 1월 11일에 취득되었습니다.

외부 링크