KR20150043537A - 이벤트 분배 정보를 생성하기 위한 시스템 및 방법 - Google Patents

이벤트 분배 정보를 생성하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20150043537A
KR20150043537A KR20157008500A KR20157008500A KR20150043537A KR 20150043537 A KR20150043537 A KR 20150043537A KR 20157008500 A KR20157008500 A KR 20157008500A KR 20157008500 A KR20157008500 A KR 20157008500A KR 20150043537 A KR20150043537 A KR 20150043537A
Authority
KR
South Korea
Prior art keywords
event
time
distribution information
audio file
triggering
Prior art date
Application number
KR20157008500A
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 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20150043537A publication Critical patent/KR20150043537A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/361Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
    • G10H1/368Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems displaying animated or moving pictures synchronized with the music or audio part
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/021Background music, e.g. for video sequences, elevator music
    • G10H2210/026Background music, e.g. for video sequences, elevator music for games, e.g. videogames
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/051Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for extraction or detection of onsets of musical sounds or notes, i.e. note attack timings
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/011Files or data streams containing coded musical information, e.g. for transmission
    • G10H2240/046File format, i.e. specific or non-standard musical file format used in or adapted for electrophonic musical instruments, e.g. in wavetables
    • G10H2240/056MIDI or other note-oriented file format
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/311MIDI transmission

Abstract

오디오 파일을 이용하여 이벤트 분배 정보를 생성하고 이벤트 분배 정보에 기초하여 사용자 입력에 대응하는 이벤트를 제어하기 위한 컴퓨터 시스템 및 방법이 제공된다. 이 컴퓨터-구현 방법은: 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계 - 상기 이벤트 분배 정보는 컴퓨터상에서 현재 재생되는 오디오 파일과 연관되고, 상기 이벤트-촉발 시간은 순차 순서(sequential order)로 배열됨 -; 상기 오디오 파일에 대한 현재 재생 시간을 판정하는 단계; 및 상기 현재 재생 시간과 상기 추출된 이벤트-촉발 시간의 비교에 기초하여 상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계를 포함한다.

Description

이벤트 분배 정보를 생성하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR GENERATING EVENT DISTRIBUTION INFORMATION}
본 출원은 2012년 9월 3일에 출원된 중국특허출원 제201210321561.2호 "SYSTEM AND METHOD FOR GENERATING EVENT DISTRIBUTION INFORMATION USING AN AUDIO FILE"에 대한 우선권을 주장하며, 위 출원의 전체 내용은 원용에 의해 본 명세서에 병합된다.
본 발명은 일반적으로 오디오 파일 처리에 관한 것이며, 특히 오디오 파일을 이용하여 이벤트 분배 정보를 생성하고 이벤트 분배 정보에 기초하여 사용자 입력에 대응하는 이벤트를 제어하기 위한 시스템 및 방법에 관한 것이다.
다양한 기능을 단말 사용자에게 제공함에 있어서, 더욱더 많은 모바일 애플리케이션(mobile application)이 오디오 특성을 포함한다. 예를 들어, 애플리케이션은 종종, 모바일 장치(예를 들어, 스마트폰 또는 태블릿 컴퓨터)상에서 재생되고 있는 오디오 파일로부터의 리듬에 따라 사용자 입력을 수신하기 위해 그래픽 사용자 인터페이스(graphical user interface)상의 다양한 위치에 배치된다. 그 위치에 대한 사용자 상호작용(예를 들어, 손가락 터치)에 기초하여, 애플리케이션은 사용자-친화적 환경을 제공한다. 예를 들어, 음악을 동시에 재생하는 게임 애플리케이션에 있어서, 복수의 위치들이 음악의 리듬에 따라 게임 애플리케이션의 각각의 이미지 프레임에 배치되어, 배치된 위치들에 대한 사용자 상호작용에 기초하여 사용자 입력을 생성한다. 대부분, 이 배치된 위치는 재생중인 음악에 따라 그래픽 사용자 인터페이스 상을 이동하는 이동 객체(moving object)에 대응한다. 더 구체적으로는, 애플리케이션의 특정 프레임과 연관된 특정 위치가 음악을 생성하는 오디오 파일 내의 데이터의 집합에 종종 맵핑된다. 이 데이터의 집합은 애플리케이션의 프레임의 템포뿐만 아니라 템포에 대응하는 위치도 식별한다. 예를 들어, 하나의 위치에서의 이동 속도는 애플리케이션의 프레임을 렌더링(rendering)하는 누적 시간에 의해 측정되고 제어될 수 있다. 즉, 위 프레임의 누적 시간은 데이터 내에 정의된 대응하는 위치의 하강 시간(falling time)에 매칭(match)되고, 그 위치는 그래픽 사용자 인터페이스상에 렌더링된다. 그러나, 애플리케이션의 프레임을 렌더링하는 누적 시간이 프레임 당(per-frame) 계산에 기초하여 계산되기 때문에, 이러한 접근은 개개의 프레임과 연관된 오류들을 반드시 축적하게 된다. 그 결과, 축적된 에러들이 충분히 많아지게 되면, 재생중인 음악과 그래픽 사용자 인터페이스상의 위치의 대응하는 이동 사이에 몇 초간의 시간 간극(time gap)이 발생할 수 있다.
애플리케이션의 오디오 재생과 비디오 재생 사이의 동기화에 관한 종래의 접근법과 연관된 상술한 문제 및 다른 문제들은 이하의 본 명세서에 개시된 내용에 의해 감소되거나 아예 제거된다. 일부 실시예에서는, 본 명세서가, 복수의 기능을 수행하기 위한 하나 이상의 프로세서, 메모리, 및 하나 이상의 모듈, 프로그램, 또는 메모리 내에 저장된 명령의 집합들을 가지는 컴퓨터 시스템에서 구현된다. 이러한 기능들을 수행하는 명령들은 하나 이상의 프로세서에 의한 실행을 위해 구성된 컴퓨터 프로그램 제품 내에 포함될 수 있다.
본 발명의 일 태양은 하나 이상의 프로세서, 메모리, 및 디스플레이를 포함하는 컴퓨터에 의해 수행되는 컴퓨터-구현 방법을 포함한다. 이 컴퓨터-구현 방법은: 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계 - 상기 이벤트 분배 정보는 컴퓨터상에서 현재 재생되는 오디오 파일과 연관되고, 상기 이벤트-촉발 시간은 순차 순서(sequential order)로 배열됨 -; 상기 오디오 파일에 대한 현재 재생 시간을 판정하는 단계; 및 상기 현재 재생 시간과 상기 추출된 이벤트-촉발 시간의 비교에 기초하여 상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계를 포함한다.
본 발명의 또 다른 태양은 컴퓨터 시스템을 포함한다. 이 컴퓨터 시스템은 메모리, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 의한 실행을 위해 구성되어 메모리 내에 저장된 하나 이상의 프로그램을 포함한다. 이 하나 이상의 프로그램은: 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계 - 상기 이벤트 분배 정보는 컴퓨터상에서 현재 재생되는 오디오 파일과 연관되고, 상기 이벤트-촉발 시간은 순차 순서로 배열됨 -; 상기 오디오 파일에 대한 현재 재생 시간을 판정하는 단계; 및 상기 현재 재생 시간과 상기 추출된 이벤트-촉발 시간의 비교에 기초하여 상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계를 포함한다.
본 발명의 또 다른 태양은 내부에 명령어를 저장하고 있는 비-일시적 컴퓨터 판독 가능형 저장 매체를 포함하는데, 위 명령어는 컴퓨터 시스템에 의해 실행되는 경우 상기 컴퓨터 시스템이: 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하고 - 상기 이벤트 분배 정보는 컴퓨터상에서 현재 재생되는 오디오 파일과 연관되고, 상기 이벤트-촉발 시간은 순차 순서(sequential order)로 배열됨 -; 상기 오디오 파일에 대한 현재 재생 시간을 판정하며; 상기 현재 재생 시간과 상기 추출된 이벤트-촉발 시간의 비교에 기초하여 상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하도록 야기한다.
일부 실시예들은 클라이언트-서버 네트워크 환경의 클라이언트 측 또는 서버 측 중 어느 하나 상에서 구현될 수 있다.
본 발명의 전술한 특징과 이점들, 그리고 본 발명의 추가적인 특징과 이점들은, 도면을 수반한 이하에서의 바람직한 실시예들의 상세한 설명의 결과로서 더욱 명확하게 이해될 것이다.
도 1은 일부 실시예들에 따르는, 오디오 파일에 기초하여 애플리케이션의 그래픽 사용자 인터페이스의 이벤트의 분배를 제어하는 방법의 플로차트의 실례이다.
도 2는 일부 실시예들에 따르는, 오디오 파일 내의 대응하는 이벤트에 대한 이벤트 분배 정보를 생성하기 위해, 오디오 파일로부터 헤더 및 사운드트랙 데이터를 추출하고 그 데이터를 이용하는 방법의 플로차트의 실례이다.
도 3은 일부 실시예들에 따르는, 오디오 파일에 기초하여 애플리케이션의 그래픽 사용자 인터페이스상의 이벤트 분배를 제어하는 방법을 구현하기 위한 시스템의 블록 다이어그램의 실례이다.
도 4는 일부 실시예들에 따르는, 오디오 파일 내의 대응하는 이벤트에 대한 이벤트 분배 정보를 생성하기 위해, 오디오 파일로부터 헤더와 사운드트랙 데이터를 추출하고 그 데이터를 이용하는 방법을 구현하기 위한 시스템의 블록 다이어그램의 실례이다.
도 5는 일부 실시예에 따르는, 도 4에 도시된 이벤트 분배 정보 생성 모듈의 구성요소의 블록 다이어그램의 실례이다.
도 6은 일부 실시예에 따르는, 컴퓨팅 장치의 구성요소의 블록 다이어그램의 실례이다.
동일한 참조번호는 다른 시점의 도면이 걸쳐 대응하는 부분을 나타낸다.
첨부된 도면들에서 설명되는 예시들과 실시예들에 대한 상세한 내용이 참고될 것이다. 이하의 상세한 설명에서는, 본 명세서에서 표현된 발명 주제의 완전한 이해를 제공하기 위해 다수의 구체적인 세부사항들이 규정된다. 그러나, 당해 기술분야의 통상의 기술자라면 본 발명 주제가 이러한 구체적인 세부사항들 없이도 실현될 수 있음을 분명하게 이해할 것이다. 다른 예시들에서는, 본 실시예들의 태양들을 흐리지 않도록 하기 위해 잘 알려진 방법들, 과정들, 구성요소들, 및 회로들은 여기서 상세하게 설명되지 않는다.
도 1은 일부 실시예들에 따르는, 오디오 파일에 기초하여 애플리케이션의 그래픽 사용자 인터페이스의 이벤트의 분배를 제어하는 방법의 플로차트의 실례이다.
애플리케이션과 연관된 오디오 재생 및 비디오 재생 사이의 동기화를 실현하기 위해, 단계 S110에서는, 애플리케이션은 현재-재생되는 오디오 파일과 연관된 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는데, 이 이벤트-촉발 시간은 순차 순서로 배열된다.
일부 실시예에서, 이벤트 분배 정보는 오디오 파일을 선처리(pre-processing)하고, 오디오 파일의 하나 이상의 이벤트를 식별하며, 각각의 식별된 이벤트에 대한 이벤트-촉발 시간을 기록함으로써 생성된다. 예를 들어, 오디오 파일에서 미리 정의된 음악 노트(music note) 또는 미리 정의된 음악 노트의 시퀀스가 발견된 때 이벤트가 식별되며, 이벤트-촉발 시간은 음악 노트 또는 음악 노트의 시퀀스 재생의 시작 시간에 대응한다. 애플리케이션이 오디오 파일을 재생하는 때, 음악 파일과 연관된 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출한다. 예를 들어, 이벤트 분배 정보 내의 이벤트-촉발 시간은 더 빠른 것부터 더 늦은 것까지의 시간적 순차 순서로 조직되고, 추출된 이벤트-촉발 시간은 또한 동일한 순차 순서일 수도 있다. 일부 실시예에서는, 이벤트 분배 정보로부터 추출된 이벤트-촉발 시간의 수가 오디오 파일의 사운드트랙 데이터에 의해 결정된다.
일부 실시예에서, 이벤트-촉발 시간의 추출은 애플리케이션의 비디오 재생과 연관되어 있다. 예를 들어, 비디오 재생의 각각의 프레임에 대해, 애플리케이션은 그 재생 시간 주기를 판정하고 그 재생 시간 주기를 오디오 파일과 대조하여 대응하는 재생 시간 주기 내에서 이벤트 분배 정보로부터 이벤트-촉발 시간을 시간적 순차 순서로 선택한다. 이 경우에, 오디오 파일이 애플리케이션에 의해 재생될 때 대응하는 프레임의 집합은 또한 애플리케이션에 의해 프레임별로 함께 재생된다. 그 결과, 이벤트 분배 정보로부터 추출된 이벤트-촉발 시간은 항상, 애플리케이션이 실행되고 있는 컴퓨팅 장치의 디스플레이 상에서 렌더링되는 대응하는 프레임과 동기로 된다.
일부 실시예에서는, 오디오 파일의 재생 중에, 하나의 이미지 프레임이 미리 정의된 주기의 시간 동안 표시되고 이후 후속하는 이미지 프레임에 의해 대체(replace)되는데, 각각의 이미지 프레임은 하나 이상의 음악 노트에 대응한다. 음악 노트는 복수의 사운드트랙에 대응하는 이벤트로 구성되고, 각각의 이미지 프레임은 대응하는 사운드트랙의 하나 이상의 이벤트에 맵핑될 수 있다. 나아가, 각각의 이벤트-촉발 시간은 특정 프레임의 그래픽 사용자 인터페이스에 대응하여야 하므로, 비디오 재생의 프레임 갱신과 오디오 재생의 대응하는 리듬 사이의 맵핑 또는 동기화를 달성하게 된다.
단계 S130에서, 애플리케이션은 오디오 파일에 대한 현재 재생 시간을 판정한다. 일부 실시예에서는, 현재 재생 시간은, 오디오 파일 재생의 시작 시간으로부터 경과한 시간의 양을 나타내는, 오디오 파일 재생의 현재 위치를 나타낸다.
단계 S150에서, 애플리케이션은 재생 시간과 이벤트-촉발 시간의 비교에 기초하여 그래픽 사용자 인터페이스상에서 사용자 입력에 대응하는 이벤트 위치를 제어한다. 일부 실시예에서, 이벤트의 위치는 오디오 파일 내에서 구체화된 이벤트-촉발 시간에 대응하는 프레임의 그래픽 사용자 인터페이스상의 위치에 의해 선-결정(pre-determined)된다. 사용자가 이벤트 위치에서 또는 그 근처에서 입력을 생성하는 경우, 이벤트-촉발 시간에 대응하는 프레임도 이에 따라 갱신된다. 예를 들어, 게임 애플리케이션에서, 게임 애플리케이션에 대해 추출된 이벤트-촉발 시간의 적용은 게임 애플리케이션의 그래픽 사용자 인터페이스상의 복수의 이벤트 위치의 생성을 야기한다. 오디오 재생 도중에 그래픽 사용자 인터페이스상의 특정 이벤트 위치를 탭핑(tapping)함으로써, 특정 음악 노트 또는 노트들이 애플리케이션에 의해 생성되어, 악기의 서로 다른 키를 누름으로써 사용자가 악기를 연주하고 있는 것과 같은 효과를 가져온다.
오디오 파일의 재생 시간과 이벤트-촉발 시간의 대조를 통해 그래픽 사용자 인터페이스상의 이벤트 및 대응하는 위치를 제어함으로써, 애플리케이션은 오디오 재생과 비디오 재생 사이에서 더 나은 동기화 결과를 달성할 수 있다. 구체적으로, 오디오 파일의 재생 시간이 오디오 파일로부터 회수될 수 있는 오디오 파일의 현재 재생 위치에 대응하기 때문에, 상이한 프레임과 연관된 재생 시간의 축적과 같은 오류를 발생시키지 않는다. 이벤트-촉발 시간이 오디오 파일에서 식별된 이벤트의 재생 시간으로부터 도출되어 어떠한 오류도 포함하지 않기 때문에, 이 둘의 대조는 오디오 파일에 기초한 그래픽 사용자 인터페이스상의 이벤트 위치의 정확도를 향상시킬 수 있다. 일부 실시예에서는, 애플리케이션이 이벤트-촉발 시간을 오디오 파일의 재생 시간과 비교하여 이벤트-촉발 시간이 오디오 파일의 재생 시간 이전인지 여부를 판단한다. 이벤트-촉발 시간이 재생 시간 이전이면, 애플리케이션은 이벤트에 대응하는 그래픽 사용자 인터페이스상의 위치를 식별하고, 이 위치에서 사용자 입력의 표시를 제어한다. 이벤트-촉발 시간이 재생 시간 이전이 아니면, 애플리케이션은 이 이벤트-촉발 시간을 스킵(skip)할 수 있다.
즉, 이벤트-촉발 시간이 재생 시간 이후(또는 더 크다)라는 판정은 이벤트-촉발 시간과 연관된 대응하는 위치에서 사용자 입력의 표시를 제어하기 위한 시간 지연이 없다는 것을 나타낸다. 이러한 경우에서, 애플리케이션은 사용자 입력에 기초한 이 위치에서의 표시의 제어를 호출한다. 예를 들어, 게임 애플리케이션에서, 이벤트 위치는 그래픽 사용자 인터페이스상의 이동 객체의 형태로 표시될 수 있다. 이러한 경우에서, 이벤트-촉발 시간이 오디오 파일의 재생 시간보다 크면, 애플리케이션은 그래픽 사용자 인터페이스상에 객체를 생성하고, 그 이동 효과를 표시한다. 반면에, 이벤트-촉발 시간이 재생 시간 이전이라는(보다 작다는)판단은, 이벤트-촉발 시간과 연관된 이벤트가 지나갔거나 분실되었음을 나타내고, 애플리케이션은 대개 추가 동작을 취하지 않는다. 즉, 애플리케이션은 사용자 입력이 있는지 여부와 관계없이, 대응하는 위치에서 표시를 제어하지 않는다. 이렇게 함으로써, 애플리케이션은 현재 표시되고 있는 프레임과 짝을 이루지 않는 오디오 파일로부터 음악 노트를 재생하는 것을 회피하게 된다. 애플리케이션이 다음 프레임을 렌더링하기 위해 이동하는 경우, 다음 프레임에 대응하는 이벤트-촉발 이벤트를 추출하고, 다음 프레임과 연관된 이벤트 위치의 표시를 제어하기 위해, 상술한 것과 유사한 동작을 수행한다.
일부 실시예에서는, 추출 단계 S110 이전에, 애플리케이션이 오디오 파일로부터 헤더 데이터와 사운드트랙 데이터를 추출하고, 그 헤더 데이터와 사운드트랙 데이트에 기초하여 이벤트 분배 정보를 생성한다. 예를 들어, 오디오 파일은 헤더 데이터와 사운드트랙 데이터 모두를 포함하는 MIDI(Musical Instrument Digital Interface) 형식일 수 있다. 구체적으로, 헤더 데이터는 오디오 파일의 형식을 기록할 뿐만 아니라, 오디오 파일의 재생 속도를 표현하는 BPM(Beats per Minutes)와 같은 복수의 파라미터도 기록한다. 일부 실시예에서는, 사운드트랙 데이터는 특정 이벤트, 음의 높이, 반주 정보에 대응하는 음악 노트를 재생하기 위한 악기들의 유형에 관한 정보뿐만 아니라 이벤트에 연관된 시간 슬라이스 정보도 포함한다. 신디사이저(synthesizer)에의 사운드트랙 데이터의 입력은 이벤트와 연관된 특정 음악 노트 또는 노트들의 재생을 생성한다.
일부 실시예에서는, 오디오 파일 내의 특정 이벤트의 이벤트-촉발 시간이, 헤더 데이터 내의 파라미터들과 사운드트랙 데이터 내의 이벤트의 시간 슬라이스 정보에 기초하여 결정된다. 이러한 이벤트-촉발 시간은 이후 이벤트 분배 정보를 생성하기 위해 이용된다. 이벤트-촉발 시간 외에, 이벤트 분배 정보는, 이벤트와 연관된 음악 노트 재생의 시간 길이를 제어하기 위해 이용되는 이벤트의 시간 길이뿐만 아니라 그래픽 사용자 인터페이스상의 이벤트 위치 표시의 시간 길이를 나타내는 정보도 포함한다. 일부 실시예에서는, 이러한 이벤트의 시간 길이는 이벤트의 시작 시간을, 사운드트랙 데이터에 의해 제공되는 이벤트의 종료 시간으로부터 제함(substract)으로써 결정된다.
도 2는 일부 실시예들에 따르는, 오디오 파일 내의 대응하는 이벤트에 대한 이벤트 분배 정보를 생성하기 위해, 오디오 파일로부터 헤더 및 사운드트랙 데이터를 추출하고 그 데이터를 이용하는 방법의 플로차트의 실례이다.
단계 S201에서, 애플리케이션은, 상술한 것과 같이 이벤트 분배 정보를 생성하기 위해 이용되는 헤더 데이터 및 사운드트랙 데이터를 오디오 파일로부터 추출한다. 단계 S203에서, 애플리케이션은, 사운드트랙 데이터로부터 이벤트의 시간 슬라이스 정보를 추출하고, 이후 적어도 부분적으로, 헤더 데이터와 시간 슬라이스 정보에 기초하여 이벤트의 이벤트-촉발 시간을 판정한다. 일부 실시예에서는, 오디오 파일 내의 시간 슬라이스 정보의 단위는 틱(tick)의 수이다. 따라서, 이벤트-촉발 시간은 이벤트가 미리 정의된 수의 틱 이후에 발생해야하는 때를 나타낸다. 일부 실시예에서는, 애플리케이션은 오디오 파일의 헤더 데이터 내의 BPM과 같은 파라미터에 기초하여 시간에 있어서의 틱의 단위를 판정한다. 다음으로, 애플리케이션은 사운드트랙으로부터 시간 슬라이스 정보를, 헤더 데이터로부터 파라미터들을 추출하고, 그러한 정보를 이용하여 오디오 파일 내의 식별된 각각의 이벤트에 대한 이벤트-촉발 시간을 판정한다.
단계 S205에서, 애플리케이션은 이전 단계들에서 판정된 이벤트-촉발 시간을 이용하여 이벤트 분배 정보를 생성한다. 일부 실시예에서는, 오디오 파일 내의 모든 이벤트에 대한 이벤트 분배 정보 내의 사본(counterpart)이 존재한다. 이벤트 분배 정보는 이후 상술한 것처럼 오디오 파일의 재생 중에 이벤트 위치를 제어하기 위해 이용된다. 일부 실시예에서는, 저장 공간을 절약하기 위해 집합 내의 상이한 이벤트에 대응하는 이벤트-촉발 시간을 2진 스트림 형식(binary stream format)으로 저장함으로써, 사운드트랙 이벤트 분배 집합이 생성된다. 더 구체적으로는, 오디오 파일이 복수의 사운드트랙을 포함할 수 있기 때문에, 이벤트 분배 정보는 복수의 사운드트랙 이벤트 분배 집합을 결합함으로써, 각각의 사운드트랙에 대해 생성된다.
상술한 설명은 오디오 파일에 기초한 그래픽 사용자 인터페이스 상의 이벤트 위치의 표시를 제어하는 방법에 초점을 맞추었다. 이하의 설명은 특정 예시, 즉 음악 게임 애플리케이션에 대해 더욱 초점을 맞춘다. 오디오 파일은 음악 게임 애플리케이션에 대해 음악을 생성하기 위해 이용된다. 사용자가 음악 게임 애플리케이션을 실행하는 경우, 애플리케이션은 자동으로 이벤트 분배 정보로부터 이벤트-촉발 시간을 추출하고, 이를 오디오 파일의 현재 재생 시간과 비교하여, 이에 따라 그래픽 사용자 인터페이스상의 대응하는 이벤트 위치의 표시를 제어하고, 이벤트 위치를 통한 사용자 입력에 기초하여 대응하는 음악 노트를 생성한다.
도 3은 일부 실시예들에 따르는, 오디오 파일에 기초하여 애플리케이션의 그래픽 사용자 인터페이스상의 이벤트 분배를 제어하는 방법을 구현하기 위한 시스템의 블록 다이어그램의 실례이다. 일 예시에서, 시스템은 시간 추출 모듈(110), 재생 시간 판정 모듈(130), 및 제어 모듈(150)을 포함한다. 시간 추출 모듈(110)은 현재 재생되는 오디오 파일과 연관된 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 순차 순서로 추출하도록 구성된다.
일부 실시예에서는, 이벤트 분배 정보가 오디오 파일을 선-처리하고, 오디오 파일 내의 하나 이상의 이벤트를 식별하며, 각각의 식별된 이벤트에 대해 이벤트-촉발 시간을 기록함으로써 생성된다. 예를 들어, 이벤트는, 미리 정의된 음악 노트 또는 미리 정의된 순서의 음악 노트들이 오디오 파일 내에서 발견된 때 식별되며, 이벤트-촉발 시간은 음악 노드 또는 일련의 음악 노트들의 재생의 시작 시간에 대응한다. 애플리케이션이 오디오 파일을 재생하는 경우, 시간 추출 모듈(110)은 음악 파일과 연관된 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출한다. 예를 들어, 이벤트 분배 정보 내의 이벤트-촉발 시간은 시간적 순차 순서로 더 빠른 것부터 더 늦은 순으로 조직되고, 추출된 이벤트-촉발 시간 또한 동일한 순차 순서로 된다. 일부 실시예에서는, 이벤트 분배 정보로부터 추출된 이벤트-촉발 시간의 수가, 오디오 파일의 사운드트랙 데이터에 의해 결정된다.
일부 실시예에서, 이벤트-촉발 시간의 추출은 애플리케이션의 비디오 재생에 연관되어 있다. 예를 들어, 비디오 재생의 각각의 프레임에 대해, 시간 추출 모듈(110)은 그 재생 시간 주기를 판정하고 그 재생 시간 주기를 오디오 파일과 대조하여, 대응하는 재생 시간 주기 내에서 이벤트 분배 정보로부터 이벤트-촉발 시간을 시간적 순차 순서로 선택한다. 이 경우에, 오디오 파일이 애플리케이션에 의해 재생될 때, 대응하는 프레임의 집합은 또한 애플리케이션에 의해 프레임별로 함께 재생된다. 그 결과, 이벤트 분배 정보로부터 추출된 이벤트-촉발 시간은 항상, 애플리케이션이 실행되고 있는 컴퓨팅 장치의 디스플레이 상에서 렌더링되는 대응하는 프레임과 동기화 된다.
일부 실시예에서는, 오디오 파일의 재생 중에, 하나의 이미지 프레임이 미리 정의된 주기의 시간 동안 표시되고 이후 후속하는 이미지 프레임에 의해 대체(replace)되는데, 각각의 이미지 프레임은 하나 이상의 음악 노트에 대응한다. 음악 노트는 복수의 사운드트랙에 대응하는 이벤트로 구성되므로, 각각의 이미지 프레임은 대응하는 사운드트랙의 하나 이상의 이벤트에 맵핑될 수 있다. 나아가, 각각의 이벤트-촉발 시간은 특정 프레임의 그래픽 사용자 인터페이스에 대응하여야 하므로, 비디오 재생의 프레임 갱신과 오디오 재생의 대응하는 리듬 사이의 맵핑 또는 동기화를 달성하게 된다.
재생 시간 판정 모듈(130)은 오디오 파일에 대한 현재 재생 시간을 판정하도록 구성된다. 일부 실시예에서는, 현재 재생 시간은, 오디오 파일 재생의 시작 시간으로부터 경과한 시간의 양을 나타내는, 오디오 파일 재생의 현재 위치를 나타낸다.
제어 모듈(150)은 재생 시간과 이벤트-촉발 시간의 비교에 기초하여 그래픽 사용자 인터페이스상에서 사용자 입력에 대응하는 이벤트 위치를 제어한다. 일부 실시예에서, 이벤트의 위치는 오디오 파일 내에서 구체화된 이벤트-촉발 시간에 대응하는 프레임의 그래픽 사용자 인터페이스상의 위치에 의해 선-결정된다. 사용자가 이벤트 위치에서 또는 그 근처에서 입력을 생성하는 경우, 이벤트-촉발 시간에 대응하는 프레임도 이에 따라 갱신된다. 예를 들어, 게임 애플리케이션에서, 제어 모듈(150)은 추출된 이벤트-촉발 시간을 게임 애플리케이션에 대해 적용하여 게임 애플리케이션의 그래픽 사용자 인터페이스상의 복수의 이벤트 위치의 생성을 야기한다. 오디오 재생 도중에 그래픽 사용자 인터페이스상의 특정 이벤트 위치를 탭핑함으로써, 특정 음악 노트 또는 노트들이 애플리케이션에 의해 생성되어, 악기의 서로 다른 키를 누름으로써 사용자가 악기를 연주하고 있는 것과 같은 효과를 가져온다.
오디오 파일의 재생 시간과 이벤트-촉발 시간의 대조를 통해 그래픽 사용자 인터페이스상의 이벤트 및 대응하는 위치를 제어함으로써, 제어 모듈(150)은 오디오 재생과 비디오 재생 사이에서 더 나은 동기화 결과를 달성할 수 있다. 구체적으로, 오디오 파일의 재생 시간이 오디오 파일로부터 회수될 수 있는 오디오 파일의 현재 재생 위치에 대응하기 때문에, 상이한 프레임과 연관된 재생 시간의 축적과 같은 오류를 발생시키지 않는다. 이벤트-촉발 시간이, 오디오 파일에서 식별된 이벤트의 재생 시간으로부터 도출되어 어떠한 오류도 포함하지 않기 때문에, 이 둘의 대조는 오디오 파일에 기초한 그래픽 사용자 인터페이스상의 이벤트 위치의 정확도를 향상시킬 수 있다. 일부 실시예에서는, 제어 모듈(150)이 이벤트-촉발 시간을 오디오 파일의 재생 시간과 비교하여 이벤트-촉발 시간이 오디오 파일의 재생 시간 이전인지 여부를 판단한다. 이벤트-촉발 시간이 재생 시간 이전이면, 제어 모듈(150)은 이벤트에 대응하는 그래픽 사용자 인터페이스상의 위치를 식별하고, 이 위치에서 사용자 입력의 표시를 제어한다. 이벤트-촉발 시간이 재생 시간 이전이 아니면, 제어 모듈(150)은 이 이벤트-촉발 시간을 스킵(skip)할 수 있다.
도 4는 일부 실시예들에 따르는, 오디오 파일 내의 대응하는 이벤트에 대한 이벤트 분배 정보를 생성하기 위해, 오디오 파일로부터 헤더와 사운드트랙 데이터를 추출하고 그 데이터를 이용하는 방법을 구현하기 위한 시스템의 블록 다이어그램의 실례이다. 도 3과 관련하여 전술된 실시예들과 비교할 때, 본 실시에는 이벤트 분배 정보 생성 모듈(210)도 포함한다.
일부 실시예에서는, 이벤트 분배 정보 생성 모듈(210)이 오디오 파일로부터 헤더 데이터와 사운드트랙 데이터를 추출하고, 그 헤더 데이터와 사운드트랙 데이터에 기초하여 이벤트 분배 정보를 생성하도록 구성된다. 예를 들어, 오디오 파일은 헤더 데이터와 사운드트랙 데이터 모두를 포함하는 MIDI(Musical Instrument Digital Interface) 형식일 수 있다. 구체적으로, 헤더 데이터는 오디오 파일의 형식을 기록할 뿐만 아니라, 오디오 파일의 재생 속도를 표현하는 BPM(Beats per Minutes)와 같은 복수의 파라미터도 기록한다. 일부 실시예에서는, 사운드트랙 데이터는 특정 이벤트, 음의 높이, 반주 정보에 대응하는 음악 노트를 재생하기 위한 악기들의 유형에 관한 정보뿐만 아니라 이벤트에 연관된 시간 슬라이스 정보도 포함한다. 신디사이저(synthesizer)에의 사운드트랙 데이터의 입력은 이벤트와 연관된 특정 음악 노트 또는 노트들의 재생을 생성한다.
일부 실시예에서는, 이벤트 분배 정보 생성 모듈(210)이 헤더 데이터 내의 파라미터들과 사운드트랙 데이터 내의 이벤트의 시간 슬라이스 정보에 기초하여 오디오 파일 내의 특정 이벤트의 이벤트-촉발 시간을 판정한다. 이러한 이벤트-촉발 시간은 이후 이벤트 분배 정보를 생성하기 위해 이용된다. 이벤트-촉발 시간 외에, 이벤트 분배 정보는, 이벤트와 연관된 음악 노트 재생의 시간 길이를 제어하기 위해 이용되는 이벤트의 시간 길이뿐만 아니라 그래픽 사용자 인터페이스상의 이벤트 위치 표시의 시간 길이를 나타내는 정보도 포함한다. 일부 실시예에서는, 이러한 이벤트의 시간 길이는 이벤트의 시작 시간을, 사운드트랙 데이터에 의해 제공되는 이벤트의 종료 시간으로부터 제함(substract)으로써 결정된다.
도 5는 일부 실시예에 따르는, 도 4에 도시된 이벤트 분배 정보 생성 모듈의 구성요소의 블록 다이어그램의 실례이다. 본 예시에서는, 이벤트 분배 정보 생성 모듈(210)은 데이터 추출 유닛(211), 계산 유닛(213), 및 정보 생성 유닛을 더 포함한다.
데이터 추출 유닛(211)은, 상술한 것과 같은 이벤트 분배 정보를 생성하기 위해 이용되는 헤더 데이터 및 사운드트랙 데이터를 오디오 파일로부터 추출하도록 구성된다. 계산 유닛(213)은, 사운드트랙 데이터로부터 이벤트의 시간 슬라이스 정보를 추출하고, 이후 적어도 부분적으로, 헤더 데이터와 시간 슬라이스 정보에 기초하여 이벤트의 이벤트-촉발 시간을 판정하도록 구성된다. 일부 실시예에서는, 오디오 파일 내의 시간 슬라이스 정보의 단위는 틱(tick)의 수이다. 따라서, 이벤트-촉발 시간은 이벤트가 미리 정의된 수의 틱 이후에 발생해야하는 때를 나타낸다. 일부 실시예에서는, 애플리케이션은 오디오 파일의 헤더 데이터 내의 BPM과 같은 파라미터에 기초하여 시간에 있어서의 틱의 단위를 판정한다. 다음으로, 애플리케이션은 사운드트랙으로부터 시간 슬라이스 정보를, 헤더 데이터로부터 파라미터들을 추출하고, 그러한 정보를 이용하여 오디오 파일 내의 식별된 각각의 이벤트에 대한 이벤트-촉발 시간을 판정한다.
정보 생성 유닛(215)은, 이전 단계들에서 판정된 이벤트-촉발 시간을 이용하여 이벤트 분배 정보를 생성한다. 일부 실시예에서는, 오디오 파일 내의 모든 이벤트에 대해 이벤트 분배 정보 내의 사본(counterpart)이 존재한다. 이벤트 분배 정보는 이후 상술한 것처럼 오디오 파일의 재생 중에 이벤트 위치를 제어하기 위해 이용된다. 일부 실시예에서는, 저장 공간을 절약하기 위해 집합 내의 상이한 이벤트에 대응하는 이벤트-촉발 시간을 2진 스트림 형식(binary stream format)으로 저장함으로써, 사운드트랙 이벤트 분배 집합이 생성된다. 더 구체적으로는, 오디오 파일이 복수의 사운드트랙을 포함할 수 있기 때문에, 이벤트 분배 정보가, 복수의 사운드트랙 이벤트 분배 집합을 결합함으로써, 각각의 사운드트랙에 대해 생성된다.
도 6은 일부 실시예에 따르는, 컴퓨팅 장치의 구성요소의 블록 다이어그램의 실례이다. 컴퓨팅 장치(600)는 일박적으로 하나 이상의 처리 유닛(CPU's)(602), 하나 이상의 네트워크 또는 다른 통신 인터페이스(604), 메모리(610), 및 이 구성요소들을 상호접속하기 위한 하나 이상의 통신 버스(609)를 포함한다. 통신 버스(609)는 시스템 구성요소들 사이의 통신을 상호접속하고 제어하는 회로(또는 칩셋으로 호칭됨)를 포함할 수 있다. 컴퓨팅 장치(600)는 디스플레이(606) 및 키보드(608)와 같은 사용자 입력 장치(605)를 포함할 수 있다. 메모리(610)는 고속 랜덤 액세스 메모리를 포함할 수도 있고, 하나 이상의 자기 디스크 저장 장치와 같은 비휘발성 메모리를 포함할 수도 있다. 메모리(610)는 CPU's (602)로부터 원격으로 위치한 대용량 저장장치를 포함할 수 있다. 일부 실시예에서는, 메모리(602), 또는 메모리(602) 내의 대체 비휘발성 메모리 장치가 비일시적 컴퓨터 판독 가능형 매체를 포함한다. 메모리(602) 또는 메모리(602)의 컴퓨터 판독 가능형 저장 매체는 이하의 구성요소들, 또는 이하의 구성요소들의 하위집합을 저장하고, 추가 구성요소:
- 다양한 기본 시스템 서비스를 제공하고 하드웨어 종속 작업을 수행하기 위한 프로시저를 포함하는 운영 시스템(612);
- 컴퓨팅 장치(600)를 원격 서버(예컨대 온-라인 게임 서버)에 접속시키거나 또는 인터넷, 다른 광역 네트워크, 근거리 네트워크, 메트로폴리탄 영역 네트워크 등과 같은 하나 이상의 통신 네트워크(무선 또는 유선)를 통해 다른 컴퓨터와 접속시키기 위해 이용되는 네트워크 통신 모듈(614);
- 사용자 인터페이스(605)를 통해 사용자 입력을 수신하도록 구성되는 사용자 인터페이스 모듈(616);
- 오디오 파일을 재생하기 위한 오디오 플레이어 애플리케이션(618); 일부 실시예에서는 이 오디오 플레이어 애플리케이션(618)은 단독 애플리케이션이고; 일부 다른 실시예에서는, 오디오 플레이어 애플리케이션(618)은 다른 애플리케이션(예컨대, 음악 게임 애플리케이션)의 구성요소임;
- 비디오 파일을 재생하기 위한 비디오 플레이어 애플리케이션(620); 일부 실시예에서는 이 비디오 플레이어 애플리케이션(620)은 단독 애플리케이션이고; 일부 다른 실시예에서는, 비디오 플레이어 애플리케이션(620)은 다른 애플리케이션(예컨대, 음악 게임 애플리케이션)의 구성요소임;
- 오디오 파일에 따라 그래픽 사용자 인터페이스상의 이벤트 위치의 표시를 제어하기 위한 동기화 애플리케이션(622); 일부 실시예에서는, 동기화 애플리케이션(622)은 단독 애플리케이션이고, 일부 다른 실시예에서는 동기화 애플리케이션(622)은 다른 애플리케이션(예컨대, 음악 게임 애플리케이션)의 구성요소이며; 동기화 애플리케이션(622)은:
- 도 1 및 3을 참고하여 전술된 시간 추출 모듈(110);
- 도 1 및 3을 참고하여 전술된 오디오 재생 시간 판정 모듈(130);
- 도 1 및 3을 참고하여 전술된 제어 모듈(150); 및
- 도 4 및 5를 참고하여 전술된 데이터 추출 유닛(211), 계산 유닛(213), 및 정보 생성 유닛(215)을 포함하는 이벤트 분배 정보 생성 모듈(210)을 포함함;
- 도 1 및 2를 참고하여 전술된 사운드트랙(626)과 헤더 데이터(628)를 더 포함하는 오디오 파일 정보(624);
- 도 1 및 2를 참고하여 전술된 사운드트랙(634)과 비디오 프레임 데이터(632)를 더 포함하는 비디오 파일 정보(630); 및
- 이벤트-촉발 시간(642) 및 사운드트랙 데이터(644), 이벤트 식별자(640)를 더 포함하는 이벤트 분배 정보(636).
전술한 방법과 시스템은 오디오 파일로부터 이벤트-촉발 시간을, 오디오 파일로부터 재생 시간을 회수하여, 이벤트-촉발 시간과 재생 시간을 비교함으로써 그래픽 사용자 인터페이스상의 이벤트 위치의 표시를 제어하는 것임을 알아야 한다. 재생 시간이, 상이한 프레임과 연관된 시간을 축적한 결과가 아닌 반면, 오디오 파일의 현재 재생 위치에 대응하기 때문에, 기존의 접근법과 연관된 재생 시간과 이벤트-촉발 시간 사이의 시간 간극이 효과적으로 회피될 수 있다.
특정 실시예들이 위에서 설명되었으나, 이러한 특정 실시예들로 본 발명을 제한하고자 하는 의도가 아닌 것으로 이해될 것이다. 반대로, 본 발명은, 첨부된 청구범위의 사상과 범위 내의 대체, 수정, 및 동등물을 포함한다. 다수의 구체적인 상세한 설명들은 여기 개시된 발명 주제의 완전한 이해를 제공하기 위해 이루어진 것이다. 그러나, 통상의 기술자라면 이러한 발명 주제가 이러한 구체적인 상세한 설명들 없이도 실현될 수 있다는 것을 분명하게 알 것이다. 다른 예시들에서, 잘 알려진 방법들, 프로시저들, 구성요소들, 및 회로들은 본 실시예들의 태양들을 불필요하게 방해하지 않도록, 상세하게 설명되지 않았다.
본 발명의 설명에서 이용된 전문 용어들은 특정 실시예들을 설명하기 위한 목적일 뿐, 본 발명을 제한하고자 하는 의도가 아니다. 본 명세서와 첨부된 청구범위의 설명에서 이용된 것으로서, 단수 형식으로 표현된("a", "an", 및 "the") 용어는, 문맥이 명확하게 다른 것을 지시하지 않는 한, 복수의 형태도 포함하도록 의도된다. 본 명세서에서 사용된 "및/또는"의 용어는 하나 이상의 연관되어 리스트된 항목들의 임의의 또는 모든 가능한 조합들을 나타내고 아우르는 것으로 이해될 것이다. "포함하는"(including, comprise, 및/또는 comprising)의 용어는, 이 명세서에서 이용되는 경우, 언급된 특징들, 동작들, 요소들, 및/또는 구성요소들의 존재를 특정하는 것이며, 하나 이상의 다른 특징들, 동작들, 요소들, 구성요소들, 및/또는 그들이 그룹의 존재 또는 부가를 제외하는 것이 아니다.
"만약"(if)이라는 용어는, 문맥에 따라, 언급된 선례 조건이 사실로서, "~인 경우" 또는 "~이면" 또는 "판단에 응하여" 또는 "판단에 따라" 또는 "검출에 응하여"를 의미하는 것으로 해석될 수 있다. 유사하게, 문장 "[언급된 선례 조건이 사실로] 판정되면" 또는 "[언급된 선례 조건이 사실]이면", 또는 "[언급된 선례 조건이 사실]인 때"는, 문맥에 따라, 언급된 선례 조건이 사실이라는 것으로 "판정하면" 또는 "판정에 응하여" 또는 "판정에 따라" 또는 "검출하면" 또는 "검출에 응하여"를 의미하는 것으로 해석될 수 있다.
다양한 도면들 중 일부가 특정 순서로 논리적 단계들을 설명하고 있으나, 순서에 의존하지 않는 단계들이 재배열될 수도 있고, 다른 단계들이 결합되거나 제외될 수 있다. 일부 재배열 또는 다른 그룹화가 구체적으로 언급되지는 않지만, 통상의 기술자에게 명백할 것이므로, 그러한 대안의 완전한 목록을 표시하지는 않는다. 나아가, 단계들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있음을 알아야 한다.
설명 목적의 전술한 설명들이 특정 실시예들을 참고로 하여 설명되었다. 그러나, 위 설명들이 본 발명을 완전하게 설명한 것이라거나 본 발명을 개시되어 있는 명확한 형태로 한정하고자 하는 의도는 아니다. 많은 수정 및 변형들이 전술한 내용의 측면에서 가능하다. 본 발명과 그 실제적인 적용을 최상으로 설명하여, 당해 기술분야의 통상의 지식을 가진 자가 특정의 사용 계획에 적합한 것으로서 본 발명과 그 다양한 실시예들을 다양한 변형과 함께 최상으로 활용할 수 있도록 하기 위해, 실시예들이 선택되고 설명되었다.

Claims (18)

  1. 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 프로그램을 저장하는 메모리 및 디스플레이를 포함하는 컴퓨터에서 구현되는 컴퓨터-구현 방법으로서,
    이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계 - 상기 이벤트 분배 정보는 컴퓨터상에서 현재 재생되는 오디오 파일과 연관되고, 상기 이벤트-촉발 시간은 순차 순서(sequential order)로 배열됨 -;
    상기 오디오 파일에 대한 현재 재생 시간을 판정하는 단계; 및
    상기 현재 재생 시간과 상기 추출된 이벤트-촉발 시간의 비교에 기초하여 상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계
    를 포함하는 컴퓨터-구현 방법.
  2. 제1항에 있어서,
    상기 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계는,
    상기 컴퓨터상에서 현재 재생되는 비디오 파일의 비디오 프레임을 판정하는 단계 - 상기 비디오 파일은 상기 오디오 파일과 연관됨 -;
    상기 비디오 프레임에 대응하는 사운드트랙 데이터를 식별하는 단계; 및
    상기 이벤트 분배 정보 내의 사운드트랙 데이터에 대응하는 하나 이상의 이벤트를 식별하는 단계 - 각각의 이벤트는 연관된 이벤트-촉발 시간을 포함함 -
    를 더 포함하는, 컴퓨터-구현 방법.
  3. 제1항에 있어서,
    상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계는,
    상기 현재 재생 시간과 각각의 이벤트-촉발 시간을 비교하는 단계;
    상기 현재 재생 시간이 상기 각각의 이벤트-촉발 시간 이전이면, 상기 각각의 이벤트-촉발 시간과 연관된 이벤트에 의해 촉발되는 사용자 입력에 대응하는 시각 지시자(visual indicator)를 표시하는 단계; 및
    상기 현재 재생 시간이 상기 각각의 이벤트-촉발 시간 이후이면, 상기 각각의 이벤트-촉발 시간과 연관된 이벤트에 의해 촉발되는 사용자 입력에 대응하는 시각 지시자의 표시를 중지하는 단계
    를 더 포함하는, 컴퓨터-구현 방법.
  4. 제1항에 있어서,
    상기 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계 이전에,
    상기 오디오 파일로부터 헤더 데이터 및 사운드트랙 데이터를 추출하는 단계; 및
    상기 헤더 데이터 및 사운드트랙 데이터에 기초하여 상기 이벤트 분배 정보를 생성하는 단계
    를 더 포함하는 컴퓨터-구현 방법.
  5. 제4항에 있어서,
    상기 사운드트랙 데이터 내의 이벤트의 대응하는 시간 슬라이스 정보를 식별하는 단계;
    상기 헤더 데이터 및 시간 슬라이스 정보에 기초하여 상기 이벤트의 이벤트-촉발 시간을 판정하는 단계; 및
    상기 이벤트의 이벤트-촉발 시간에 기초하여 상기 이벤트 분배 정보를 생성하는 단계
    를 더 포함하는 컴퓨터-구현 방법.
  6. 제5항에 있어서,
    2진-포맷 사운드트랙-이벤트 분배 집합에 상기 이벤트의 이벤트-촉발 시간 및 상기 대응하는 사운드트랙 데이터를 부가하는 단계
    를 더 포함하고,
    상기 2진-포맷 사운드트랙-이벤트 분배 집합은 상기 오디오 파일과 연관된 이벤트 분배 정보로서 구성되는, 컴퓨터-구현 방법.
  7. 하나 이상의 프로세서;
    메모리;
    디스플레이; 및
    상기 하나 이상의 프로세서에 의한 실행을 위해 구성되어 상기 메모리 내에 저장된 하나 이상의 프로그램
    을 포함하는 컴퓨터 시스템으로서,
    상기 하나 이상의 프로그램은,
    이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계 - 상기 이벤트 분배 정보는 컴퓨터상에서 현재 재생되는 오디오 파일과 연관되고, 상기 이벤트-촉발 시간은 순차 순서로 배열됨 -;
    상기 오디오 파일에 대한 현재 재생 시간을 판정하는 단계; 및
    상기 현재 재생 시간과 상기 추출된 이벤트-촉발 시간의 비교에 기초하여 상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계
    를 위한 명령어를 포함하는, 컴퓨터 시스템.
  8. 제7항에 있어서,
    상기 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계를 위한 명령어는,
    상기 컴퓨터상에서 현재 재생되는 비디오 파일의 비디오 프레임을 판정하는 단계 - 상기 비디오 파일은 상기 오디오 파일과 연관됨 -;
    상기 비디오 프레임에 대응하는 사운드트랙 데이터를 식별하는 단계; 및
    상기 이벤트 분배 정보 내의 사운드트랙 데이터에 대응하는 하나 이상의 이벤트를 식별하는 단계 - 각각의 이벤트는 연관된 이벤트-촉발 시간을 포함함 -
    를 위한 명령어를 더 포함하는, 컴퓨터 시스템.
  9. 제7항에 있어서,
    상기 컴퓨터 시스템의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계를 위한 명령어는,
    상기 현재 재생 시간과 각각의 이벤트-촉발 시간을 비교하는 단계;
    상기 현재 재생 시간이 상기 각각의 이벤트-촉발 시간 이전이면, 상기 각각의 이벤트-촉발 시간과 연관된 이벤트에 의해 촉발되는 사용자 입력에 대응하는 시각 지시자(visual indicator)를 표시하는 단계; 및
    상기 현재 재생 시간이 상기 각각의 이벤트-촉발 시간 이후이면, 상기 각각의 이벤트-촉발 시간과 연관된 이벤트에 의해 촉발되는 사용자 입력에 대응하는 시각 지시자의 표시를 중지하는 단계
    를 위한 명령어를 더 포함하는, 컴퓨터 시스템.
  10. 제7항에 있어서,
    상기 하나 이상의 프로그램은,
    상기 이벤트 분배 정보로부터 미리 정해진 수의 이벤트-촉발 시간을 추출하는 단계 이전에,
    상기 오디오 파일로부터 헤더 데이터 및 사운드트랙 데이터를 추출하는 단계; 및
    상기 헤더 데이터 및 사운드트랙 데이터에 기초하여 상기 이벤트 분배 정보를 생성하는 단계
    를 위한 명령어를 더 포함하는 컴퓨터 시스템.
  11. 제10항에 있어서,
    상기 하나 이상의 프로그램은,
    상기 사운드트랙 데이터 내의 이벤트의 대응하는 시간 슬라이스 정보를 식별하는 단계;
    상기 헤더 데이터 및 시간 슬라이스 정보에 기초하여 상기 이벤트의 이벤트-촉발 시간을 판정하는 단계; 및
    상기 이벤트의 이벤트-촉발 시간에 기초하여 상기 이벤트 분배 정보를 생성하는 단계
    를 위한 명령어를 더 포함하는 컴퓨터 시스템.
  12. 제11항에 있어서,
    상기 하나 이상의 프로그램은,
    2진-포맷 사운드트랙-이벤트 분배 집합에 상기 이벤트의 이벤트-촉발 시간 및 상기 대응하는 사운드트랙 데이터를 부가하는 단계
    를 위한 명령어를 더 포함하고,
    상기 2진-포맷 사운드트랙-이벤트 분배 집합은 상기 오디오 파일과 연관된 이벤트 분배 정보로서 구성되는, 컴퓨터 시스템.
  13. 디스플레이를 가지는 컴퓨터의 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 비-일시적 컴퓨터 판독 가능형 저장 매체로서,
    상기 하나 이상의 프로그램은,
    이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계 - 상기 이벤트 분배 정보는 컴퓨터상에서 현재 재생되는 오디오 파일과 연관되고, 상기 이벤트-촉발 시간은 순차 순서로 배열됨 -;
    상기 오디오 파일에 대한 현재 재생 시간을 판정하는 단계; 및
    상기 현재 재생 시간과 상기 추출된 이벤트-촉발 시간의 비교에 기초하여 상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계
    를 위한 명령어를 포함하는, 비-일시적 컴퓨터 판독 가능형 저장 매체.
  14. 제13항에 있어서,
    상기 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계를 위한 명령어는,
    상기 컴퓨터상에서 현재 재생되는 비디오 파일의 비디오 프레임을 판정하는 단계 - 상기 비디오 파일은 상기 오디오 파일과 연관됨 -;
    상기 비디오 프레임에 대응하는 사운드트랙 데이터를 식별하는 단계; 및
    상기 이벤트 분배 정보 내의 사운드트랙 데이터에 대응하는 하나 이상의 이벤트를 식별하는 단계 - 각각의 이벤트는 연관된 이벤트-촉발 시간을 포함함 -
    를 위한 명령어를 더 포함하는, 비-일시적 컴퓨터 판독 가능형 저장 매체.
  15. 제13항에 있어서,
    상기 컴퓨터의 디스플레이 상의 사용자 입력에 대응하는 이벤트 위치를 제어하는 단계를 위한 명령어는,
    상기 현재 재생 시간과 각각의 이벤트-촉발 시간을 비교하는 단계;
    상기 현재 재생 시간이 상기 각각의 이벤트-촉발 시간 이전이면, 상기 각각의 이벤트-촉발 시간과 연관된 이벤트에 의해 촉발되는 사용자 입력에 대응하는 시각 지시자(visual indicator)를 표시하는 단계; 및
    상기 현재 재생 시간이 상기 각각의 이벤트-촉발 시간 이후이면, 상기 각각의 이벤트-촉발 시간과 연관된 이벤트에 의해 촉발되는 사용자 입력에 대응하는 시각 지시자의 표시를 중지하는 단계
    를 위한 명령어를 더 포함하는, 비-일시적 컴퓨터 판독 가능형 저장 매체.
  16. 제13항에 있어서,
    상기 하나 이상의 프로그램은,
    상기 이벤트 분배 정보로부터 미리 정의된 수의 이벤트-촉발 시간을 추출하는 단계 이전에,
    상기 오디오 파일로부터 헤더 데이터 및 사운드트랙 데이터를 추출하는 단계; 및
    상기 헤더 데이터 및 사운드트랙 데이터에 기초하여 상기 이벤트 분배 정보를 생성하는 단계
    를 위한 명령어를 더 포함하는 비-일시적 컴퓨터 판독 가능형 저장 매체.
  17. 제16항에 있어서,
    상기 하나 이상의 프로그램은,
    상기 사운드트랙 데이터 내의 이벤트의 대응하는 시간 슬라이스 정보를 식별하는 단계;
    상기 헤더 데이터 및 시간 슬라이스 정보에 기초하여 상기 이벤트의 이벤트-촉발 시간을 판정하는 단계; 및
    상기 이벤트의 이벤트-촉발 시간에 기초하여 상기 이벤트 분배 정보를 생성하는 단계
    를 위한 명령어를 더 포함하는 비-일시적 컴퓨터 판독 가능형 저장 매체.
  18. 제17항에 있어서,
    상기 하나 이상의 프로그램은,
    2진-포맷 사운드트랙-이벤트 분배 집합에 상기 이벤트의 이벤트-촉발 시간 및 상기 대응하는 사운드트랙 데이터를 부가하는 단계
    를 위한 명령어를 더 포함하고,
    상기 2진-포맷 사운드트랙-이벤트 분배 집합은 상기 오디오 파일과 연관된 이벤트 분배 정보로서 구성되는, 비-일시적 컴퓨터 판독 가능형 저장 매체.
KR20157008500A 2012-09-03 2013-08-28 이벤트 분배 정보를 생성하기 위한 시스템 및 방법 KR20150043537A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210321561.2A CN103680562B (zh) 2012-09-03 2012-09-03 音频文件的布点实现方法和装置
CN201210321561.2 2012-09-03
PCT/CN2013/082419 WO2014032580A1 (en) 2012-09-03 2013-08-28 System and method for generating event distribution information

Publications (1)

Publication Number Publication Date
KR20150043537A true KR20150043537A (ko) 2015-04-22

Family

ID=50182514

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20157008500A KR20150043537A (ko) 2012-09-03 2013-08-28 이벤트 분배 정보를 생성하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US9116605B2 (ko)
EP (1) EP2893417A4 (ko)
JP (1) JP2015534151A (ko)
KR (1) KR20150043537A (ko)
CN (1) CN103680562B (ko)
WO (1) WO2014032580A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286383B1 (en) * 2014-08-28 2016-03-15 Sonic Bloom, LLC System and method for synchronization of data and audio
CN105679349A (zh) * 2014-11-20 2016-06-15 乐视移动智能信息技术(北京)有限公司 智能终端的录音标记的控制方法及装置
CN108074552A (zh) * 2016-11-18 2018-05-25 北京酷我科技有限公司 一种钢琴的电子曲谱转换方法及系统
CN107491947B (zh) * 2017-08-24 2020-06-02 维沃移动通信有限公司 一种资源转移方法、相关设备及系统
KR20200104869A (ko) * 2017-12-08 2020-09-04 크론댓 인코포레이티드 전자 연표
CN109343770B (zh) * 2018-09-27 2021-07-20 腾讯科技(深圳)有限公司 交互反馈方法、设备和记录介质
CN109529336A (zh) * 2018-11-20 2019-03-29 网易(杭州)网络有限公司 声音事件播放的控制方法、控制装置、存储介质与处理器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6232988A (ja) * 1985-08-01 1987-02-12 スタンレー電気株式会社 ゲ−ム装置
WO1994027233A1 (en) * 1993-05-10 1994-11-24 Taligent, Inc. Audio synchronization system
US7239320B1 (en) * 1999-06-30 2007-07-03 Musicnotes, Inc. System and method for transmitting interactive synchronized graphics
CN1471305A (zh) * 2002-07-25 2004-01-28 梁肇新 多媒体音视频与说明文字的同步驱动技术
WO2004027577A2 (en) * 2002-09-19 2004-04-01 Brian Reynolds Systems and methods for creation and playback performance
CN1691043A (zh) * 2004-04-29 2005-11-02 明基电通股份有限公司 依据音乐文件中所选定音轨的事件来进行游戏的方法
WO2008024486A2 (en) * 2006-08-24 2008-02-28 Fliptrack, Inc. Beat and text based editing and composing systems and methods
US7739255B2 (en) * 2006-09-01 2010-06-15 Ma Capital Lllp System for and method of visual representation and review of media files
JP2008200295A (ja) * 2007-02-20 2008-09-04 Namco Bandai Games Inc ゲーム装置、プログラム及び情報記憶媒体
JP2008264297A (ja) * 2007-04-23 2008-11-06 Namco Bandai Games Inc ゲームシステム、プログラム及び情報記憶媒体
US8381086B2 (en) * 2007-09-18 2013-02-19 Microsoft Corporation Synchronizing slide show events with audio
JP2009165564A (ja) * 2008-01-11 2009-07-30 Sega Corp ゲーム進行制御方法、ゲーム進行制御プログラムを記憶した情報記憶媒体、及びゲーム装置
JP2009276829A (ja) * 2008-05-12 2009-11-26 Nintendo Co Ltd 情報処理プログラムおよび情報処理装置
US20120014673A1 (en) * 2008-09-25 2012-01-19 Igruuv Pty Ltd Video and audio content system
US8026436B2 (en) * 2009-04-13 2011-09-27 Smartsound Software, Inc. Method and apparatus for producing audio tracks
US8629342B2 (en) * 2009-07-02 2014-01-14 The Way Of H, Inc. Music instruction system
CN101640058B (zh) * 2009-07-24 2012-05-23 王祐凡 多媒体同步方法、播放器以及多媒体数据制作设备
KR20120091325A (ko) * 2009-11-10 2012-08-17 둘세타 인코포레이티드 전자식 시각자료에 대한 사운드트랙의 동적 오디오 재생
JP5750229B2 (ja) * 2010-03-15 2015-07-15 株式会社コナミデジタルエンタテインメント ゲームシステム、ゲームシステムの制御方法及びゲームシステム装置用プログラム
US20110319160A1 (en) * 2010-06-25 2011-12-29 Idevcor Media, Inc. Systems and Methods for Creating and Delivering Skill-Enhancing Computer Applications

Also Published As

Publication number Publication date
CN103680562A (zh) 2014-03-26
WO2014032580A1 (en) 2014-03-06
CN103680562B (zh) 2017-03-22
US9116605B2 (en) 2015-08-25
US20140089797A1 (en) 2014-03-27
EP2893417A1 (en) 2015-07-15
JP2015534151A (ja) 2015-11-26
EP2893417A4 (en) 2015-09-23

Similar Documents

Publication Publication Date Title
KR20150043537A (ko) 이벤트 분배 정보를 생성하기 위한 시스템 및 방법
US11456017B2 (en) Looping audio-visual file generation based on audio and video analysis
US11348561B2 (en) Performance control method, performance control device, and program
US10506268B2 (en) Identifying media content for simultaneous playback
US11163825B2 (en) Selecting songs with a desired tempo
KR20210016080A (ko) 오디오에 수반되는 비디오 프레젠테이션 생성
US10799795B1 (en) Real-time audio generation for electronic games based on personalized music preferences
US20140116233A1 (en) Metrical grid inference for free rhythm musical input
CN105578258B (zh) 一种视频预处理和视频回放的方法及装置
US20210043173A1 (en) Method and apparatus for training adaptation quality evaluation model, and method and apparatus for evaluating adaptation quality
US20200410967A1 (en) Method for displaying triggered by audio, computer apparatus and storage medium
CN109410972B (zh) 生成音效参数的方法、装置及存储介质
CN104681048A (zh) 多媒体读取控制装置、曲线获取装置、电子设备、曲线提供装置及方法
JP2018097239A (ja) 音声再生装置及びプログラム
US10348938B2 (en) Display timing determination device, display timing determination method, and program
US20160048271A1 (en) Information processing device and information processing method
JP6838357B2 (ja) 音響解析方法および音響解析装置
Dolhansky et al. Designing an expressive virtual percussion instrument
WO2023185387A1 (zh) 音乐信息展示方法、装置、设备、程序产品和存储介质
JP7102826B2 (ja) 情報処理方法および情報処理装置
WO2017081486A1 (en) Video system
JP6144592B2 (ja) 歌唱採点システム
US11130066B1 (en) System and method for synchronization of messages and events with a variable rate timeline undergoing processing delay in environments with inconsistent framerates
CN117258280A (zh) 游戏画面处理方法、装置、存储介质及电子装置
JP4336362B2 (ja) 音響再生装置及びその方法、音響再生プログラム及びその記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment