IP Library Granted Patent US 7,587,255
Granted Patent B1
US 7,587,255 · App. 11/799,776 · Granted Sep 8, 2009

Software and process for play-cursor calculation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,587,255
App. No.
11/799,776
Granted
Sep 8, 2009
Kind
B1
Abstract

A process and software for achieving minimal latency in digital audio playback, which includes calculating a repeatable play cursor lead and a play cursor position and writing audio data at the play cursor position plus the play cursor lead.

Claims (79)

1. A computer-readable media storing a program, said program comprising instructions to a computer to perform the steps of;

a) calculating a repeatable play cursor lead;

b) calculating a current estimate of a play cursor position, said step of calculating a current estimate of a play cursor position further comprising the steps of:

i) periodically querying for a current reported play cursor position; and

ii) using a plurality of said reported play cursor positions obtained as a result of said step of periodic querying in said step of calculating a current estimate of a play cursor position;

c) adding the calculated play cursor position to the calculated play cursor lead; and

d) writing audio data to an audio buffer at the calculated play cursor position plus the calculated play cursor lead;

wherein said step of adding the calculated play cursor position to the calculated play cursor lead is performed prior to said step of using a plurality of said reported play cursor positions obtained as a result of said step of periodic querying in said step of calculating a current estimate of a play cursor position.

2. The computer-readable media of claim 1 , said program further comprising instructions to perform the step of reducing latency by reducing said play cursor lead.

3. The computer-readable media of claim 1 , said program further comprising instructions to perform the step of maintaining a list of said reported play cursor positions obtained as a result of said step of periodic querying.

4. The computer-readable media of claim 3 , said program further comprising instructions to perform the step of estimating the play cursor position by averaging the play cursor positions in said list.

5. The computer-readable media of claim 1 . said program further comprising instructions to perform at least one step selected from the group of steps consisting of:

a) calculating an instantaneous sampling rate as an intermediate step of calculating a current estimate of a play cursor position;

b) calculating a weighted average as an intermediate step of calculating a current estimate of a play cursor position; and

c) interpolating a current estimated play cursor position as an intermediate step of calculating a current estimate of a play cursor position.

6. A computer-readable media storing a program, said program comprising instructions to a computer to perform the steps of;

a) calculating a repeatable play cursor lead;

b) calculating a current estimate of a play cursor position, said step of calculating a current estimate of a play cursor position further comprising the steps of:

i) periodically querying for a current reported play cursor position; and

ii) using a plurality of said reported play cursor positions obtained as a result of said step of periodic querying in said step of calculating a current estimate of a play cursor position;

c) adding the calculated play cursor position to the calculated play cursor lead;

d) writing audio data to an audio buffer at the calculated play cursor position plus the calculated play cursor lead;

e) at least one step selected from the group of steps consisting of:

i) calculating an instantaneous sampling rate as an intermediate step of calculating a current estimate of a play cursor position;

ii) calculating a weighted average as an intermediate step of calculating a current estimate of a play cursor position; and

iii) interpolating a current estimated play cursor position as an intermediate step of calculating a current estimate of a play cursor position;

f) reducing latency by reducing said play cursor lead based on the accuracy of said current estimate of a play cursor position.

7. A process for reducing latency in digital audio playback, said process comprising the steps of:

a) calculating a repeatable play cursor lead;

b) calculating a current estimate of the play cursor position, said step of calculating a current estimate of a play cursor position further comprising the steps of:

i) periodically querying for a current reported play cursor position; and

ii) using a plurality of said reported play cursor positions obtained as a result of said step of periodic querying in said step of calculating a current estimate of a play cursor position;

c) adding the calculated play cursor position to the calculated play cursor lead; and

d) writing audio data to an audio buffer at the calculated play cursor position plus the calculated play cursor lead;

e) said step of adding the calculated play cursor position to the calculated play cursor lead is performed prior to said step of using a plurality of said reported play cursor positions obtained as a result of said step of periodic querying in said step of calculating a current estimate of a play cursor position.

8. The process of claim 7 further comprising the step of reducing latency by reducing said play cursor lead.

9. The process of claim 7 further comprising the step of maintaining a list of said reported play cursor positions obtained as a result of said periodic querying step.

10. The process of claim 9 further comprising the step of calculating an estimate of the play cursor position by averaging said reported play cursor positions in said list of play cursor positions.

11. The process of claim 7 further comprising at least one step selected from the group of steps consisting of:

a) calculating an instantaneous sampling rate as an intermediate step of calculating a current estimate of a play cursor position;

b) calculating a weighted average as an intermediate step of calculating a current estimate of a play cursor position; and

c) interpolating a current estimated play cursor position as an intermediate step of calculating a current estimate of a play cursor position.

12. A process for reducing latency in digital audio playback, said process comprising the steps of:

a) calculating a repeatable play cursor lead;

b) calculating a current estimate of the play cursor position, said step of calculating a current estimate of a play cursor position further comprising the steps of:

i) periodically querying for a current reported play cursor position; and

ii) using a plurality of said reported play cursor positions obtained as a result of said step of periodic querying in said step of calculating a current estimate of a play cursor position;

c) adding the calculated play cursor position to the calculated play cursor lead;

d) writing audio data to an audio buffer at the calculated play cursor position plus the calculated play cursor lead;

e) at least one step selected from the group of steps consisting of:

i) calculating an instantaneous sampling rate as an intermediate step of calculating a current estimate of a play cursor position;

ii) calculating a weighted average as an intermediate step of calculating a current estimate of a play cursor position; and

iii) interpolating a current estimated play cursor position as an intermediate step of calculating a current estimate of a play cursor position; and

f) reducing latency by reducing said play cursor lead based on the accuracy of said current estimate of a play cursor position.

13. A process for reducing latency in digital audio playback, said process comprising the steps of:

a) calculating a repeatable play cursor lead;

b) querying for a current reported play cursor position and using a plurality of said current reported play cursor positions in said step of calculating a current estimate of a play cursor position;

c) calculating a current estimate of the play cursor position based on a plurality of said current reported play cursor positions;

d) adding the calculated play cursor position to the calculated play cursor lead; and

e) writing audio data to an audio buffer at the calculated play cursor position plus the calculated play cursor lead;

wherein said step of adding the calculated play cursor position to the calculated play cursor lead is performed prior to using a plurality of said current reported play cursor positions in said step of calculating a current estimate of a play cursor position.

14. The process of claim 13 further comprising the step of reducing latency by reducing said play cursor lead.

15. The process of claim 13 further comprising the step of maintaining a list of said plurality of said current reported play cursor positions.

16. The process of claim 13 , said step of calculating a current estimate of the play cursor position further comprising the step of calculating an estimate of the play cursor position by averaging said plurality of said current reported play cursor positions.

17. The process of claim 13 , said step of calculating a current estimate of the play cursor position further comprising at least one step selected from the group of steps consisting of:

a) calculating an instantaneous sampling rate;

b) calculating a weighted average; and

c) interpolating a current estimated play cursor position.

18. A process for reducing latency in digital audio playback, said process comprising the steps of:

a) calculating a repeatable play cursor lead:

b) querying for a current reported cursor position and using a plurality of said current reported play cursor positions in said step of calculating a current estimate of a play cursor position;

c) calculating a current estimate of the play cursor position based on a plurality of said current reported play cursor positions;

d) adding the calculated play cursor position to the calculated play cursor lead;

e) writing audio data to an audio buffer at the calculated play cursor position plus the calculated play cursor lead;

f) said step of calculating a current estimate of the play cursor position further comprising at least one step selected from the group of steps consisting of:

i) calculating an instantaneous sampling rate;

ii) calculating a weighted average; and

iii) interpolating a current estimated play cursor position; and

g) reducing latency by reducing said play cursor lead based on the accuracy of said current estimate of a play cursor position.

Assignments (18)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CITICORP USA, INC.
To: AVAYA, INC.; SIERRA HOLDINGS CORP.
Reel/Frame 045045/0564 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 023892/0500 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.
Reel/Frame 044891/0564 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Feb 22, 2011
From: AVAYA INC., A DELAWARE CORPORATION
To: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE
Reel/Frame 025863/0535 →
MERGER Recorded Sep 21, 2010
From: DIAMONDWARE, LTD.
To: AVAYA INC.
Reel/Frame 025023/0804 →
SECURITY AGREEMENT Recorded Feb 5, 2010
From: AVAYA INC.
To: CITICORP USA, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 023905/0001 →
SECURITY AGREEMENT Recorded Feb 4, 2010
From: AVAYA INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 023892/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2007
From: LORENZEN, ERIK; WEINER, KEITH
To: DIAMONDWARE, LTD.
Reel/Frame 019292/0260 →