TL;DR: The factor oracle, a data structure proposed by Crochemore & al for string matching, is presented and the relation between this structure and the previous models is shown and how it can be adapted for learning musical sequences and generating improvisations in a real-time context.
Abstract: We describe variable markov models we have used for statistical learning of musical sequences, then we present the factor oracle, a data structure proposed by Crochemore & al for string matching. We show the relation between this structure and the previous models and indicate how it can be adapted for learning musical sequences and generating improvisations in a real-time context.
TL;DR: A new notion of weak factor recognition that is the foundation of new data structures and on-line string matching algorithms, and a new automaton built on a string p = p1p2 ... pm that acts like an oracle on the set of factors pi ... pj.
Abstract: We introduce a new notion of weak factor recognition that is the foundation of new data structures and on-line string matching algorithms. We define a new automaton built on a string p = p1p2 ... pm that acts like an oracle on the set of factors pi ... pj. If a string is recognized by this automaton, it may be a factor of p. But, if it is rejected, it is surely not a factor. We call it factor oracle. More precisely, this automaton is acyclic, recognizes at least the factors of p, has m+ 1 states and a linear number of transitions. We give a very simple sequential construction algorithm to build it. Using this automaton, we design an efficient experimental on-line string matching algorithm (we conjecture its optimality in regard to the experimental results) that is really simple to implement. We also extend the factor oracle to predict that a string could be a suffix (i.e. in the set pi ... pm) of p. We obtain the suffix oracle, that enables in some cases a tricky improvement of the previous string matching algorithm.
TL;DR: This method, based on a factor oracle and the computation of the length of repeated suffixes, is easy to implement, fast and gives good compression ratios.
TL;DR: Improvements on previous Factor Oracle-based systems are presented, including automatic model calibration based on measures from Music Information Dynamics, facilities for compositional structuring and automation, and an audio-based query mode which uses the input signal to influence the output of the generative system.
Abstract: A system is described which uses the Audio Oracle algorithm for music analysis and machine improvisation. Some improvements on previous Factor Oracle-based systems are presented, including automatic model calibration based on measures from Music Information Dynamics, facilities for compositional structuring and automation, and an audio-based query mode which uses the input signal to influence the output of the generative system.
TL;DR: Two alternative algorithms for the construction of a factor oracle are given and it is proved the constructed automata to be equivalent to the automata constructed by the algorithms in [ACR01].
Abstract: A factor oracle is a data structure for weak factor recognition It is an automaton built on a string p of length m that is acyclic, recognizes at least all factors of p, has m+1 states which are all final, and has m to 2m-1 transitions In this paper, we give two alternative algorithms for its construction and prove the constructed automata to be equivalent to the automata constructed by the algorithms in [ACR01] Although these new O(m2) algorithms are practically inefficient compared to the O(m) algorithm given in [ACR01], they give more insight into factor oracles Our first algorithm constructs a factor oracle based on the suffixes of p in a way that is more intuitive Some of the crucial properties of factor oracles, which in [ACR01] need several lemmas to be proven, are immediately obvious Another important property however becomes less obvious A second algorithm gives a clear insight in the relationship between the trie or dawg recognizing the factors of p and the factor oracle recognizing a superset thereof We conjecture that an O(m) version of this trie-based algorithm exists