NL1008586C1 - Werkwijze voor automatische aansturing van elektronische muziekinrichtingen door het snel (real time) construeren en doorzoeken van een datastructuur met meerdere niveau's, en systeem om de werkwijze toe te passen. - Google Patents

Werkwijze voor automatische aansturing van elektronische muziekinrichtingen door het snel (real time) construeren en doorzoeken van een datastructuur met meerdere niveau's, en systeem om de werkwijze toe te passen. Download PDF

Info

Publication number
NL1008586C1
NL1008586C1 NL1008586A NL1008586A NL1008586C1 NL 1008586 C1 NL1008586 C1 NL 1008586C1 NL 1008586 A NL1008586 A NL 1008586A NL 1008586 A NL1008586 A NL 1008586A NL 1008586 C1 NL1008586 C1 NL 1008586C1
Authority
NL
Netherlands
Prior art keywords
digital
musical
musical note
sequence
level
Prior art date
Application number
NL1008586A
Other languages
English (en)
Inventor
Pieter Willem Adriaans
Maarten Van Den Dungen
Original Assignee
Adriaans Adza Beheer B V
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 Adriaans Adza Beheer B V filed Critical Adriaans Adza Beheer B V
Priority to NL1008586A priority Critical patent/NL1008586C1/nl
Priority to EP99910862A priority patent/EP1062656B1/en
Priority to PCT/NL1999/000138 priority patent/WO1999046758A1/en
Priority to CA002318048A priority patent/CA2318048A1/en
Priority to DE69902640T priority patent/DE69902640D1/de
Priority to JP2000536063A priority patent/JP2002507009A/ja
Priority to AT99910862T priority patent/ATE223101T1/de
Priority to US09/646,145 priority patent/US6313390B1/en
Priority to AU29628/99A priority patent/AU2962899A/en
Application granted granted Critical
Publication of NL1008586C1 publication Critical patent/NL1008586C1/nl

Links

Classifications

    • 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/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • 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/0008Associated control or indicating means
    • G10H1/0025Automatic or semi-automatic music composition, e.g. producing random music, applying rules from music theory or modifying a musical piece
    • 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/101Music Composition or musical creation; Tools or processes therefor
    • G10H2210/111Automatic composing, i.e. using predefined musical rules
    • 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/101Music Composition or musical creation; Tools or processes therefor
    • G10H2210/145Composing rules, e.g. harmonic or musical rules, for use in automatic composition; Rule generation algorithms therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Toys (AREA)

Description

' l
WERKWIJZE VOOR AUTOMATISCHE AANSTURING VAN ELEKTRONISCHE MUZIEKINRICHTINGEN DOOR HET SNEL (REAL-TIME) CONSTRUEREN
EN DOORZOEKEN VAN EEN DATASTRUCTUUR MET MEERDERE NIVEAU'S, EN SYSTEEM OM DE WERKWIJZE TOE TE PASSEN 5
TERREIN VAN DE UITVINDING
De onderhavige uitvinding heeft in het algemeen betrekking op een op computertechnieken gebaseerde werkwij-10 ze om een datastructuur, aangeduid als 'levelbase', met meerdere niveau's te construeren uit ten minste één reeks digitale codes, waarbij elke code een of meerdere, vooraf bepaalde kenmerken vertegenwoordigt van een muzieknoot, deel van een muzieknoot, of groep muzieknoten, en het 15 doorzoeken van de levelbase volgens vooraf bepaalde criteria, terwijl op basis van de zoekresultaten tegelijkertijd (in 'real-time') digitale codes worden gegenereerd om automatisch elektronische muziekinstrumenten aan te sturen, en de uitvinding heeft eveneens betrekking op een 20 inrichting waarin de werkwijze is toegepast.
ACHTERGROND VAN DE UITVINDING
De geschiedenis leert dat mensen altijd geïnteres-25 seerd zijn geweest in werkwijzen en inrichtingen, mechanisch, elektronisch of anderszins, om het componeren en/of spelen van muziek te automatiseren. Met name sinds de zogenaamde MIDI-standaard (Musical Instrument Digital Interface) in 1983 werd vastgelegd (MIDI 1.0 specificati-30 on, Document No. MIDI-1.0, August 1983, International MIDI association), die een standaard interface definieert via welke synthesizers, drumcomputers, computers etc. met elkaar kunnen worden verbonden, is een aanzienlijke hoe- 1008586 2 veelheid onderzoek gewijd aan het automatisch componeren en/of spelen van muziek.
De meeste van de hieruit resulterende werkwijzen en inrichtingen waren bedoeld om automatisch begeleiding van 5 solo-instrumenten te genereren, om achtergrondmuziek voor films, theater en presentaties te componeren', of om muziek te produceren voor het vermaken van klanten en het creëren van de gewenste sfeer in bijvoorbeeld restaurants of winkels, waarbij deze laatste soort in het algemeen 10 wordt aangeduid als 'liftmuziek' of 'stille muziek'.
Een manier om automatisch muziek te produceren, is het gebruiken van een elektronisch systeem dat zogenaamde synthetische muziek produceert. Deze systemen omvatten in het algemeen een of meerdere elektronische muziekinstru-15 menten of synthesizers en een automatische inrichting die besturingssignalen voor hen produceert, waarbij deze signalen in het geval van de onderhavige uitvinding bestaan uit digitale codereeksen.
Tot de huidige stand der techniek behoren werkwijzen 20 die statistische benaderingen toepassen en bijvoorbeeld Markov-processen gebruiken, waarin elke muzieknoot, deel van een muzieknoot, of groep muzieknoten wordt behandeld als een enkele stochastische toestand in een reeks toestanden. Muziek wordt gegenereerd aan de hand van kans-25 verdelingsfuncties, die in een geheugen zijn opgeslagen, waarbij wordt gestart met een initiële muziekcode-reeks (toestand) waaraan een volgende codereeks wordt toegevoegd die volgens de kansverdelingsfunctie de grootste kans van optreden heeft. Het Markov-proces bevindt zich 30 nu in een nieuwe toestand en (een deel van) de verlengde reeks wordt gebruikt als nieuwe initiële codereeks, zodat het proces eindeloos besturingscodes genereert voor een of meerdere elektronische muziekinrichtingen, die aan de hand daarvan de uit het proces resulterende muziek produ- 1008586 3 ceren. Aanvullende voorwaarden zijn echter noodzakelijk om typische muziekstructuren voort te brengen en acceptabele muziek te genereren. Deze werkwijze vereist echter grote hoeveelheden trainingsmateriaal om de benodigde 5 conditionele kansdichtheidsfuncties te vormen en tevens is synthetische muziek die is gebaseerd op stochastische processen, in het algemeen vrij monotoon.
Andere werkwijzen uit de huidige stand der techniek gebruiken heuristische regels, gebaseerd op muzikale ex-10 pertise, om codereeksen ter aansturing van muziekinstrumenten te produceren. Deze techniek wordt veelvuldig toegepast op het terrein van de kunstmatige intelligentie en wordt bijvoorbeeld beschreven in US Pat. No. 4.926.737, verleend aan Minamitaka. Het document US Pat. No. 15 5.418.323, verleend aan Kohonen, beschrijft een werkwijze voor het aansturen van een elektronische muziekinrich-ting, die geen heuristische regels gebruikt, maar automatisch een verzameling regels vormt, op basis van digitale trainingsreeksen. De door Kohonen beschreven werkwijze is 20 gebaseerd op het vinden van een stelsel 'grammaticale' regels in een reeks codes die muzikale informatie vertegenwoordigen. Kohonen gebruikt zogenaamde DEC (Dynamically Expanding Context) grammatica's, die oorspronkelijk werden ontwikkeld voor on-line spraakherkenning. Mense-25 lijke spraak bestaat echter uit zinnen, die grammaticaal duidelijk afgebakende hoeveelheden informatie van beperkte lengte vormen, terwijl muzikale 'zinnen' structuren van onbepaalde lengte kunnen zijn (bijvoorbeeld lange Jazz-improvisaties). Vanwege dit verschil zal het stelsel 30 regels veelvuldig moeten worden bijgesteld tijdens de trainingsfase.
Het construeren van het regelstelsel uit trainingsmateriaal kan hetzij statisch zijn, te weten gebaseerd op de invoer en (batch)verwerking van bestaande (vooraf 1008586 k 4 vastgelegde) codereeksen die muzikale informatie vertegenwoordigen, hetzij dynamisch, gebaseerd op real-time toevoer van codes door een elektronische muziekinrich-ting, bijvoorbeeld een elektronisch muziekinstrument. De 5 Kohonen-werkwijze is redelijk efficiënt in het geval van invoer en (batch)verwerking van bestaande trainingsreek-sen, maar is, gegeven de huidige prestaties van PC hardware en software, inefficiënt bij gebruik voor real-time improvisaties door de noodzakelijke veelvuldige bijstel-10 ling van het regelstelsel.
De onderhavige uitvinding vermijdt of verlicht bepaalde problemen en nadelen met betrekking tot de huidige stand der techniek op dit terrein, waarvan sommige hierboven zijn genoemd.
15
SAMENVATTING VAN DE UITVINDING
Het doel van de onderhavige uitvinding is het verschaffen van een werkwijze voor het snel (real-time) op-20 slaan en ophalen van digitale codereeksen, die een of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten vertegenwoordigen, en een inrichting waarin genoemde werkwijze is toegepast, teneinde automatisch elektronische muziekin-25 richtingen aan te sturen en daarbij bepaalde problemen met betrekking tot de huidige stand der techniek op dit terrein te vermijden of te verlichten.
De bovengenoemde werkwijze volgens de uitvinding omvat ten minste de volgende stappen: 30 - opslaan van ten minste één traïningsreeks, be staande uit één of meerdere digitale codes, die elk één of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten vertegenwoordigen, in een datastructuur aangeduid als 1008586 5 'levelbase', met meerdere niveau's, die bestaat uit informatie-objecten die op basis van vooraf bepaalde criteria in de levelbase worden gerangschikt/ waarbij elk afzonderlijk informatie-object hetzij bestaat uit een 5 combinatie van één van de digitale codes van genoemde trainingsreeks en zogenaamde gerelateerde data, waarbij deze gerelateerde data in de basisuitvoering van de werkwijze volgens de uitvinding de volgende code in de reeks is, hetzij bestaat uit een combinatie van één van de di-10 gitale codes van genoemde trainingsreeks en een verwijzing naar een sub-levelbase bestaande uit informatie-objecten die betrekking hebben op volgende codes van de huidige digitale codereeks, en daarbij een dieper gelegen niveau van de datastructuur vormen, waarbij het genoemde 15 opslaan van de digitale trainingsreeks kan worden uitgevoerd in real-time, bijvoorbeeld tijdens het genereren van de trainingsreeks door een elektronische muziekin-richting; 20 - automatisch genereren van een digitale uitgangs reeks, bestaande uit digitale codes, waarbij elke afzonderlijke code één of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten vertegenwoordigt, en waarbij het genereren 25 van genoemde uitgangsreeks ten minste de volgende stappen omvat: 1008586 6 het bepalen van de zoek- en vergelijkingscrite-ria volgens welke de levelbase zal worden doorzocht; het genereren van een digitale uitgangsreeks 5 door het uitvoeren van sequentiële nearest- neighbour-vergelijking van elementen van een in-gangsreeks bestaande uit digitale codes, waarvan elke afzonderlijke code één of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een 10 muzieknoot, of groep muzieknoten vertegenwoordigt, met de objecten in de levelbase, volgens genoemde, vooraf bepaalde zoek- en vergelijkingscriteria; - het omzetten van genoemde, automatisch gegenereer-15 de digitale uitgangsreeks, in digitale besturingssigna- len, geschikt voor het aansturen van muziekinrichtingen; - het automatisch aansturen van de muziekinrichtingen met genoemde digitale besturingssignalen.
20
Volgens een andere uitvoering wordt de werkwijze volgens de onderhavige uitvinding gekenmerkt door het feit dat afzonderlijke kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten, bijvoorbeeld 25 harmonische of metrische informatie, worden opgeslagen in afzonderlijke levelbases, en de digitale uitgangsreeks wordt gegenereerd door deze levelbases tegelijkertijd te doorzoeken, volgens vooraf bepaalde zoekcriteria, wat bijvoorbeeld superpositie van verschillende muziekstijlen 30 en het arrangeren van muziekcomposities mogelijk maakt.
Verder kan de werkwijze volgens de uitvinding worden gekarakteriseerd door het feit dat de trainingsreeksen voorafgaande aan de opslag worden gegroepeerd op basis van hun gerelateerde data, volgens vooraf bepaalde crite- 1008586 7 ria, wat aldus tijdens de opslagfase het construeren van een datastructuur bestaande uit levelbases mogelijk maakt, waardoor het mogelijk wordt om voorafgaande aan de zoekfase een levelbase te pre-selecteren op basis van de 5 gewenste kenmerken van de gerelateerde data, waarbij het aantal zoekoperaties dat noodzakelijk is om de gewenste digitale uitgangsreeks te genereren, gereduceerd wordt.
In nog een andere uitvoering wordt de werkwijze volgens de uitvinding gekenmerkt door het feit dat, geduren-10 de de opslag van digitale trainingsreeksen in een levelbase, twee gelijke informatie-objecten, die dezelfde gerelateerde data hebben, niet worden geëxpandeerd totdat een derde object dient te worden toegevoegd, dat gelijk is aan genoemde twee andere objecten, maar niet dezelfde 15 gerelateerde data heeft, waarbij aldus het aantal bewerkingen en de hoeveelheid geheugen die noodzakelijk zijn om de levelbase bij te werken wanneer nieuwe trainingsreeksen dienen te worden opgeslagen, worden gereduceerd.
Een werkwijze volgens de onderhavige uitvinding kan 20 verder worden gekarakteriseerd door gebruik van statistische informatie in aanvulling op andere criteria, voor het doorzoeken van de levelbase(s), bijvoorbeeld om uit een verzameling geschikte uitgangsreeksen een uitgangsreeks te selecteren met de grootste kans van optreden.
25 Anders dan vele werkwijzen volgens de stand der techniek op dit terrein, heeft de werkwijze volgens de onderhavige uitvinding geen grote hoeveelheden trainings-materiaal nodig om acceptabele muziek te produceren, en maakt zijn grote efficiëntie het mogelijk om in real-time 30 te functioneren, gegeven de huidige prestaties van PC hardware en software.
Tevens heeft de onderhavige uitvinding betrekking op een inrichting waarin de hierboven beschreven werkwijze volgens de uitvinding is toegepast en waarbij besturings- 1008586 8 signalen die worden uitgewisseld tussen de verschillende delen van de inrichting, overeenstemmen met de internationale MIDI (Musical Instrument Digital Interface) standaard.
5 BEKNOPTE BESCHRIJVING VAN DE FIGUREN
De uitvinding zal nu in meer detail worden beschreven aan de hand van de bijgevoegde figuren, waarbij:
Figuur 1 (a) een voorbeeld is van een trainingsreeks, 10 waarbij verschillende karakters verschillende digitale codes in de reeks vertegenwoordigen;
Figuur 1(b) schematisch de levelbase-structuur weergeeft, die resulteert uit het opslaan van de digitale voorbeeld-codereeks van figuur 1(a), volgens de werkwijze 15 van de onderhavige uitvinding. De figuur is voor de duidelijkheid 90° tegen de klok in geroteerd, zodat de verschillende niveau's van de levelbase in de figuur verticaal zijn afgebeeld;
Figuur 2 een stroomdiagram is, dat schematisch het 20 opslaan in de levelbase-structuur van een element (code) van een digitale codereeks volgens de werkwijze van de uitvinding, weergeeft;
Figuur 3 een stroomdiagram is, dat schematisch het doorzoeken van de levelbase-structuur volgens de werkwij-25 ze van de uitvinding weergeeft, teneinde een reeks bestu-ringscodes te genereren;
Figuur 4 een blokdiagram toont van een inrichting waarin de werkwijze volgens de uitvinding is toegepast.
30 1008586 9
BESCHRIJVING VAN DE UITVINDING
In de werkwijze van de uitvinding vertegenwoordigen codereeksen één of meerdere vooraf bepaalde kenmerken van 5 een muzieknoot, deel van een muzieknoot, of groep of muzieknoten. Deze kenmerken zijn bijvoorbeeld de toon, de snelheid van de noot/noten, en/of de duur van de noot/noten.
De werkwijze volgens de uitvinding omvat een trai-10 ningsfase en een zoek- en ophaalfase, gevolgd door het eigenlijke genereren van de gewenste digitale code-reeks, geschikt om muziekinrichtingen aan te sturen. Volgens de werkwijze van de uitvinding wordt tijdens de trainingsfa-se ten minste één trainingsreeks opgeslagen in een data-15 structuur met meerdere niveau's, aangeduid als levelbase, die bestaat uit informatie-objecten die op opeenvolgende, diepere niveau's worden gerangschikt, volgens vooraf bepaalde criteria. Deze vooraf gedefinieerde criteria zijn vergelijkingscriteria om te bepalen waar opeenvolgende 20 elementen van een trainingsreeks dienen te worden geplaatst op een bepaald niveau van de levelbase-structuur. Hieronder wordt een beknopte beschrijving gegeven van enkele van de vergelijkingsalgoritmen die in de werkwijze volgens de uitvinding gebruikt kunnen worden.
25
Wanneer men twee reeksen El en E2 als volgt definieert:
El ~ Ellr . . ., Eln en Ε2 = Ε2^, ...,E2n (1) met bijvoorbeeld 30 Ε1± = Kanaalli\Nootli\Snelheidli\Lengteli (2a) E2± = Kanaal2i\Noot2i\Snelheid2i\Lengte2i (2b) met lsi^n, dan worden de reeksen El en E2 als zijnde gelijk aan elkaar beschouwd, wanneer is voldaan aan de volgende criteria: 1008586 10
Toonhoogte-vergelijking:
Nootli = Noot2i voor alle i (3) met goede resultaten in het geval van melodieën met een sterke melodische structuur en een eenvoudige tijdstruc-5 tuur (bijvoorbeeld Bach).
Relatieve toonhoogte-vergelij king:
Noot1^ = Noot2i + F voor alle i en met FeN (4) 10 n procent lengte-vergelijking: (|Lengteli-Lengte2i|/max(Lengteli,Lengte2i)*100 > n (5) voor alle i volgens welke de lengten van de noten slechts in bepaalde mate van elkaar mogen afwijken, bijvoorbeeld n=70% is een : 15 goede waarde,
Elastische lengte-vergelijking:
Eli+1 = Kanaalli+1\Nootli+1\Snelheidli+1\Lengteli+1 (6) E2i+1 = Kanaal2i+1\Noot2i+1\Snelheid2i+1\Lengte2i+1 (7)
20 en |Lengteli-Lengte2i| > |Lengteli+1-Lengte2i+11 * F (8) voor alle i en met FeN
waarbij de mate van variatie in relatieve lengte tussen opeenvolgende noten in een melodie wordt beperkt.
Hier wordt opgemerkt dat de uitvinding niet beperkt is 25 tot de bovengenoemde vergelijkingsalgoritmen, maar dat elke geschikte vergelijkingstechniek kan worden gebruikt.
: Tijdens de trainingsfase van de werkwijze volgens de uitvinding wordt ten minste één trainingsreeks opgeslagen 30 in de bovengenoemde levelbase-structuur, door een verge-lijkingsalgoritme te gebruiken zoals de eerder genoemde algoritmen. Het construeren van de levelbase uit trai-ningsmateriaal kan hetzij statisch zijn, te weten gebaseerd op de invoer en (batch)verwerking van bestaande Ί 1008586 11 (vooraf vastgelegde) codereeksen die muzikale informatie vertegenwoordigen, hetzij dynamisch, gebaseerd op realtime toevoer van codes door een elektronische muziekin-richting, bijvoorbeeld een elektronisch muziekinstrument.
5 Hierna wordt het construeren van de levelbase besproken.
De werkwijze volgens de uitvinding gebruikt een zogenaamde levelbase om de code-elementen van digitale trainingsreeksen zodanig te organiseren en op te slaan, dat ze zeer snel kunnen worden gevonden en opgehaald. 10 Hier wordt echter opgemerkt dat een levelbase-structuur slechts een algemene wijze is om een datastructuur met meerdere niveau's te beschrijven. De eigenlijke implementatie kan bijvoorbeeld een balanced tree, hash tabel of andere datastructuur gebruiken. Een reeks kan leeg zijn 15 of bestaan uit een eerste element (aangeduid als reeks.eerste) en een andere reeks (aangeduid als reeks.rest). De levelbase is een datastructuur bestaande uit meerdere niveau's die informatie-objecten bevatten, die weer bestaan uit vier variabelen: een wortel, een 20 eerste element van de reeks, de rest-elementen van de reeks, en gerelateerde data, waarbij sommige van de genoemde variabelen pointer-variabelen zijn. De wortel is hetzij een pointer naar een verbonden informatie-object op een voorafgaand niveau, hetzij LEEG, wanneer een der-25 gelijke verbinding niet aanwezig is, het eerste element van de reeks is bijvoorbeeld de eerste digitale code van een trainingsreeks, de rest-elementen-variabele correspondeert met de rest van de reeks na het eerste element, en gerelateerde data is data die in het algemeen betrek-30 king heeft op de reeks, maar waarvan in deze beschrijving zal worden aangenomen dat zij verwijst naar het volgende element in de reeks, daar de onderhavige uitvinding niet is bedoeld om reeksen te labelen, maar om een vervolg op een reeks te vinden. Het aantal informatie-objecten op 1008586 12 het eerste niveau van de levelbase op een bepaald tijdstip, is gelijk aan het aantal verschillende code-elemen-ten van de trainingsreeks dat tot aan dat tijdstip in de levelbase is opgeslagen. Elk informatie-object kan op 5 zichzelf de wortel vormen van een andere levelbase, die bestaat uit informatie-objecten die betrekking hebben op volgende objecten op dieper gelegen niveau's. Figuur 1(a) toont als voorbeeld een codereeks ABCDBCEBCF, waarin verschillende karakters verschillende digitale code-elemen-10 ten in een digitale trainingsreeks vertegenwoordigen. Figuur 1 (b) is een schematische weergave van de resulte-I rende levelbase-structuur, wanneer de voorbeeldreeks van i figuur 1(a) volgens de werkwijze van de uitvinding in de levelbase is opgeslagen. Wanneer de voorbeeldreeks van 15 figuur 1 (a) wordt gebruikt als trainingsreeks, worden de eerste vier karakters A, B, C en D in vier informatie-objecten op het eerste niveau van de levelbase-structuur geplaatst. De wortel van deze objecten is LEEG, de gerelateerde data van A verwijst naar B, de gerelateerde data 20 van het B-object verwijst naar C, de gerelateerde data van C verwijst naar D, en de gerelateerde data van D is het vijfde element van de trainingsreeks, te weten B. Dit is de tweede keer dat B voorkomt in de reeks en het is reeds bekend dat B kan worden gevolgd door een C. Nu 25 wordt het wortel-element van het informatie-object dat B bevat, de wortel van een nieuwe levelbase-datastructuur op een dieper gelegen niveau en de verwijzing naar de gerelateerde data wordt verwijderd. In deze nieuw gevormde sub-levelbase worden zowel het aan het informatie-ob-30 ject dat nu wordt bijgewerkt (B-object) voorafgaande element (de eerste A), en zijn gerelateerde data (de derde J C), als het aan de tweede B voorafgaande element D en zijn gerelateerde data C, ingevoegd.
1008586 13
Na invoeging van de tweede C wordt het wortel-ele-ment van het informatie-object opnieuw geïnitialiseerd met een sub-levelbase datastructuur, en vormt aldus een volgend/dieper niveau van de levelbase.
5 In deze nieuw gevormde levelbase worden zowel het voorafgaande element B van het informatie-object dat nu wordt bijgewerkt (C-object), en zijn gerelateerde data D, als het aan het nieuw toegevoegde element (tweede C) voorafgaande element B en zijn gerelateerde data E, 10 ingevoegd. Nu zijn echter beide ingevoegde elementen B's, dus dient opnieuw het enige informatie-object tot nu toe op dit volgende niveau, te worden geïnitialiseerd met een sub-levelbase structuur om uitbreiding naar een dieper gelegen niveau mogelijk te maken. Op dit derde niveau 15 worden zowel de voorganger van de eerste B, te weten A, en diens gerelateerde data D, als de voorganger van de tweede B, te weten D, en diens gerelateerde data E, ingevoegd. Dit proces zet zich voort totdat de gehele reeks is opgeslagen in de levelbase, die in dit voorbeeld drie 20 niveau's heeft. De eerder beschreven vergelijkingsalgo-ritmen worden gebruikt om elk nieuw element van de reeks te vergelijken met elementen die zich reeds in het huidige niveau van de levelbase bevinden, om te verifiëren of en waar in de levelbase zich een overeenkomstig element 25 bevindt. Wanneer de reeks volledig is ingevoegd, omvat de levelbase-structuur vier sub-levelbases en is drie niveau' s diep. In figuur 1(b) verwijzen de getallen naar de positie van de karakters in de voorbeeldreeks van figuur 1 (a) . Het aantal trainingsreeksen en de lengte van de 30 reeksen die kunnen worden opgeslagen in de levelbases wordt slechts beperkt door beschikbare verwerkingstijd en opslagruimte.
Het stroomdiagram van figuur 2 is een schematische weergave van de trainingsfase van de werkwijze volgens de 1008586 14
uitvinding, waarbij een levelbase-structuur wordt geconstrueerd door het recursief invoegen van gerelateerde data met het volgende element van de reeks, in een gevonden of nieuw gecreëerd informatie-object op een volgend 5 niveau van de levelbase. In figuur 2 zijn de beschrijvingen vermeld in pseudo-taal. NIEUWE ZOEKSTRUCT geeft de start van een nieuwe levelbase aan. De functie TOEVOEGEN wordt gebruikt voor het invoegen van een nieuw informatie-object op hetzelfde niveau, terwijl INVOEGEN
10 wordt gebruikt voor het recursief invoegen van gerela teerde data met het volgende element van de reeks, op een volgend niveau in een gevonden of nieuw gecreëerd object. VIND is een functie die bedoeld is om in de levelbase-structuur data op te halen, die voldoet aan een bepaalde 15 zoekterm. Als zoekterm worden zowel een lege reeks, als het eerste element van een reeks gebruikt. De functie INVOEGEN gebruikt een wortel naar een levelbase, een reeks, en gerelateerde data als parameters. Voor elk element van een trainingsreeks wordt het stroomdiagram door-20 lopen van start tot einde. Hierna zal de functie van de verschillende blokken in het diagram van figuur 2 worden verklaard.
Blokken 201 en 202: de parameter Wortel is feitelijk een verwijzing naar de pointer van een Wortel, die kan 25 worden gewijzigd. Dus kan in het geval dat de parameter Wortel LEEG is, een nieuwe sub-levelbase structuur worden gecreëerd en ingevoegd in de variabele die diende als pointer van de wortel.
Blokken 203 en 204: wanneer de reeks leeg is, wordt 30 een poging gedaan om een lege reeks te vinden in de wortel van de levelbase.
Blokken 205, 206, en 207: wanneer geen lege reeks is gevonden,. wordt een nieuw object gecreëerd: object.wortel=LEEG; ! 1008586 ! 15 obj ect.reeks=reeks; object.gerelateerde data=gerelateerde data;
Dit object wordt dan ingevoegd in de wortel van de levelbase-structuur, en de functie eindigt. Wanneer een 5 lege reeks wordt gevonden, moet de ingevoegde reeks overeenkomen met een eerder ingevoegde reeks. In normale gevallen zou dit niet voorkomen, maar wanneer men dit toestaat (door dezelfde reeks twee keer in te voegen) zou een lijst met gerelateerde data kunnen worden bij gehouden 10 in de gerelateerde-data-variabele van het object.
Blok 208: wanneer de reeks niet leeg is, wordt een poging gedaan om in de wortel van de levelbase een object te vinden dat overeenkomt met het eerste element van de reeks.
15 Blok 209: wanneer het zoeken naar een overeenkomstig object niet succesvol is, wordt een nieuw informatie-ob-ject toegevoegd aan de levelbase-structuur, op overeenkomstige wijze als is beschreven in blok 206, en wordt de functie beëindigd.
20 Blok 210: als een object wordt gevonden, dat overeen komt met het eerste element van de reeks, wordt een test gedaan om uit te vinden of de wortel van dit gevonden object LEEG is of niet, dat wil zeggen of er reeds een volgende sub-levelbase structuur met het object verbonden 25 is, en geen gerelateerde data, of niet, waarbij er in laatstgenoemd geval wel gerelateerde data aanwezig is.
Blok 211: als de wortel van het object LEEG is, wordt een nieuwe levelbase-structuur gecreëerd in de wortel van het object en worden de objectvariabelen (wor-30 tel.object.wortel, object.reeks.rest, gerelateerde data) ingevoegd in de wortel van de nieuwe sub-levelbase structuur.
Blok 212: de rest van de reeks en de gerelateerde data worden ingevoegd in de nieuwe sub-levelbase struc- 1008586 16 tuur en het hele proces begint opnieuw bij 201, maar nu een niveau dieper.
Na de trainingsfase die één of meerdere levelbase-structuren oplevert, die het snel en efficiënt zoeken en 5 ophalen van data mogelijk maken, volgt de eigenlijke zoek- en ophaalfase van de werkwijze volgens de onderhavige uitvinding. In deze fase gebruikt de werkwijze volgens de uitvinding eveneens vergelijkingsalgoritmen zoals eerder beschreven, maar is niet beperkt tot de in dit 10 document beschreven algoritmen. Bovendien kunnen de ver-gelijkingstechnieken die respectievelijk tijdens de trainingsfase en de zoek- en ophaalfase worden gebruikt, van elkaar verschillen. Het stroomdiagram van figuur 3 is een schematische weergave van de zoek- en ophaalfase.
15 Het zoeken wordt begonnen met een invoerreeks, die willekeurig kan zijn. Wanneer echter de invoerreeks in real-time wordt gegenereerd door bijvoorbeeld een elektronisch muziekinstrument, wordt superpositie van bijvoorbeeld verschillende muziekstijlen mogelijk. Men kan 20 bijvoorbeeld een invoerreeks met een rock-and-roll stijl gebruiken en een levelbase die is getraind met reeksen met een middeleeuwse muziekstijl. Met betrekking tot de vergelijkingsstrategie zijn er allerlei variaties mogelijk. Als men bijvoorbeeld niet is geïnteresseerd in zo 25 goed mogelijk overeenkomende alternatieven, maar in goede, doch gevarieerde uitbreidingen van een bestaande reeks, dan kan men gemakkelijk zorgen voor meer variëteit in de zoekresultaten door de zoekdiepte te beperken.
In figuur worden items die overeenkomen met items in 30 figuur 2, met dezelfde pseudo-taal-referenties aangeduid. Elementen van de invoerreeks worden een voor een vergele- ! ken met de informatie-objecten per niveau in de gewenste levelbase. Het resultaat van een zoekoperatie is hetzij (LEEG) of bestaat uit gerelateerde data van een object of j 1008586 i r 11 gerelateerde data van een verzameling levelbase-objecten. Hierna wordt de functie van de verschillende blokken in figuur 3 verklaard.
Blok 301: wanneer de wortelparameter LEEG is, levert 5 de zoekoperatie LEEG op.
Blok 302: wanneer de reeksparameter leeg is, dat wil zeggen wanneer er geen elementen van de invoerreeks (meer) zijn om te worden vergeleken met de objecten in de levelbase-structuur, worden alle objecten op het huidige 10 niveau en alle subniveau's beschouwd als goede resultaten van de zoekoperatie en wordt de gerelateerde data van de betreffende objecten op het huidige niveau en alle subniveau' s verzameld in een lijst die als resultaat wordt gepresenteerd.
15 Blok 303: wanneer de reeks niet leeg is, wordt ge tracht een overeenkomstig element voor het eerste element van de reeks te vinden op het huidige niveau van de le-velbase. De functie VIND doorzoekt slechts objecten op het huidige niveau, dus niet de eventueel aanwezige sub-20 levelbases. Wanneer de functie VIND succesvol is, levert dit als resultaat het object op dat overeenkomt met het eerste element van de reeks.
Blok 304: wanneer geen overeenkomstig object wordt gevonden, wordt alle gerelateerde data verzameld en afge-25 leverd als resultaat, zoals beschreven voor blok 302. Wanneer dit gebeurt, betekent het dat er geen volgend, exact overeenkomend object in de levelbase aanwezig is en dat er dus meerdere mogelijke vervolgreeksen in de levelbase aanwezig zijn.
30 Blok 305: als een overeenkomstig object werd gevon den tijdens de stap van blok 303, wordt onderzocht of de wortelparameter van het object (die kan verwijzen naar een volgend niveau van de levelbase) LEEG is of niet.
1008586 18
Blok 306: wanneer de wortelparameter van het object LEEG is, levert de functie de gerelateerde data van de wortel op als resultaat.
Blok 307: wanneer de wortelparameter van het object 5 niet LEEG is, wordt op recursieve wijze de wortel onderzocht met het volgende element van de huidige reeks als parameter en begint het gehele proces opnieuw, maar nu een niveau dieper.
Vanzelfsprekend kunnen allerlei optimalisaties voor 10 de zoekfase worden geïmplementeerd, zoals bijvoorbeeld het gebruiken van een interne iterator om een oplossing uit een verzameling geschikte oplossingen te kiezen, volgens vooraf vastgelegde criteria, of het willekeurig selecteren van een oplossing.
15 Volgens een andere uitvoering van de werkwijze vol gens de onderhavige uitvinding, worden verschillende kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten, zoals bijvoorbeeld harmonische informatie of informatie met betrekking tot metrische stijl, 20 in aparte levelbases opgeslagen, en wordt de digitale uitgangsreeks gegenereerd door deze levelbases gelijktijdig te doorzoeken, wat bijvoorbeeld superpositie van muzikale kenmerken of het arrangeren van muziekstukken mogelijk maakt.
25 Bovendien is het, wanneer door bepaalde externe om standigheden niet alle resultaten (gerelateerde data die overeenkomt met de invoerreeks) geschikt zijn, mogelijk om de geschikte gerelateerde data naderhand (of zelfs J tijdens het zoeken) te selecteren. Dit heeft echter het 30 nadeel dat het kan voorkomen dat een geselecteerd zoekresultaat geen elementen heeft, terwijl een meer oppervlakkige zoekoperatie wel geschikte resultaten zou hebben opgeleverd. Een voor de hand liggende oplossing hiervoor is om minder uitgebreid en minder diep te zoeken, totdat 1008586 19 geschikte resultaten worden gevonden. Dit is echter kostbaar, wanneer men kijkt naar het benodigde aantal compu-terbewerkingen. Een meer efficiënte oplossing, die het onderwerp van conclusie 3 vormt, is om een boomstructuur 5 van levelbases op te zetten, waarbij elke levelbase een wortel heeft, en reeksen bevat die onderling voldoende gerelateerd zijn volgens bepaalde criteria. Dit maakt het mogelijk om voorafgaande aan de zoekfase een levelbase te --- prë^selecteren op basis van gerelateerde data, en zo het 10 aantal zoekoperaties, dat noodzakelijk is om de gewenste, geschikte uitgangsreeks te genereren, te reduceren.
In een andere uitvoering van de uitvinding worden twee gelijke levelbase-objecten, die dezelfde gerelateerde data hebben, niet geëxpandeerd maar opgeslagen in het 15 object, in de vorm een lijst met objecten die de gerelateerde data en de reeks.rest-data bevat. De reeks.rest-data is noodzakelijk omdat, wanneer in een later stadium een ander object wordt toegevoegd dat gelijk is, maar niet dezelfde gerelateerde data heeft, alle drie de reek-20 sen dienen te worden geëxpandeerd. Hierdoor kan het aantal bewerkingen en de hoeveelheid geheugen die nodig is om de levelbase bij te werken wanneer nieuwe trainings-reeksen dienen te worden toegevoegd, worden gereduceerd.
Wanneer de datastructuur, waarin informatie-objecten 25 op verschillende niveau's worden opgeslagen, geschikt is, is het mogelijk om statistische informatie toe te voegen. In dat geval is het mogelijk om een selectie te maken op basis van de beschikbare statistische informatie, wanneer meerdere geschikte oplossingen worden gevonden. Men zou 30 de resulterende reeks kunnen selecteren die de grootste kans van optreden heeft, de kleinste kans van optreden heeft, of zelfs een element willekeurig kunnen kiezen. In het laatste geval vermijdt men de (aanzienlijke) hoeveelheid extra computerbewerkingen die noodzakelijk is om 1 008586 20 alle objecten in een lijst te verzamelen. Dit laatste geval is interessant wanneer men is geïnteresseerd in slechts één geschikte oplossing.
De werkwijze volgend de uitvinding is met name be-5 doeld voor het produceren van reeksen digitale codes die I geschikt zijn voor het aansturen van elektronische mu ziekinstrumenten. De geproduceerde reeksen besturingsco-des kunnen worden omgezet in besturingssignalen die voldoen aan de MIDI (Musical Instrument Digital Interface) 10 standaard (MIDI 1.0 specification, Document No. MIDI-1.0, August 1983, International MIDI association), maar is niet beperkt tot deze standaard. Figuur 4 toont een voorbeeld van een inrichting volgens conclusie 6, waarin de werkwijze volgens de uitvinding is toegepast. De digitale 15 codereeksen en besturingssignalen in deze inrichting voldoen aan de MIDI-standaard.
De hierboven beschreven werkwijze en inrichting volgens de uitvinding hebben vele toepassingen, met name wanneer real-time live muziekimprovisatie is gewenst, 20 bijvoorbeeld bij live muziekuitvoeringen. Ze vormen eveneens een efficiënt componeergereedschap voor professionele componisten en kunnen dienst doen als een toevoeging : aan bestaande MIDI-inrichtingen voor amateurmusici.
Het kan verder wiskundig worden aangetoond dat, . wan-25 neer dezelfde digitale codereeks van n symbolen wordt geanalyseerd, en zowel een levelbase volgens de uitvin-ding, als een DEC-grammatica volgens Kohonen (zie inleiding) worden geconstrueerd, de levelbase veel betere prestaties levert dan de DEC-techniek. Wanneer de level-= 30 base volgens de uitvinding de structuur van een balanced tree heeft, is de wiskundige complexiteit van de DEC-techniek evenredig met *sn(n+l), terwijl de complexiteit van de levelbase-balanced tree techniek volgens de uitvinding slechts n.log(n) is. Aldus vermijdt of verlicht -m 1 1008586 21 de uitvinding op vele wijzen bepaalde problemen met betrekking tot de huidige stand der techniek op dit terrein.
1008586

Claims (5)

1. Een werkwijze voor het snel (real-time) opslaan en ophalen van digitale codereeksen, die een of meerdere, 5 vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten vertegenwoordigen, met het doel om automatisch elektronische muziekinrich-tingen aan te sturen, waarbij genoemde werkwijze ten minste de volgende stappen 10 omvat: - opslaan van ten minste één trainingsreeks, bestaande uit één of meerdere digitale codes, die elk één of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten 15 vertegenwoordigen, in een datastructuur aangeduid als 'levelbase', met meerdere niveau's, die bestaat uit informatie-objecten die op basis van vooraf bepaalde criteria in de levelbase worden gerangschikt, waarbij elk afzonderlijk informatie-object hetzij bestaat uit een 20 combinatie van één van de digitale codes van genoemde trainingsreeks en zogenaamde gerelateerde data, waarbij deze gerelateerde data in de basisuitvoering van de werkwijze volgens de uitvinding de volgende code in de reeks is, hetzij bestaat uit een combinatie van één ,van de di-25 gitale codes van genoemde trainingsreeks en een verwijzing naar een sub-levelbase bestaande uit informatie-objecten die betrekking hebben op volgende codes van de huidige digitale codereeks en daarbij een dieper gelegen niveau van de datastructuur vormen, waarbij het genoemde 30 opslaan van de digitale trainingsreeks kan worden uitgevoerd in real-time, bijvoorbeeld tijdens het genereren van de trainingsreeks door een elektronische muziekin-richting; i 1008586 - automatisch genereren van een digitale uitgangsreeks, bestaande uit digitale codes, waarbij elke afzonderlijke code één of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep 5 muzieknoten vertegenwoordigt, en ten minste de volgende stappen omvat: het bepalen van de zoek- en vergelijkingscrite-ria volgens welke de levelbase zal worden doorzocht; _ 10 het genereren van een digitale uitgangsreeks door het uitvoeren van sequentiële nearest-neigh-bour-vergelijking van elementen van een ingangsreeks bestaande uit digitale codes, waarvan elke afzonderlijke code één of meerdere, vooraf bepaalde kenm^r-15 ken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten vertegenwoordigt, met de objecten in de levelbase, volgens genoemde, vooraf bepaalde zoek- en vergelijkingscriteria; 20. het omzetten van genoemde, automatisch gegenereer de digitale uitgangsreeks, in digitale besturingssigna-len, geschikt voor het aansturen van muziekinrichtingen; - het automatisch aansturen van de muziekinrichtin-25 gen met genoemde digitale besturingssignalen.
2. Een werkwijze voor het snel (real-time) opslaan en ophalen van digitale codereeksen, die een of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van 30 een muzieknoot, of groep muzieknoten vertegenwoordigen, met het doel om automatisch elektronische muziekinrichtingen aan te sturen, volgens conclusie 1, met het kenmerk dat afzonderlijke kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten, 1008586 » bijvoorbeeld harmonische of metrische informatie, worden opgeslagen in afzonderlijke levelbases, en de digitale uitgangsreeks wordt gegenereerd door deze levelbases tegelijkertijd te doorzoeken, volgens vooraf bepaalde zoek-5 criteria, wat bijvoorbeeld superpositie van verschillende muziekstijlen en het arrangeren van muziekcomposities mogelijk maakt.
3. Een werkwijze voor het snel (real-time) opslaan 10 en ophalen van digitale codereeksen, die een of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten vertegenwoordigen, met het doel om automatisch elektronische muziekinrich-tingen aan te sturen, volgens conclusie 1 of 2, 15 met het kenmerk dat de trainingsreeksen voorafgaande aan de opslag worden gegroepeerd op basis van hun gerelateerde data, volgens vooraf bepaalde criteria, wat aldus tijdens de opslagfase het construeren van een datastructuur bestaande uit levelbases mogelijk maakt, waardoor het 20 mogelijk wordt om voorafgaande aan de zoekfase een level-base te pre-selecteren op basis van de gewenste karakteristieken van de gerelateerde data, waarbij het aantal zoekoperaties dat noodzakelijk is om de gewenste digitale s uitgangsreeks te genereren, gereduceerd wordt. 25
4. Een werkwijze voor het snel (real-time) opslaan en ophalen van digitale codereeksen, die een of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten vertegenwoordigen, 30 met het doel om automatisch elektronische muziekinrich-tingen aan te sturen, volgens één van de conclusies 1 tot en met 3, met het kenmerk dat gedurende de opslag van digitale trainingsreeksen in een levelbase, twee gelijke informa- 1008586 » tie-objecten, die dezelfde gerelateerde data hebben, niet worden geëxpandeerd totdat een derde object dient te worden toegevoegd, dat gelijk is aan genoemde twee andere objecten, maar niet dezelfde gerelateerde data heeft, 5 waarbij aldus het aantal bewerkingen en de hoeveelheid geheugen die noodzakelijk zijn om de levelbase bij te werken wanneer nieuwe trainingsreeksen dienen te worden opgeslagen, worden gereduceerd.
5. Een werkwijze voor het snel (real-time) opslaan en ophalen van digitale codereeksen, die een of meerdere, vooraf bepaalde kenmerken van een muzieknoot, deel van een muzieknoot, of groep muzieknoten vertegenwoordigen, met het doel om automatisch elektronische muziekinrich-15 tingen aan te sturen, volgens één van de conclusies 1 tot en met 4, met het kenmerk dat in aanvulling op andere criteria, statistische informatie wordt gebruikt voor het doorzoeken van de levelbase(s), bijvoorbeeld om uit een verzame-20 ling geschikte uitgangsreeksen een uitgangsreeks te selecteren met de grootste kans van optreden.
5. Een inrichting voor het automatisch aansturen van elektronische muziekinstrumenten, die zijn voorzien van 25 een digitale interface, die voldoet aan de internationale MIDI (Musical Instrument Digital Interface) standaard, waarbij genoemde inrichting bestaat uit een digitaal opslagmedium (1), dat digitale trainingsreeksen bevat die voldoen aan de MIDI-standaard en zijn opgeslagen volgens 30 één van de conclusies 1 tot en met 5, een personal computer (PC)(2) die is verbonden met genoemd digitaal opslagmedium (1) en is voorzien van een MIDI interface-kaart (3) en van geschikte software waarin de werkwijze voor het aansturen van elektronische muziekinrichtingen vol- 1008586 P gens één van de conclusies 1 tot en met 5 is geïmplementeerd, een elektronisch muziekinstrument (4) dat zijn uitgangssignaal aflevert aan een MIDI-omzetter (5), die genoemd uitgangssignaal omzet in een digitaal signaal dat 5 voldoet aan de MIDI-standaard, waarbij de MIDI-omzetter (5) het MIDI-in signaal aflevert aan de personal computer (2) waarmee eerstgenoemde is verbonden, en een synthesizer (6) die het MIDI-uit signaal ontvangt, voorzien is van een MIDI-interface (7), en zijn uitgangssignaal afle-10 vert aan een versterker (8). 1008586
NL1008586A 1998-03-13 1998-03-13 Werkwijze voor automatische aansturing van elektronische muziekinrichtingen door het snel (real time) construeren en doorzoeken van een datastructuur met meerdere niveau's, en systeem om de werkwijze toe te passen. NL1008586C1 (nl)

Priority Applications (9)

Application Number Priority Date Filing Date Title
NL1008586A NL1008586C1 (nl) 1998-03-13 1998-03-13 Werkwijze voor automatische aansturing van elektronische muziekinrichtingen door het snel (real time) construeren en doorzoeken van een datastructuur met meerdere niveau's, en systeem om de werkwijze toe te passen.
EP99910862A EP1062656B1 (en) 1998-03-13 1999-03-12 Method for automatically controlling electronic musical devices by means of real-time construction and search of a multi-level data structure
PCT/NL1999/000138 WO1999046758A1 (en) 1998-03-13 1999-03-12 Method for automatically controlling electronic musical devices by means of real-time construction and search of a multi-level data structure
CA002318048A CA2318048A1 (en) 1998-03-13 1999-03-12 Method for automatically controlling electronic musical devices by means of real-time construction and search of a multi-level data structure
DE69902640T DE69902640D1 (de) 1998-03-13 1999-03-12 Verfahren zur steuerung von elektronischen musikvorrichtungen durch echtzeit konstruktion und suchen einer mehrstufigen datenstruktur
JP2000536063A JP2002507009A (ja) 1998-03-13 1999-03-12 マルチレベル・データ構造のリアルタイム構成及びサーチによって電子音楽装置を自動的に制御する方法
AT99910862T ATE223101T1 (de) 1998-03-13 1999-03-12 Verfahren zur steuerung von elektronischen musikvorrichtungen durch echtzeit konstruktion und suchen einer mehrstufigen datenstruktur
US09/646,145 US6313390B1 (en) 1998-03-13 1999-03-12 Method for automatically controlling electronic musical devices by means of real-time construction and search of a multi-level data structure
AU29628/99A AU2962899A (en) 1998-03-13 1999-03-12 Method for automatically controlling electronic musical devices by means of real-time construction and search of multi-level data structure

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL1008586 1998-03-13
NL1008586A NL1008586C1 (nl) 1998-03-13 1998-03-13 Werkwijze voor automatische aansturing van elektronische muziekinrichtingen door het snel (real time) construeren en doorzoeken van een datastructuur met meerdere niveau's, en systeem om de werkwijze toe te passen.

Publications (1)

Publication Number Publication Date
NL1008586C1 true NL1008586C1 (nl) 1999-09-14

Family

ID=19766739

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1008586A NL1008586C1 (nl) 1998-03-13 1998-03-13 Werkwijze voor automatische aansturing van elektronische muziekinrichtingen door het snel (real time) construeren en doorzoeken van een datastructuur met meerdere niveau's, en systeem om de werkwijze toe te passen.

Country Status (9)

Country Link
US (1) US6313390B1 (nl)
EP (1) EP1062656B1 (nl)
JP (1) JP2002507009A (nl)
AT (1) ATE223101T1 (nl)
AU (1) AU2962899A (nl)
CA (1) CA2318048A1 (nl)
DE (1) DE69902640D1 (nl)
NL (1) NL1008586C1 (nl)
WO (1) WO1999046758A1 (nl)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0007318D0 (en) * 2000-03-27 2000-05-17 Leach Jeremy L A system for generating musical sounds
US7120646B2 (en) * 2001-04-09 2006-10-10 Health Language, Inc. Method and system for interfacing with a multi-level data structure
EP1265221A1 (en) * 2001-06-08 2002-12-11 Sony France S.A. Automatic music improvisation method and device
EP1274069B1 (en) 2001-06-08 2013-01-23 Sony France S.A. Automatic music continuation method and device
US7723602B2 (en) * 2003-08-20 2010-05-25 David Joseph Beckford System, computer program and method for quantifying and analyzing musical intellectual property
SE527425C2 (sv) * 2004-07-08 2006-02-28 Jonas Edlund Förfarande och anordning för musikalisk avbildning av en extern process
US7678984B1 (en) * 2005-10-13 2010-03-16 Sun Microsystems, Inc. Method and apparatus for programmatically generating audio file playlists
SE528839C2 (sv) * 2006-02-06 2007-02-27 Mats Hillborg Melodigenerator
US8618404B2 (en) * 2007-03-18 2013-12-31 Sean Patrick O'Dwyer File creation process, file format and file playback apparatus enabling advanced audio interaction and collaboration capabilities
GB201219521D0 (en) * 2012-10-30 2012-12-12 Rex Edmund Generative scheduling method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4982643A (en) 1987-12-24 1991-01-08 Casio Computer Co., Ltd. Automatic composer
US5418323A (en) 1989-06-06 1995-05-23 Kohonen; Teuvo Method for controlling an electronic musical device by utilizing search arguments and rules to generate digital code sequences
US5119711A (en) * 1990-11-01 1992-06-09 International Business Machines Corporation Midi file translation
US5451709A (en) * 1991-12-30 1995-09-19 Casio Computer Co., Ltd. Automatic composer for composing a melody in real time
JP3271282B2 (ja) 1991-12-30 2002-04-02 カシオ計算機株式会社 自動メロディ生成装置
US5689616A (en) 1993-11-19 1997-11-18 Itt Corporation Automatic language identification/verification system
TW333644B (en) * 1995-10-30 1998-06-11 Victor Company Of Japan The method for recording musical data and its reproducing apparatus
US5736666A (en) 1996-03-20 1998-04-07 California Institute Of Technology Music composition
JP3620240B2 (ja) * 1997-10-14 2005-02-16 ヤマハ株式会社 自動作曲装置および記録媒体

Also Published As

Publication number Publication date
JP2002507009A (ja) 2002-03-05
EP1062656A1 (en) 2000-12-27
AU2962899A (en) 1999-09-27
CA2318048A1 (en) 1999-09-16
ATE223101T1 (de) 2002-09-15
DE69902640D1 (de) 2002-10-02
WO1999046758A1 (en) 1999-09-16
EP1062656B1 (en) 2002-08-28
US6313390B1 (en) 2001-11-06

Similar Documents

Publication Publication Date Title
US8566258B2 (en) Markovian-sequence generator and new methods of generating Markovian sequences
EP1274069B1 (en) Automatic music continuation method and device
AU749235B2 (en) Method and apparatus for composing original musical works
US6678680B1 (en) Music search engine
WO1998049630A1 (en) Bibliographic music data base with normalized musical themes
JP3484986B2 (ja) 自動作曲装置、自動作曲方法および記憶媒体
NL1008586C1 (nl) Werkwijze voor automatische aansturing van elektronische muziekinrichtingen door het snel (real time) construeren en doorzoeken van een datastructuur met meerdere niveau's, en systeem om de werkwijze toe te passen.
JPH05181473A (ja) 自動メロディ生成装置
JP2005321668A (ja) 情報処理装置および方法、並びにプログラム
JP2008506150A (ja) 音楽生成システム
CA2259369A1 (en) Automatic improvisation system and method
WO2013182515A2 (en) Device, system and method for generating an accompaniment of input music data
US5418323A (en) Method for controlling an electronic musical device by utilizing search arguments and rules to generate digital code sequences
CN113838444B (zh) 生成编曲的方法、装置、设备、介质及计算机程序
US4719834A (en) Enhanced characteristics musical instrument
US6365819B2 (en) Electronic musical instrument performance position retrieval system
Borg The Somax 2 Theoretical Model
JPH0736478A (ja) 音符列間類似度計算装置
Kirlin et al. A Framework for Automated Schenkerian Analysis.
Loughran et al. Grammatical music composition with dissimilarity driven hill climbing
KR20170128072A (ko) 프리 오더 마르코프 체인과 베이즈 추론을 이용한 음악 작곡 방법
Tanaka et al. Describing global musical structures by integer programming on musical patterns
CN113096624A (zh) 交响乐曲自动创作方法、装置、设备及存储介质
Nguyen et al. Random walks on Neo-Riemannian spaces: Towards generative transformations
Martins et al. Similarity measures for rhythmic sequences

Legal Events

Date Code Title Description
VD2 Discontinued due to expiration of the term of protection

Effective date: 20040313