|
Claims  |
|
|
I claim:
1. A device for choosing in varying non-sequential order individual
selections from playback media having a plurality of individual
selections, comprising:
means for playback of chosen individual selections from playback media;
key means for receipt of a user command for playback of the individual
selections in varying non-sequential order;
processor means receiving said user command from said key means and
responsively calculating a random selection from a deterministic function
T.sub.n =SHUFFLE(S.sub.n, Seed) as follows
##STR1##
where T.sub.n is a Selection Offset, S.sub.n is a sequence number, Seed is
an unsigned uniform random value, S.sub.d is a temporary value, F.sub.1 .
. . F.sub.n are a series of closed operations using the current values of
T.sub.n and S.sub.n, Rotate (S.sub.d, M.sub.2, N.sub.2) circularly shifts
a number S.sub.d, having N.sub.2 bits, to the right M.sub.2 times, M.sub.1
is a number of loops, M.sub.2 is the fixed number of bit the temporary
value S.sub.d is to be rotated; N.sub.2 is the number of bits in a seed;
and G.sub.1 . . . G.sub.n are closed operations based upon only T.sub.n ;
and
said processor means further including means for determining a chosen
selection from said selection Offset T.sub.n and for communicating with
said means for playback to play the chosen selection determined from said
Selection Offset.
2. A device, as set forth in claim 1, wherein the playback media is a
digital audio recording, and further including display means for receiving
from said processor means and displaying said chosen individual selection,
said processor means performing calculations in binary, including a
plurality of operations selected from the group of bit inversions,
exclusive OR with an N-bit constant, N-bit rotations, bit swapping, one to
one substitutions, and modulus additions and subtractions.
3. A device, as set forth in claim 2, wherein said digital audio recording
is a CD, and said deterministic function selects from up to two hundred
fifty-six individual selections using a plurality of data bits in the
range of three to eight, as follows
##STR2##
where TableLookUp returns the number 5, 0, 3, 4, 2, 1, 6 or 7 when the
three least significant bits from the number that results from the ANDing
of T.sub.n with 07 is 0, 1, 2, 3, 4, 5, 6, or 7, respectively.
4. A method for choosing individual selections from playback media having a
plurality of individual selections and playing the individual selections
in varying non-sequential order, comprising the steps of:
(i) selecting a sequence number and a random seed in response to a user
selecting a non-sequential playback mode;
(ii) calculating a shuffled selection offset that corresponds to a unique
selection on the playback media using a predetermined function based upon
said sequence number and said random seed;
(iii) determining the chosen selection from said shuffled selection offset,
and,
(iv) playing the chosen selection determined from said shuffled selection
offset.
5. A method, as set forth in claim 4, wherein the playback media is a
digital audio recording and said step (ii) of calculating a shuffled
selection offset includes the step of performing a plurality of binary
operations selected from the group of bit inversions, exclusive OR with an
N-bit constant, N-bit rotations, bit swapping, one to one subtractions,
and modulus additions and subtractions, beginning with said sequence
number and said seed to generate said shuffled selection offset.
6. A method, as set forth in claim 5, wherein said digital audio recording
is a CD, and said step (ii) of calculating a shuffled selection offset
includes the step of performing the following
##STR3##
where T.sub.n is said shuffled Selection Offset of N bit length; S.sub.n
is a sequence number of N bit length that is incremented linearly to
sequence through the shuffled order; Seed is an unsigned uniform random
value of at least N bit length from which the particular sequence is
generated; S.sub.d is a temporary value; F.sub.1 . . . F.sub.n are said
series of closed operations of N bits using the current values of T.sub.n
and S.sub.n ; Rotate (X,Y,Z) circularly shifts a number X, consisting of Z
bits, to the right Y times; M.sub.1 is a loop counter; M.sub.2 is the
fixed number of bits the temporary value S.sub.d is to be rotated; N.sub.2
is the number of bits in a seed; and, G.sub.1 . . . G.sub.n are closed
operations based upon only T.sub.n.
7. A method, as set forth in claim 6, wherein said predetermined function
selects from up to two hundred fifty-six individual selections using a
plurality of data bits in the range of three to eight, and said step (ii)
of calculating a shuffled selection offset includes the step of performing
the following
##STR4##
and TableLookUp includes the step of returning the number 5, 0, 3, 4, 2,
1, 6 or 7 when the three least significant bits from the number that
results from the ANDing of T.sub.n with 07 is 0, 1, 2, 3, 4, 5, 6, or 7,
respectively.
8. A method as set forth in claim 4, further including the steps of:
(v) incrementing the sequence number in response to the user selecting a
next track for play and then performing the above steps of (ii)-(iv).
9. A method as set forth in claim 4, further including the steps of:
(v) decrementing the sequence number in response to the user selecting a
prior track for play and then performing the above steps of (ii)-(iv). |
|
|
|
|
Claims  |
|
|
Description  |
|
|
The present invention relates generally to devices capable of directly
accessing individual selections on playback media having multiple
selections, such as audio equipment that can play one or more Compact
Discs (CDs), mini-discs or Digital Audio Tapes (DATs). More particularly,
the present invention relates to audio equipment that is capable of
playing individual audio selections in varying non-sequential order, such
as, for example, single-disc CD players or multi-disc CD changers (CDCs).
BACKGROUND ART
Digital technology has enabled manufacturers of CD players to provide a
so-called random play mode in which CD selections are played in varying
non-sequential order. One approach, for example, uses a uniform random
number generator such as a free running timer to generate numbers from
which choice of the next selection may be determined. However, this
approach allows unlimited repetition of selections before all selections
have been played, a characteristic disliked by many CD player users, and
does not allow users to replay any number of past selections or skip to as
yet unplayed selections without loss of the current sequence, a feature
sought by many CD player users.
Another approach that plays CD selections in varying non-sequential order
is a variant of the preceding approach in which a number generator and
memory array is employed to memorialize "played" selections, eliminating
selection repetition. But once again, users may not move through the
selection sequence.
CD players have allowed random choice and play of selections without
repetitions (before playing of all other selections), and user chosen
selection replays and skips where a complete selection sequence has been
stored in memory and an index used to identify current selection. Inasmuch
as a single CD may have up to ninety-nine selections (on individual
"tracks"), and CD changers provided with up to twelve or more discs, the
amount of memory and execution time required to implement this approach is
significant and prohibitive.
SUMMARY OF THE INVENTION
It is, therefore, an object of the present invention to provide a device
and method for choosing and playing individual selections on a digital
audio recording in varying non-sequential order that the user of such
device is unable to predict.
It is another object of the present invention to provide a device and
method, as above, in which all selections are played before any selection
is repeated.
It is still another object of the present invention to provide a device and
method, as above, which the user may replay any past selection or skip to
any unplayed selection while maintaining the same order (i.e., the user
may move through the sequence).
It is yet another object of the present invention to provide a device and
method, as above, in which the amount of necessary memory and execution
time are minimized.
It is a further object of the present invention to provide a device and
method, as above, which is suitable for use with single-disc CD players
and multi-disc CD changers.
These and other objects and advantages of the present invention over
existing prior art forms will become more apparent and fully understood
from the following description in conjunction with the accompanying
drawings.
In general, a device for choosing individual selections on a digital audio
recording in varying non-sequential order includes means for playback of
chosen selections on a digital audio recording, key means for receipt of a
user command for playback in varying non-sequential order, and processor
means communicating with the means for playback, receiving the user
command from the key means, and calculating a random selection from a
deterministic function T.sub.n =SHUFFLE(S.sub.n, Seed) as follows
______________________________________
T.sub.n :=G.sub.1 (S.sub.n)
Sd:=Seed
for I:= 1 to M.sub.1
begin
T.sub.n :=F.sub.1 (T.sub.n,S.sub.d)
. . .
T.sub.n :=F.sub.n (T.sub.n,S.sub.d)
S.sub.d :=Rotate (S.sub.d,M.sub.2,N.sub.2)
end;
T.sub.n =G.sub.2 (T.sub.n);
______________________________________
were T.sub.n is a Selection Offset, S.sub.n is a sequence number, Seed is
an unsigned uniform random value, S.sub.d is a temporary value, F.sub.1 .
. . F.sub.n are a series of closed operations using the current values of
T.sub.n and S.sub.n, Rotate (S.sub.d,M.sub.2, N.sub.2) circularly shifts a
number S.sub.d, having N.sub.2 bits, to the right M.sub.2 times, M.sub.1
is a number of loops, M.sub.2 is the fixed number of bits the temporary
value S.sub.d is to be rotated; N.sub.2 is the number of bits in a seed;
and, G.sub.1 . . . G.sub.n are closed operations based upon only T.sub.n.
In general, a method for choosing and playing individual selections on a
digital audio recording in varying non-sequential order include the steps
of selecting a sequence number and a random seed and calculating a
shuffled selection offset that corresponds to a unique selection on the
digital audio recording using a deterministic function based upon the
sequence number and the random seed. The chosen selection is determined
from the shuffled selection offset and played.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an exemplary CD mechanism in accordance with
the concept of the present invention for furnishing a digital recording
shuffle playback operating mode.
FIG. 2A is a partial top level flow chart of an exemplary method for
furnishing a digital recording shuffle playback operating mode in a
digital audio playback device such as a CD player or a CD changer.
FIG. 2B is a continuation of the partial top level flow chart of an
exemplary method for furnishing a digital recording shuffle playback
operating mode in a digital audio playback device such as a CD player or a
CD changer shown in FIG. 2A.
PREFERRED EMBODIMENT FOR CARRYING OUT THE INVENTION
FIG. 1 presents in block diagram form an exemplary device, generally
indicated by the reference numeral 10, for furnishing a digital recording
shuffle playback operating mode in a digital audio playback device such as
a CD player or a CD changer. Device 10 may include a conventional CD
mechanism 12 including position and tracking means 14 for playing a chosen
track on a single-disc CD, or playing a chosen track on a chosen disc in a
multiple-disc CD changer. CD mechanism 12 communicates with and is
controlled by a processor 16, which in turn communicates with a keyboard
17 having a key 18 for user selection of the shuffle playback operating
mode and such other keys as may be desired, and a display 19 for depicting
at least the chosen disc and track.
Device 10 chooses a non-sequentially ordered track by generating a track
offset with a deterministic function, which may be called SHUFFLE, having
a sequence number (S.sub.n) and a random seed (Seed). Expressed
mathematically, T.sub.n :=SHUFFLE(S.sub.n, Seed) where S.sub.n is the
current sequence number that may be incremented or decremented to produce
the next or previous shuffled selection, Seed is a pseudo-random value
that selects a given sequence of play, and T.sub.n is the corresponding
shuffled selection offset that is converted to an actual disc and
selection number. Thus, knowing the SHUFFLE function, storing only the
current sequence number S.sub.n and the Seed allows rapid computation of
the entire sequence with only minimal resources.
A preferred SHUFFLE function should possess a number of characteristics to
achieve optimally the objectives of the present invention. First, the
function must be closed and provide a unique one to one mapping of the
current sequence number S.sub.n to a shuffled selection offset T.sub.n,
thereby insuring that each individual selection is chosen only once each
sequence. Second, each Seed value must produce a different mapping of the
current sequence number S.sub.n to the shuffled selection offset T.sub.n.
Third, the probability of mapping of the current sequence number S.sub.n
to any specific shuffled selection offset T.sub.n must be approximately
the same as mapping to any other shuffled selection offset, thereby
insuring that the user cannot consistently predict the next selection.
Fourth, the SHUFFLE function must be scalable to the total number of
selections available, thereby insuring minimal execution time. Finally,
the SHUFFLE function must be executable using only the processors typical
of audio playback equipment, such as microcontrollers and microprocessors,
using standard integer instructions, further minimizing execution time and
resource demands.
A SHUFFLE algorithm that possesses the preceding characteristics may be
described as follows.
______________________________________
T.sub.n = SHUFFLE(S.sub.n,Seed)
begin
T.sub.n :=G.sub.1 (S.sub.n)
S.sub.d :=Seed
for I:=1 to M.sub.1
begin
T.sub.n :=F.sub.1 (T.sub.n,S.sub.d)
. . .
T.sub.n :=F.sub.n (T.sub.n,S.sub.d)
S.sub.d :=Rotate (S.sub.d,M.sub.2,N.sub.2)
end;
T.sub.n =G.sub.2 (T.sub.n);
end;
______________________________________
where, implemented in a binary system, T.sub.n is the Selection Offset of
N bit length that is subsequently converted to an actual Disc and
Selection Number; S.sub.n is a sequence number of N bit length that is
incremented linearly to sequence through the shuffled order; Seed is an
unsigned uniform random value (such as may be obtained from a free running
timer) of at least N bit length from which the particular sequence is
generated; S.sub.d is a temporary value; F.sub.1 . . . F.sub.n are a
series of closed operations of N bits using the current values of T.sub.n
and S.sub.n as discussed further hereinafter; Rotate (X,Y,Z) circularly
shifts a number X, having Z bits, to the right Y times to insure that all
portions of a seed are used in the mapping where the size of the seed is
larger than the size of the offset; M.sub.1 is the number of loops,
preferably three, during which complete mappings are made to insure
sufficient randomness in the distribution of the results; M.sub.2 is the
fixed number of bits the temporary value S.sub.d is to be rotated; N.sub.2
is the number of bits in a seed, generally a constant for a given number
of total tracks; and, G.sub.1 . . . G.sub.n are closed operations based
upon only T.sub.n, as are also discussed further hereinafter.
Significant to generating the desired sequence are the operations F.sub.1 .
. . F.sub.n using the current values of T.sub.n and S.sub.n. These
functions must be closed over the domain of possible selection values (M=0
to 2.sup.N -1), provide unique one to one mapping of S.sub.n to T.sub.n,
and be reversible (i.e., for F(x) there must be an inverse function
F.sup.-1 (x) such that x=F.sup.-1 (F(x)) for all values of x in the
domain). The following operations fulfill such requirements in a binary
based system and are well suited for implementation by a digital processor
such as processor 16: bit inversions, exclusive OR with an N-bit constant,
N-bit rotations, bit swapping, one to one substitutions, and modulus
additions and subtractions.
Significant to insuring adequate "randomness" in the generated sequences
are the operations G1 . . . Gm using the current value of T.sub.n. These
operations are desirable because all seed values may not generate
sequences of the same level of randomness, and furnish a minimum
complexity of the mapping irrespective of the chosen seed value.
Where a SHUFFLE function is being implemented to select up to two hundred
fifty-six tracks using three to eight data bits, a specific algorithm that
has been found desirable is as follows.
______________________________________
T.sub.n = SHUFFLE(S.sub.n,Seed)
begin
S.sub.d :=Seed
T.sub.n :=(S.sub.n * 17) AND (2.sup.N.sub.-1)
T.sub.n :=Rotate (T.sub.n,1,N)
T.sub.n :=T.sub.n XOR AAh
for I: = 1 to 3
begin
T.sub.n :=T.sub.n XOR S.sub.d
T.sub.n :=T.sub.n + S.sub.d
T.sub.n :=NOT T.sub.n
T.sub.n :=T.sub.n AND (2.sup.N -1)
T.sub.n :=Rotate (T.sub.n, (S.sub.d AND 03h) +1,N)
S.sub.d :=Rotate(S.sub.d,2,8)
end;
T.sub.n =(T.sub.n AND F8h) OR TableLookUp (T.sub.n AND 07h);
T.sub.n =Rotate (T.sub.n,1,N)
end;
______________________________________
where TableLookUp returns the number 5, 0, 3, 4, 2, 1, 6 or 7 when the
three least significant bits from the number that results from the ANDing
of T.sub.n with 07 is 0, 1, 2, 3, 4, 5, 6, or 7, respectively. The
operation T.sub.n :=T.sub.n AND (2.sup.N -1) maintains the addition and
inversion closed over N bits. The operation T.sub.n :=Rotate(T.sub.n,
(S.sub.d AND 03h)+1, N) uses the value of the two least significant bits
of S.sub.d to shift T.sub.n one to four bits.
An exemplary operation of the SHUFFLE function is illustrated in block
diagram form in FIGS. 2A and 2B, and is begun when the user selects
SHUFFLE mode play in step 20 by pressing shuffle play key 18. Next
processor 16 performs certain initialization activities in step 21 such as
querying CD mechanism 12 to determine the total number of selections
(T.sub.T), pick a Seed and generate a Sequence Number (S.sub.n).
The Sequence Number (S.sub.n) must be scaled to insure it falls within a
range of values that will transform to one of the total number of
selections (T.sub.T). In step 22 a minimum scale factor N is calculated
where 2.sup.N >T.sub.T. Scaling the SHUFFLE function to the power of two
next larger than the total number of selections T.sub.T minimizes
execution time. Selection of the next or previous shuffle selection may be
readily accomplished by repeatedly incrementing or decrementing (as
appropriate) the index and performing the SHUFFLE function until the
result is less than the total number of selections. In this manner the
sequence for T.sub.T -1 total selections will be the same as the sequence
for T.sub.T total selections without the last selection, for the same
scaling and seed values.
Once minimum scale factor N is found, the Selection Number (S.sub.n) is
incremented in step 23 and transformed to a track offset in step 24. For a
single disc, the offset may be simply added to the first selection on the
disc to generate the actual selection number. For a changer, the offset
may be added to the first selection in the magazine, where the selections
for each disc are considered to be sequential to the previous disc (i.e.,
where the first disc has ten selections, the first selection of the next
disc is considered to be the eleventh selection of the magazine). The
sequence for a changer may be varied further by initiating the offset from
a disc other than the first disc in the magazine or changer (e.g., add the
offset to the first selection of the third disc in the magazine).
The skilled artisan will appreciate that the SHUFFLE function may return a
Selection Number (S.sub.n) more than the total number of Selections
(T.sub.T). Because the domains are based upon powers of two, the SHUFFLE
function may be scaled to insure that the likelihood of a result less than
the total number of Selections (T.sub.T) is always greater than 0.5. Under
such circumstances the SHUFFLE function will require execution less than
2.sup.N-1 times to obtain a workable result. Nevertheless, judicious
selection of the nature and sequence of SHUFFLE function operations can
significantly reduce the number of times the SHUFFLE function must be
performed to return a Selection Number (S.sub.n) less than the total
number of Selections (T.sub.T).
Therefore, after the Selection Number (S.sub.n) has been transformed to a
track offset, it is tested in step 27 to see if it is less than the total
number of Selections (T.sub.T). If not, the number of Selections (S.sub.n)
is again incremented, the transformation repeated and the result retested.
If so, as explained hereinabove the track offset is converted to a disc
and track number in step 30, and an appropriate command signal is
transmitted to CD mechanism 12 to go to that disc and track and play and
display the same (steps 31 and 32).
Thereafter, upon completion of play or the user selection of the next track
for play, as determined in step 33, the process is begun again with
incrementing the Selection number (S.sub.n). If, however, play is not
complete and the user selects a prior track for play, as determined in
step 34, the Selection number (S.sub.n) is decremented in step 37,
transformed to a track offset in step 38, and checked in step 39 to see if
the track offset is less than the total number of Selections (T.sub.T), as
performed in steps 24 and 27, respectively.
The skilled artisan will appreciate that the device and method of the
present invention provides a large number of different, repeatable
sequences which include each selection only once before all other
selections are played and are scaled to the total number of tracks
available at the time of play. Moreover, only basic processor instructions
are used to implement the method, allowing efficient, inexpensive
computation without such resource demands as large quantities of memory
and floating point math calculation capabilities.
It will be further understood by the skilled artisan that the device and
method of the present invention is well suited for application with any
device capable of directly accessing individual selections on the playback
media, such as equipment that can play one or more CDs, mini-discs or
DATs.
Inasmuch as the present invention is subject to many variations,
modifications and changes in detail, a number of which have been expressly
stated herein, it is intended that all matter described throughout this
entire specification or shown in the accompanying drawings be interpreted
as illustrative and not in a limiting sense. It should thus be evident
that a device constructed and method performed according to the concept of
the present invention, and reasonably equivalent thereto, will accomplish
the objects of the present invention and otherwise substantially improve
the art of playing CD selections in a varying non-sequential order.
* * * * *
|
|
|
|
|
Description  |
|