KR20080059677A - 소프트웨어 분배 - Google Patents

소프트웨어 분배 Download PDF

Info

Publication number
KR20080059677A
KR20080059677A KR1020087014067A KR20087014067A KR20080059677A KR 20080059677 A KR20080059677 A KR 20080059677A KR 1020087014067 A KR1020087014067 A KR 1020087014067A KR 20087014067 A KR20087014067 A KR 20087014067A KR 20080059677 A KR20080059677 A KR 20080059677A
Authority
KR
South Korea
Prior art keywords
version
software application
installation file
host device
installation
Prior art date
Application number
KR1020087014067A
Other languages
English (en)
Inventor
주카 홀름
파울리 라이네
찰리 쉬크
올라비 토이바이넨
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Priority to KR1020087014067A priority Critical patent/KR20080059677A/ko
Publication of KR20080059677A publication Critical patent/KR20080059677A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

제1 패키징된 설치 파일(10a)을 수신하기 위한 수단(15); 상기 수신된 제1 패키징된 설치 파일(10a)을 사용하여 소프트웨어 애플리케이션의 제1 버전(5a)을 설치하기 위한 설치 수단(12); 상기 소프트웨어 애플리케이션의 제2 버전(5b)을 설치하기 위하여, 제2의 패키징된 설치 파일(10b)을 생성하기 위한 패키징 수단(12); 및 상기 제2의 패키징된 설치 파일을 제2 호스트 장치(2a, 2b...)로 전송하기 위한 전송 수단(16)을 포함하는 전자 장치가 제공된다. 앙상블로서 장치들에 의한 음악의 상호 작용 생성을 가능하게 하도록 세션중 데이터를 다른 장치로 송신하기 위한 핸드-포터블 전자 장치에 있어서, 세션중 음악 동기 정보를 상기 다른 장치로 송신하도록 동작가능한 출력 수단; 세션중 음악 제어 데이터와 음악 동기 정보 중 적어도 하나의 내용을 제어하기 위한 사용자 입력; 및 상기 제1 음악 제어 데이터와 상기 음악 동기 정보에 의존하여 음악을 생성하기 위한 합성기를 포함하는 핸드-포터블 전자 장치가 제공된다.
소프트웨어, 분배, 전자, 장치, 설치, 파일, 음악

Description

소프트웨어 분배{Software distribution}
본 발명의 실시예들은 소프트웨어 애플리케이션들의 분배에 관한 것이다.
소프트웨어 애플리케이션을 한 장치로부터 전송함으로써 소프트웨어 애플리케이션을 분배할 수 있고, 상기 소프트웨어 애플리케이션이 단순하고 효과적인 방법으로 다른 장치로 설치되는 것이 바람직할 것이다.
또한 상기 소프트웨어 애플리케이션의 발신자가 상기 분배 프로세스를 제어하도록 허용하는 것이 바람직할 것이다.
본 발명은 소프트웨어 애플리케이션을 한 장치로부터 전송함으로써 소프트웨어 애플리케이션을 분배할 수 있고, 상기 소프트웨어 애플리케이션이 단순하고 효과적인 방법으로 다른 장치로 설치되도록 하는 것이다. 또한 본 발명은 상기 소프트웨어 애플리케이션의 발신자가 상기 분배 프로세스를 제어하도록 허용하는 것이다.
본 발명의 제1 태양에 의하면 제1 설치 파일(10a)을 사용하여 소프트웨어 애플리케이션의 제1 버전(5a)을 설치하기 위한 설치 수단(12); 및 제2 호스트 장치(2a, 2b...)에 상기 소프트웨어 애플리케이션의 제2 버전을 설치하기 위하여 상기 제1 설치 파일과 관련된 제2 설치 파일을 상기 제2 호스트 장치로 전송하기 위한 전송 수단(16)을 포함하는 전자 장치가 제공된다. 상기 제2 버전은 제한된 사용과 같은, 감소된 기능을 지닐 수 있다. 상기 기능은 제1 설치 파일의 내용에 의해 미리 결정될 수 있다. 제2 호스트 장치에 설치된 상기 소프트웨어 애플리케이션의 제2 버전은 단지 상기 제1 호스트 장치에 설치된 상기 소프트웨어 애플리케이션의 상기 제1 버전과 동작할 수 있다. 상기 장치는 부가적으로 상기 제2 설치 파일(10b)을 생성하기 위한 패키징 수단(12)을 포함할 수 있다.
본 발명의 제2 태양에 의하면 제1 설치 파일(10a)을 사용하여 소프트웨어 애플리케이션의 제1 버전(5a)을 설치하는 단계; 및
상기 소프트웨어 애플리케이션의 제2 버전(5b)을 설치하기 위하여 제2 설치 파일(10b)을 제2 호스트 장치(2a, 2b...)로 전송하는 단계를 포함하는 소프트웨어 애플리케이션을 공유하는 방법이 제공된다.
본 발명의 제3 태양에 의하면, 제1 호스트 장치(1)에 소프트웨어 애플리케이션의 설치된 제1 버전(5a)을 제공하기 위한 수단; 상기 제1 호스트 장치(1)가 제2 설치 파일(10b)을 제2 호스트 장치(2a, 2b...)로 전송할 수 있게 하는 수단을 포함하며, 상기 제2 설치 파일은 상기 제2 호스트 장치(2a, 2b...)에 상기 소프트웨어 애플리케이션의 설치된 제2 버전(5b)을 제공하기 위한 수단을 포함하는 제1 설치 파일(10a)이 제공된다.
본 발명의 다른 태양에 의하면 앙상블로서 장치들에 의한 음악의 상호 작용 생성을 가능하게 하도록 세션중 데이터를 다른 장치로 송신하기 위한 핸드-포터블 전자 장치에 있어서, 세션중 음악 동기 정보를 상기 다른 장치로 송신하도록 동작가능한 출력 수단; 세션중 음악 제어 데이터와 음악 동기 정보 중 적어도 하나의 내용을 제어하기 위한 사용자 입력; 및 상기 제1 음악 제어 데이터와 상기 음악 동기 정보에 의존하여 음악을 생성하기 위한 합성기를 포함하는 핸드-포터블 전자 장치가 제공된다. 상기 출력 수단은 세션 이전에, 제2 음악 제어 데이터와 동기 정보에 의존하여 음악의 생성을 가능하게 하기 위하여 소프트웨어 애플리케이션을 상기 다른 장치로 전송하도록 동작가능할 수 있다.
본 발명의 다른 태양에 의하면 마스터 장치와 적어도 하나의 슬레이브 장치를 포함하는 네트워킹된 핸드-포터블 전자 장치의 앙상블을 사용하여 상호 작용적 으로 음악을 생성하는 방법에 있어서, 음악 동기 정보를 상기 마스터 장치로부터 상기 슬레이브 장치(들)로 송신하는 단계; 상기 장치에서의 사용자 입력에 응답하여 각 장치에서, 음악 제어 데이터를 생성하는 단계; 및 내부에서 생성된 음악 제어 데이터와 상기 음악 동기 정보에 의존하여 각 장치에서 음악을 합성하는 단계를 포함하는 방법이 제공된다.
본 발명의 더 나은 이해를 위하여 단지 예로서 첨부한 도면들이 이제 참조될 것이다.
본 발명에 의하면, 소프트웨어 애플리케이션을 한 장치로부터 전송함으로써 소프트웨어 애플리케이션을 분배할 수 있고, 상기 소프트웨어 애플리케이션이 단순하고 효과적인 방법으로 다른 장치로 설치되도록 할 수 있다. 또한 본 발명에 의하면, 상기 소프트웨어 애플리케이션의 발신자가 상기 분배 프로세스를 제어하도록 할 수 있다.
도 1은 소프트웨어 애플리케이션을 분배하는 하나의 방법을 도시한 것이다. 제1 호스트 장치(1)는 제1 설치 파일(10a)을 수신했다. 본 예에서, 상기 호스트 장치(1)는 컴퓨터 장치이고 그것은 서버(4)로부터 상기 제1 설치 파일(10a)을 다운로드했다. 다른 실시예들에서, 상기 제1 설치 파일은 상기 호스트 장치에 의해 읽혀질 수 있는 메모리 카드와 같은, 휴대용 메모리상에 제공될 수 있다.
상기 제1 설치 파일(10a)은 상기 제1 호스트 장치(1)에 상기 소프트웨어 애 플리케이션의 설치된 제1 버전(5a)을 제공한다. 그것은 또한 상기 제1 호스트 장치(1)가 하나 이상의 제2 호스트 장치들(2a, 2b...)로 제2 설치 파일(10b)을 전송할 수 있게 한다.
상기 제2 설치 파일(10b)은 상기 제2 호스트 장치들(2a, 2b...)에 상기 소프트웨어 애플리케이션의 설치된 제2 버전(5b)을 제공한다. 그것은 또한 상기 제2 호스트 장치들(2a, 2b...) 각각이 하나 이상의 제3 호스트 장치들(3a, 3b, 3c...)로 제3 설치 파일(10c)을 전송할 수 있게 한다. 상기 제3 설치 파일(10c)은 상기 제3 호스트 장치들(3a, 3b) 각각에 상기 소프트웨어 애플리케이션의 설치된 제3 버전(5c)을 제공한다. 상기 소프트웨어 애플리케이션의 분배는 더 많은 장치들로 계속될 수 있다. 따라서 상기 소프트웨어의 버전들은 '가상으로' 분배될 수 있다.
제1 실시예에서, 상기 제1 버전(5a)은 예를 들어 상기 제1 호스트 장치(1)의 사용자에 의해 구입된 상기 소프트웨어 애플리케이션의 완전하게 기능적인 버전이고 상기 제2 및 제3 버전들(5b, 5c) 양자는 감소된 기능을 지닌 상기 소프트웨어 애플리케이션의 '데몬스트레이션' 버전이다. 상기 제1 패키징된 설치 파일(10a)의 생성자는 그것이 상기 제2 설치 파일(10b)로서 그 자체의 비-정확 복사본을 분배하도록 상기 제1 설치 파일(10a)을 설계했다. 상기 제2 설치 파일(10b)은 상기 제3 설치 파일(10c)로서 그 자체의 정확한 복사본(상기 제1 설치 파일(10a)의 비-정확 복사본)을 분배할 수 있다.
대안적으로, 제2 실시예에서, 상기 소프트웨어 애플리케이션의 모든 버전들(5a, 5b, 5c)은 상기 소프트웨어 애플리케이션의 완전하게 기능적인 버전들일 수 있다. 이 경우, 상기 제1 패키징된 설치 파일(10a)의 생성자는 그것이 상기 제2 설치 파일(10b)로서 그 자체의 정확한 복사본을 분배하도록 상기 제1 패키징된 설치 파일(10a)을 설계했다.
도 2는 적합한 호스트 장치(1)를 개략적으로 도시한 것이다. 그것은 사용자 입력 인터페이스(UI), 프로세서(12), 메모리(13), 디스플레이(14), 데이터를 수신하기 위한 입력(15) 및 데이터를 전송하기 위한 출력(16)을 구비한다. 상기 사용자 입력 인터페이스(11)는 상기 프로세서(12)에 연결되어 있고 상기 장치(1)의 사용자가 상기 프로세서(12)를 통해 상기 장치의 동작을 제어하도록 허용한다. 상기 프로세서(12)는 상기 입력(15) 및 상기 출력(16)에 연결되어 있다. 그것은 상기 입력(15)을 통해 수신된 데이터를 수신하고 처리하도록 동작가능하고 전송을 위해 상기 출력(16)으로 데이터를 제공하도록 동작가능하다. 상기 프로세서(12)는 상기 메모리(13)에 연결되어 있고 상기 메모리(13)로부터 읽고 상기 메모리(13)에 쓰도록 동작가능하다. 상기 프로세서(12)는 또한 상기 디스플레이(14)를 제어하도록 동작가능하다. 다른 실시예들에서, 상기 디스플레이 및 사용자 입력 인터페이스는 결합될 수 있다. 상기 입력(15) 및 출력(16)은 각각 무선 주파수 수신기 및 송신기일 수 있고, 대안적으로 그들은 단일 물리적 인터페이스(예를 들어 USB 포트)의 일부일 수 있다.
설치 파일(10)은 입력(15)을 통해 수신될 수 있고 상기 프로세서(12)에 의해 메모리(13)에 저장될 수 있다. 상기 설치 파일(10)은 상기 장치(1)에 소프트웨어 애플리케이션을 설치하기 위하여 상기 프로세서(12)에 의해 사용된다. 상기 설치 파일은 또한 상기 프로세서(12)가 상기 출력(16)을 통해 하나 이상의 다른 장치들로 다른 설치 파일을 전송할 수 있게 한다.
상기 제1 설치 파일(10a)은 상기 제2 설치 파일(10b)을 포함할 수 있다. 상기 파일은 상기 제1의 완전한 버전 및 개별 제2 데모 버전을 포함할 수 있다. 상기 제2 설치 파일(10b)에 의해 제공된 상기 소프트웨어 애플리케이션의 제2 버전은 상기 제1 버전과 비교하여 감소된 기능을 지닌다. 일 실시예에서, 상기 소프트웨어 애플리케이션의 제2 버전의 사용은 제한된다. 그것은 그것이 상기 제1 장치와 통신하는 경우에만 정확하게 동작한다. 상기 제2 버전의 상이한 기능은 제1 설치 파일의 내용에 의해 미리 결정된다.
대안적으로, 상기 제1 설치 파일(10a)은 상기 소프트웨어 애플리케이션의 설치된 제1 버전(5a)으로부터 상기 제2 설치 파일(10b)을 생성하기 위한 메커니즘을 포함할 수 있다. 상기 메커니즘은 서로에 대한 상기 소프트웨어 애플리케이션의 버전들의 관계가 미리 결정되도록 상기 제1 설치 파일(10a)의 내용내에서 사전-프로그램될 수 있다. 따라서 상기 제1 및 제2 설치 파일들은 패키징된 설치 파일들일 수 있다.
도 3은 데이터 부분(22); 디-패키징(de-packaging) 부분(24) 및 재-패키징 부분(26)을 포함하는 하나의 가능한 유형의 패키징된 설치 파일(10)을 개략적으로 도시한 것이다. 상기 부분들은 반드시 물리적으로 구별되거나 개별적으로 식별가능하지 않다. 그들은 상기 패키징된 설치 파일(10)의 내용의 상이한 목적들을 나타낸다. 상기 패키징된 설치 파일은 압축된 포맷으로 되어 있을 수 있다.
상기 예에서, 상기 데이터 부분(22)은 일단 상기 소프트웨어 애플리케이션이 설치되는 경우 상기 소프트웨어 애플리케이션을 인에이블시키는데 필요한 모든 정보를 포함한다.
상기 디-패키징 부분(26)은 상기 데이터 부분이 설치되어야 하는 방식을 지정하는 설치 정보를 포함한다. 예를 들어 그것은 새로운 디렉토리들, 서브-디렉토리들 및 파일들의 생성을 포함하는 소정의 데이터 구조를 지정할 수 있다.
상기 재-패키징 부분(26)은 나중에, 다른 장치로의 전송을 위해 상기 소프트웨어 애플리케이션의 설치된 버전으로부터, 패키징된 설치 파일이 생성되는 방법을 지정한다.
상기 패키징된 설치 파일들은 예를 들어 MIME 확장자 ".sis"를 지닌 압축된 심비안(Symbian) 설치 파일일 수 있다.
패키징된 설치 파일을 사용하는 설치 프로세스가 도 4a에 도시되어 있다. 소프트웨어 애플리케이션을 설정하기 위한, 패키징된 설치 파일(10)은 단계 40에서 상기 호스트 장치(1)의 입력(15)에서 수신된다. 상기 파일(10)은 단계 41에서 상기 프로세서(12)에 의해 압축해제되고 메모리(13)에 임시로 저장된다. 그다음 상기 소프트웨어 애플리케이션은 단계 42에서 상기 디-패키징 부분(24)으로부터 읽혀진 설치 정보에 따라 상기 프로세서(12)에 의해 설치된다. 필요한 새로운 디렉토리들, 서브-디렉토리들 및 파일들은 상기 프로세서(12)에 의해 설치 정보에 지정된 바와 같이 생성된다. 상기 설치 정보는 상기 패키징 부분(26)의 일부로서 저장되고 단지 상기 설치된 소프트웨어 애플리케이션에 액세스가능하다.
상기 패키징된 설치 파일의 재-패키징 부분(26)은 다른 호스트 장치로 상기 소프트웨어 애플리케이션의 버전을 분배하기 위하여 상기 설치된 소프트웨어 애플리케이션의 사용자 입력 인터페이스(11)에 사용자 선택가능한 옵션을 제공한다.
상기 옵션이 선택되는 경우 상기 프로세서(12)에 의해 수행되는 분배 프로세스가 도 4b에 도시되어 있다. 사용자는 단계 50에서 UI(11)를 통해 상기 소프트웨어 애플리케이션내에서부터 상기 소프트웨어 애플리케이션의 버전을 분배하기 위한 옵션을 선택한다. 이것은 상기 설치 프로세스의 역인, 상기 프로세서(12)에서의 재 패키징 프로세스(51)를 활성화한다. 하지만, 어떤 기능이 부가적으로 상기 재 패키징된 파일에 포함되거나 배제/디세이블될 수 있다.
상기 호스트 장치의 프로세서(12)는 어떤 상세, 어떤 파일들이 설치시 생성되었는지에 대해, 상기 재 패키징 부분(26)으로부터의 설치된 소프트웨어 애플리케이션에 대한 설치 정보에 액세스한다(52).
상기 프로세서(12)는 단계 53에서 필요한 경우 변경되게 상기 파일들의 복사본들을 재 패키징하고 단계 54에서 그들을 압축한 후 단계 55에서 다른 장치로 패키징된 설치 파일로서 그들을 전송한다. 상기 패키징된 설치 파일(10)은 또한 데이터 부분(22), 디-패키징 부분(24) 및 재-패키징 부분(26)을 구비한다.
변경이 필요한지에 대해 그리고 변경의 정도는 상기 수신된 패키징된 설치 파일의 재-패키징 부분(26)의 내용에 의해 사전 결정된다. 따라서 상기 원래의 제1 패키징된 설치 파일의 생성자는 상기 소프트웨어의 버전들이 분배될 수 있는 방법을 제어할 수 있다.
예를 들어, 상기 재-패키징 부분(26)은 어떤 파일들이 상기 재패키징된 설치 파일에 포함되지 않아야 한다는 것을 지정할 수 있다. 이것은 감소된 기능이 되는 상기 재패키징된 설치 파일을 수신하는 장치에 설치되는 상기 소프트웨어 애플리케이션의 버전을 초래할 것이다.
다른 옵션은 상기 버전이 원본인지를 나타내는 상기 원래의 재패키징된 설치 파일에 플래그를 정의하는 것이다. 상기 재패키징 부분(26)은 상기 소프트웨어 애플리케이션 자체내의 어떤 코드 때문에 그것의 기능을 감소시키는, 상기 플래그를 스위칭한다.
다른 옵션은 상기 제2의 패키징된 설치 파일에 상기 제1 호스트 장치의 식별자를 포함시키는 것으로서, 이에 의해 상기 제2 장치내의 상기 소프트웨어의 제2 버전은 상기 제2 장치가 상기 제1 장치와 통신하는 경우에만 동작할 것이다.
미디 재밍( Midi Jamming )
상기에 설명된 설치 파일을 사용하여 소프트웨어 애플리케이션을 분배하는 방법은 수많은 애플리케이션들을 지닌다.
한 애플리케이션에서, 상기 호스트 장치는 음악을 합성할 수 있고 합성된 음악 출력은 상호 작용적으로 제어될 수 있다.
도 5는 이러한 하나의 호스트 장치(100)를 도시한 것이다. 그것은 도 2에서의 호스트 장치(1)와 동일하지만, 부가적으로 개인용 컴퓨터의 사운드 카드와 유사할 수 있는 오디오 출력부(70)를 지닌다. 그것은 라우드스피커(또는 헤드셋용 블루투스 송신기 또는 잭과 같은 다른 오디오 출력)에 연결된, 미디(MIDI) 합성기(74) 에 연결된, 미디(MIDI) 엔진(72)을 포함한다. 상기 미디 엔진(72)은 상기 미디 합성기(74)에 (그것이 재생되는 바와 같이) 실시간으로 미디 데이터 스트림을 제공한다. 상기 미디 데이터 스트림은 상기 프로세서(12)에 의해 상기 미디 엔진(72)으로 전송된 미디 파일로부터의 내용을 포함할 수 있고, 그것은 또한 상기 프로세서(12)의 제어하에서 상기 미디 엔진(72)에 의해 야기된 부가적인 메시지 또는 대체 메시지들을 포함할 수 있다.
상기 미디 합성기(32)는 한번에 하나씩 미디 메시지들을 수신하고 상기 라우드스피커(34)를 통해 사운드를 재생함으로써 상기 메시지들에 응답한다. 상기 미디 메시지들은 실시간으로 상기 미디 합성기에 의해 수신되고 처리된다.
상기 호스트 장치는 솔로를 연주하거나 또는 네트워크를 형성하는 장치들의 앙상블로 연주할 수 있다. 상기 장치가 솔로를 연주하는 경우, 상기 장치의 사용자는 상기 UI(11)를 사용하여 상기 장치로부터 음악 출력의 어떤 변동을 제어한다.
상기 장치들이 앙상블로 연주하는 경우 상기 앙상블의 음악 출력은 각 장치의 음악 출력의 결합이다. 장치의 사용자는 그들 자신의 장치의 음악 출력 및 상기 네트워크에서의 다른 장치들 각각의 출력을 제어함으로써 상기 앙상블의 음악 출력의 변동을 제어한다. 이것은 바람직하기로는 정면으로 마주보고 있는 다수의 사용자들에 의한 음악의 상호작용 합성을 허용한다.
상기 합성된 음악 출력은 즉흥적인 합성을 제공하기 위하여 다수의 방법으로 제어될 수 있다.
예를 들어, 상기 호스트 장치(100)의 사용자는 상기 단말기의 UI(11)(예를 들어 키패드 또는 상기 장치를 움직이는 것에 응답하는 통합 가속도계와 같은 다른 미디 제어기들)를 사용하여 실시간으로 멜로디, 리듬, 루프 등을 연주할 수 있다.이들은 배경 음악이 있거나 배경 음악없이 연주될 수 있다. 가속도계를 지닌 이동 전화는 흔드는 것과 박자를 맞춰 상기 전화가 생성하는 타격음과 함께 배경 삼바 트랙이 연주되는 동안 흔들릴 수 있다. 상기 배경 음악은 상기 프로세서에 의해, 저장된 미디 파일을 상기 미디 엔진(72)으로 전송함으로써 생성될 수 있다. 반주하는 타격음이 상기 미디 엔진의 출력에 부가적인 미디 메시지들로서 부가된다. 복수의 전화들은 예를 들어 블루투스를 사용하여 네트워킹될 수 있고, 각 전화 사용자는 반주가 들어간 트랙과 함께 상기 앙상블의 연주에 타악음 공헌을 할 수 있다.
다른 예로서, 배경 트랙은 효과(에코, 잔향 등)를 부가하거나, 음악 편곡을 변경하거나, 상기 배경 트랙상에 '라이브'를 연주하거나, 드럼 비트와 같은 악기 사용을 제거하거나, 멜로디, 베이스 라인 등을 제거함으로써 실시간으로 변경될 수 있다. 상기 작용은 상기 미디 엔진(72)에 의해 출력된 미디 메시지들을 변경함으로써 달성될 수 있다.
다른 예로서, 개별 음악 트랙들은 상호 작용적으로 함께 믹싱될 수 있다. 이것은 미디 엔진(72)을 통해 달성될 수 있다.
상기 상호 작용 음악 제어는 다수의 음악 애플리케이션들을 사용하여 달성된다.
한 유형의 음악 애플리케이션은 예를 들어 에코, 잔향 등과 같은 하나 이상의 음악 효과가 실시간으로 생성되거나 변경되도록 허용한다. 다른 유형의 음악 애 플리케이션은 특정 악기의 음색을 제공한다.
음악 애플리케이션은 독립적인 '프리스타일' 모드, 슬레이브 '보조' 모드 또는 마스터 모드로 사용될 수 있다.
세션은 음악 애플리케이션들의 앙상블이다. 어떤 세션에서도 단지 하나의 마스터 애플리케이션이 존재할 것이다. 상기 세션은 하나의 장치 또는 복수의 네트워킹된 장치들을 수반할 수 있다.
사용자는 가능한 음악 애플리케이션들 중 어떤 음악 애플리케이션이 액티브하고 그들이 어떤 모드에 있는지를 선택할 수 있다. 어떤 음악 애플리케이션들은 고정 모드 유형을 지닐 수 있다.
독립 모드에서 상기 애플리케이션은 전통적인 악기와 같이 연주된다. 상기 출력은 이용가능한 사용자 입력 인터페이스를 지닌 사용자의 재능에만 의존한다.
마스터 모드에서, 상기 음악 애플리케이션은 슬레이브 음악 애플리케이션들의 앙상블의 동기를 담당한다. 상기 마스터는 각 슬레이브 음악 애플리케이션에 음악 동기 정보를 제공한다. 상기 정보는 템포 또는 하모니(화음 시퀀스)를 정의할 수 있다. 템포가 정의되는 경우, 상기 슬레이브 애플리케이션들은 상기 마스터 애플리케이션에 매칭되도록 연속적으로 그들의 타이밍을 변경한다. 이것은 상기 프로세서(12)를 사용하여 상기 미디 엔진(72)의 출력을 변경함으로써 상기 슬레이브에서 달성될 수 있다. 음표가 온 또는 오프되는 시간은 용이하게 변경된다. 적합한 마스터 애플리케이션은 드럼 비트 애플리케이션일 것이다. 따라서, 슬레이브에서의 음악 출력은 상기 마스터로부터 수신된 음악 동기 정보에 의존한다.
상기 동기 정보는 또한 상기 앙상블, 배경 트랙, 상대적인 음량, 음악 키, 시간 서명 또는 상기 음악의 에너지에서 사용되고 있는 상기 음악 애플리케이션들의 아이덴티티들과 같은 음악 애플리케이션들 또는 장치들에 의해 공유되는 특징들에 대한 변경들 또는 중요한 음악 특징들을 정의할 수 있다. 이들은 상기 마스터 음악 애플리케이션을 호스팅하는 장치의 사용자에 의해 선택될 수 있다. 예를 들어 사용자가 너무 잘못되지 않도록 생성된 음악의 가능한 변주가 멜로디, 베이스 및 드럼 등의 호환가능한 변주를 지니도록 반주하는 트랙에 의존하여, 선택을 위한 제한된 수의 옵션들이 제공될 수 있다.
배경 트랙이 사용되는 경우, 그것은 상기 마스터 음악 애플리케이션을 통해 미디 파일로서 연주될 수 있다. 그러므로 상기 장치들의 사용자들은 소정의 리드(lead)를 따를 것이다.
슬레이브 모드에서, 음악 애플리케이션은 상기 마스터 음악 애플리케이션에 동기되고 동일하거나 개별적인 장치들에서의 슬레이브 애플리케이션들의 앙상블은 단일 하모니 시스템으로서 기능한다.
상기 슬레이브 음악 애플리케이션은 보조 연주 모드에서 동작할 수 있다. 보조 연주 모드에서 상기 음악 애플리케이션의 출력은 사용자에 의해 생성된 음악의 정확한 재생이 아니다. 상기 음악 출력은 생성된 음악이 어떤 원리에 충실하다는 것을 보장하도록 자동으로 보정/증강된다. 이것은 예를 들어 PDA, 이동 전화와 같이, 다른 목적들을 위해 최적화된 입력 장치들을 지닌 장치들에 특히 유용하다. 따라서, 상기 시스템을 사용하여 음악을 연주하는데 아무런 음악 지식 또는 훈련도 필요하지 않다.
예를 들어, 사용자의 타이밍은 템포를 유지하도록 자동으로 보정될 수 있다. 템포를 유지하기 위한 타이밍의 자동 보정은 상기 템포를 가능한 비트 위치들로 양자화함으로써 달성될 수 있다. 사용자가 예를 들어 정확한 타이밍을 정확하게 지니지 않은 드럼 비트 애플리케이션에 대한 입력을 형성하는 경우, 상기 타이밍은 가장 근접한 가능한 비트 위치로 조정된다. 다른 예로서, 하모니를 유지하기 위하여 정확한 화음이 생성되거나, 보정되거나 완성된다.
개별 단말기에서의 음악 애플리케이션들의 앙상블은 상기 단말기들간에 네트워크를 형성함으로써 생성될 수 있다. 상기 네트워크는 적외선, 인터넷, USB, GPRS, 블루투스 등과 같은 어떤 적합한 접속을 통해 설정될 수 있다.
각 장치가 상기 앙상블에서 사용된 각 음악 애플리케이션의 복사본을 지니는 것이 바람직하여서, 어떤 장치도 다른 장치들에서의 음악 애플리케이션들을 사용하여 생성된 사운드를 합성할 수 있다.
상기 음악 애플리케이션들은 상술된 바와 같이 패키징된 설치 파일을 사용하여 장치들에 분배될 수 있다.
미디 재밍 싱글(single)은 소프트웨어 애플리케이션이다. 그것은 예를 들어 '.sis' 파일과 같은 패키징된 설치 파일로서 인터넷 또는 무선을 통해 장치에 다운로드되거나 메모리 카드들을 통해 판매될 수 있다. 미디 재밍 싱글은 장치에 설치되는 경우 상기 장치의 사용자가 다른 장치들을 수반하는 음악 세션에 참여하도록 허용한다.
싱글 소프트웨어 애플리케이션은 다음 요소들로 구성된다: 재밍 프레임워크 소프트웨어 요소; 마스터 음악 애플리케이션 요소; 슬레이브 음악 애플리케이션 요소들, 사용자 인터페이스 요소 및 미디 파일 요소.
상기 재밍 프레임워크 소프트웨어는 장치가 다른 장치들과 네트워크를 형성하도록 허용하고 음악 애플리케이션들의 앙상블을 생성하도록 허용한다. 그것은 또한 동기 정보의 생성, 전송, 수신 및 사용을 제어한다.
상기 싱글 소프트웨어 애플리케이션은 패키징된 형태로 상기 요소들을 포함하는 사전 패키징된 설치 파일(예를 들어 '.sis')을 포함할 수 있다. 상기 패키징된 설치 파일은 상기 싱글 소프트웨어 애플리케이션을 설치하도록 언패킹하기 위해 다른 장치로 전송될 수 있다.
대안적으로, 상기 싱글 소프트웨어 애플리케이션은 패키징된 설치 파일(예를 들어 '.sis')로부터 설치되었을 수 있다. 그러므로 상기 장치는 상기 설치 정보를 사용하여 설치된 요소들로부터 변경된 패키징된 설치 파일을 다시 생성할 수 있고 다른 장치로 이것을 제공할 수 있다. 상기 다른 장치는 상기 변경된 설치 파일을 설치하여 변경된 싱글 소프트웨어 애플리케이션을 획득하는데, 이것은 재밍 세션들을 시작할 수 없거나 솔로를 연주할 수 없지만 세션에 참가될 수 있다.
상기 변경된 패키징된 설치 파일을 공급하는 장치는 상기 파일이 그것의 식별자를 포함하도록 상기 파일을 또한 변경할 수 있다. 상기 파일로부터 설치된 상기 변경된 소프트웨어 애플리케이션은 단지 포함된 식별자와 매칭하는 식별자를 지닌 장치와 동작할 것이다. 따라서, 상기 변경된 소프트웨어 애플리케이션은 그것이 획득된 장치가 상기 세션에 존재하는 동안에만 동작한다.
상술된 설치 파일을 사용하여 소프트웨어 애플리케이션을 분배하는 방법의 다른 애플리케이션에서, 다중-사용자 게임이 메모리 카드에 저장된 제1의 패키징된 설치 파일로서 구입된다.
일 구현에서, 상기 메모리 카드는 상기 게임의 완전한 버전 또는 상기 게임의 관련된 데모 버전을 포함한다. 이들은 상기 제1 장치에 병렬로 로딩될 수 있다. 상기 완전한 버전은 상기 장치에 존재하는 반면에, 상기 데모 버전은 다른 장치들로 전송될 수 있다. 상기 데모 버전은 그것이 전송된 장치가 상기 게임의 완전한 버전과 통신하는 경우에만 상기 데모 버전이 정확하게 기능하도록 설계될 수 있다. 상기 데모 버전은 그것이 전송된 장치가 상기 제1 장치에 존재하는 상기 게임의 관련된 완전한 버전과 통신하는 경우에만 상기 데모 버전이 정확하게 기능하도록 설계될 수 있다.
다른 구현에서, 상기 설치 파일은 예를 들어 호스트 장치가 상기 게임을 시작하여 다른 장치들을 상기 게임에 참가하도록 허용하는 제1 요소, 호스트 장치가 게임에 참가되도록 허용하는 제2 요소 및 일단 상기 게임이 상기 제1 또는 제2 요소들에 의해 시작된 경우 상기 게임이 상기 호스트 장치를 사용하여 플레이되도록 허용하는 제3 요소를 구비한다. 도 1의 예에서, 상기 제1 장치는 상기 제1, 제2 및 제3 요소들이 인에이블되는 상기 게임의 완전하게 기능적인 버전을 지닌다. 상기 제2의 패키징된 설치 파일은 상기 제2 및 제3 요소들을 포함하지만 상기 제3 요소를 포함하지 않는다. 그러므로 상기 제2 버전은 게임에 참가하도록 초정되는 경우 게임에 참가할 수 있지만 자체적으로 게임을 플레이할 수 없거나 게임을 시작할 수 없다.
본 발명의 실시예들이 다양한 예들을 참조하여 이전의 문단들에서 설명되었을지라도, 제공된 예들에 대한 변경들이 청구된 바와 같은 본 발명의 범위를 벗어나지 않고 행해질 수 있다는 것은 이해되어야 한다.
상기 명세에서 본 발명의 특징들에 주의를 끌도록 노력하는 것이 중요한 것으로 여겨질지라도 특정 강조가 행해지든 아니든 도면들에 도시되고 그리고/또는 도면들에서 참조된 어떤 특허가능한 특징들 또는 특징들의 조합에 대해 출원인이 보호를 청구한다는 것은 이해되어야 한다.
도 1은 소프트웨어 애플리케이션의 분배를 도시한 것이다.
도 2는 적합한 호스트 장치를 개략적으로 도시한 것이다.
도 3은 하나의 가능한 유형의 패키징된 설치 파일을 개략적으로 도시한 것이다.
도 4a는 설치 프로세스를 도시한 것이다.
도 4b는 재-패키징 프로세스를 도시한 것이다.
도 5는 음악 호스트 장치를 도시한 것이다.

Claims (21)

  1. 제1 호스트 장치(1)로서 동작가능한, 상기 전자 장치상에 제1 설치 파일(10a)을 사용하여 소프트웨어 애플리케이션의 제1 버전(5a)을 설치하기 위한 설치 수단(12); 및
    제2 호스트 장치(2a, 2b...)에 상기 소프트웨어 애플리케이션의 제2 버전을 설치하기 위하여 상기 제1 설치 파일과 관련된 제2 설치 파일을 상기 제2 호스트 장치로 전송하기 위한 전송 수단(16)을 포함하되,
    상기 소프트웨어 애플리케이션의 실행은 적어도 두 장치들의 상호작용을 수반하고, 제2 호스트 장치에 설치된 상기 소프트웨어 애플리케이션의 제2 버전은 단지 상기 소프트웨어 애플리케이션의 제1 버전과만 동작하고 상기 제2 버전이 상기 제1 버전과 통신하는 경우에만 동작가능한 것을 특징으로 하는 장치.
  2. 제1항에 있어서, 상기 제2 버전은 상기 제1 버전과 비교하여 상이한 기능을 지니는 것을 특징으로 하는 장치.
  3. 제2항에 있어서, 상기 제2 버전은 감소된 기능을 지니는 것을 특징으로 하는 장치.
  4. 제3항에 있어서, 상기 제2 버전은 제한된 사용을 지니는 것을 특징으로 하는 장치.
  5. 제1항에 있어서, 상기 소프트웨어 애플리케이션의 제2 버전은 단지 상기 제1 호스트 장치에 설치된 상기 소프트웨어 애플리케이션의 제1 버전과 동작하는 것을 특징으로 하는 장치.
  6. 제2항 내지 제4항 중 어느 한 항에 있어서, 상기 상이한 기능은 상기 제1 설치 파일의 내용에 의해 미리 결정되는 것을 특징으로 하는 장치.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 제1 설치 파일(10a)을 수신하기 위한 수신 수단(15)을 더 포함하는 것을 특징으로 하는 장치.
  8. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 제2 설치 파일은 상기 제2 호스트 장치들이 상기 소프트웨어 애플리케이션의 제2 버전을 설치하기 위하여 제3 설치 파일을 제3 호스트 장치로 전송할 수 있게 하는 것을 특징으로 하는 장치.
  9. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 제2 설치 파일은 제2의 패키징된 설치 파일이고 상기 장치는 상기 소프트웨어 애플리케이션의 제2 버전(5b)을 설치하기 위하여, 상기 제2의 패키징된 설치 파일(10b)을 생성하기 위한 패키징 수단(12)을 더 포함하는 것을 특징으로 하는 장치.
  10. 제9항에 있어서, 상기 패키징 수단은 상기 소프트웨어 애플리케이션의 설치된 제1 버전으로부터 상기 제2의 패키징된 설치 파일을 생성하도록 동작가능한 것을 특징으로 하는 장치.
  11. 제10항에 있어서, 상기 패키징 수단은 상기 소프트웨어 애플리케이션의 제1 버전의 설치시 생성된 파일들의 복사본들을 변경되게 재 패키징하도록 동작가능한 것을 특징으로 하는 장치.
  12. 제11항에 있어서, 상기 변경은 상기 제1 설치 파일의 내용에 의해 미리 결정되는 것을 특징으로 하는 장치.
  13. 제11항에 있어서, 상기 변경은 장치 식별자의 추가를 포함하는 것을 특징으로 하는 장치.
  14. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 소프트웨어 애플리케이션의 설치된 제1 버전에 대한 저장된 설치 정보에 액세스하도록 동작가능한 것을 특징으로 하는 장치.
  15. 제14항에 있어서, 상기 설치 정보는 상기 소프트웨어 애플리케이션의 설치된 제1 버전내로부터 단지 액세스가능한 것을 특징으로 하는 장치.
  16. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 제1 설치 파일은 패키징된 설치 파일(10a)인 것을 특징으로 하는 장치.
  17. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 소프트웨어 애플리케이션의 제2 버전은 상기 제1 버전과 동일한 것을 특징으로 하는 장치.
  18. 제1 호스트 장치(1)상에 제1 설치 파일(10a)을 사용하여 소프트웨어 애플리케이션의 제1 버전(5a)을 설치하는 단계; 및
    상기 소프트웨어 애플리케이션의 제2 버전(5b)을 설치하기 위하여 제2 설치 파일(10b)을 제2 호스트 장치(2a, 2b...)로 전송하는 단계를 포함하고,
    상기 소프트웨어 애플리케이션의 실행은 적어도 두 장치들의 상호작용을 수반하고, 제2 호스트 장치에 설치된 상기 소프트웨어 애플리케이션의 제2 버전은 단지 상기 소프트웨어 애플리케이션의 제1 버전과 동작하고 상기 제2 버전이 상기 제1 버전과 통신하는 경우에만 동작가능한 것을 특징으로 하는 소프트웨어 애플리케이션을 공유하는 방법.
  19. 제18항에 있어서, 상기 소프트웨어 애플리케이션의 설치된 제1 버전으로부터 상기 제2 설치 파일(10b)을 획득하는 단계를 더 포함하는 것을 특징으로 하는 소프 트웨어 애플리케이션을 공유하는 방법.
  20. 제18항에 있어서, 상기 제1 설치 파일로부터 상기 제2 설치 파일(10b)을 획득하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 애플리케이션을 공유하는 방법.
  21. 제1 호스트 장치(1)에 소프트웨어 애플리케이션의 설치된 제1 버전(5a)을 제공하는 단계; 및
    상기 제1 호스트 장치(1)가 제2 설치 파일(10b)을 제2 호스트 장치(2a, 2b...)로 전송할 수 있게 하는 단계를 포함하는 방법을 수행하는 소프트웨어 프로그램을 저장하고,
    상기 제2 설치 파일은 상기 제2 호스트 장치(2a, 2b...)에 상기 소프트웨어 애플리케이션의 설치된 제2 버전(5b)을 제공하기 위한 수단을 포함하고,
    상기 소프트웨어 애플리케이션의 실행은 적어도 두 장치들의 상호작용을 수반하고, 제2 호스트 장치에 설치된 상기 소프트웨어 애플리케이션의 제2 버전은 단지 상기 소프트웨어 애플리케이션의 제1 버전과만 동작하고 상기 제2 버전이 상기 제1 버전과 통신하는 경우에만 동작가능한 것을 특징으로 하는 컴퓨터로 독출가능한 기록매체.
KR1020087014067A 2008-06-11 2003-02-07 소프트웨어 분배 KR20080059677A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020087014067A KR20080059677A (ko) 2008-06-11 2003-02-07 소프트웨어 분배

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020087014067A KR20080059677A (ko) 2008-06-11 2003-02-07 소프트웨어 분배

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020057014490A Division KR20050105458A (ko) 2005-08-05 2003-02-07 소프트웨어 분배

Publications (1)

Publication Number Publication Date
KR20080059677A true KR20080059677A (ko) 2008-06-30

Family

ID=39804365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014067A KR20080059677A (ko) 2008-06-11 2003-02-07 소프트웨어 분배

Country Status (1)

Country Link
KR (1) KR20080059677A (ko)

Similar Documents

Publication Publication Date Title
JP3659149B2 (ja) 演奏情報変換方法、演奏情報変換装置、記録媒体および音源装置
US9471271B2 (en) Systems and methods for portable audio synthesis
US20040176025A1 (en) Playing music with mobile phones
US8816180B2 (en) Systems and methods for portable audio synthesis
US7012185B2 (en) Methods and apparatus for combining processing power of MIDI-enabled mobile stations to increase polyphony
US9910653B2 (en) Software distribution
JP4700351B2 (ja) マルチユーザ環境の制御
KR20010076533A (ko) 휴대전화 단말기의 노래방 기능 구현 및 사용방법
KR20030029503A (ko) 사운드 믹서를 구비한 무선 이동 통신 핸드세트와 방법
KR20080059677A (ko) 소프트웨어 분배
KR20050105458A (ko) 소프트웨어 분배
JP4983012B2 (ja) 楽曲再生において立体音響効果を付加する装置およびプログラム
JP2006154777A (ja) 音楽生成システム
JP2001356764A (ja) 音声情報配信方法及び携帯通信機器を使用した合奏方法
JP2009110523A (ja) ソフトウェアの配信
JP2002091464A (ja) 演奏中の操作履歴を記憶して再現するカラオケ装置
JP3975698B2 (ja) 携帯通信端末
JP6966738B1 (ja) 音データ生成システム、音データ生成プログラム、及び音データ生成方法
WO2008087548A2 (en) Ad-hoc proximity multi-speaker entertainment
EP1735848A2 (en) Systems and methods for portable audio synthesis
JP2003022072A (ja) 携帯通信端末およびサーバ装置
JP2003044621A (ja) 携帯通信端末におけるおみくじ処理プログラム、おみくじコンテンツファイル、携帯通信端末およびサーバ装置
JPH0876775A (ja) カラオケデータ配信装置
JP2003302985A (ja) カラオケ装置の使用方法、楽曲管理サーバー、およびカラオケ装置
JP2007079413A (ja) オーディオ再生装置、オーディオ配信システム、オーディオ再生プログラムおよびオーサリングプログラム

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application