Data AcQuisition And Real-Time AnalysisScope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
Contact us about
MIDI Changes Script Song Title Generator
Changes: oMT=n, o0T=n, oFT=n
For MIDI Changes script setups like the "Glossy" family, and especially those like GlossyTracks, the performance or track is controlled by a pseudo-random value "seed". There are over 4 billion (2^32) possible seed values, each producing a unique "song". You can repeat a performance exactly by using its seed directly, instead of obtaining a random seed.
The seed value is typically shown in an Output Display (at the bottom of the Pitch-to-MIDI dialog dialog) as as hexadecimal value such as h1327BBDA. Although you need to use such hex values to repeat the performance, they are not as memorable as actual song titles.
The Title Generator option can assign a title to any 32-bit seed value... over 4 billion unique titles, one for each possible song. A title is derived only from its seed; it does not incorporate any knowledge of the performace itself. The titles thus have no particular relevance: A lively, up-beat song may be given a title like "The Fallen Soldier Dirge".
Setting Title Generator parameters:
oTq=1 Display Quotes around title oTh=1 Display Hex seed value before title oTb=1 Display Block number after title oTp="n0, n1, ... n20 Set Block Probabilities oTp=n Set nth block to max, rest 0
Displaying the title for the current seed (s), or for any value n:
oMT=s Show title as Custom Message o0T=s Show title on Mtr0 (01T=s for Mtr1, etc.) oFT=s Send title to Log File as new line ofT=s Append title to Log File current line
The Percussion Changes Script subtopic of GlossyTracks demonstrates how to display a title as a Custom Message, along with the seed value and block number. It includes examples of additional commands to set the appearance of the Custom Message.
(See also Custom Message, Custom Meters, and Log File Output subtopics under Changes Script Output Display.)
To understand the basic concept of how the Title Generator works, consider a simplified example. Note that any 32-bit seed value can be regarded as four independent 8-bit values, each of which can be used as an index into one of four different 256-word lists: adjectives, nouns, verbs, and adverbs. Picking one word from each list, you could create titles like "Sleepy Walrus Sings Heroically" or "Bold Turnip Forgets Adorably". In this way you could get 4.3 billion unique names using only 4 * 256 = 1024 words.
But that title format would quickly get boring. Instead, the Title Generator uses a number of different formats, and allows you to control the relative probabilities of most of them. For example, using only adjectives and nouns it can create titles like "Crouching Poodle, Hidden Porcupine".
The 32-bit seed can also be treated as three 10-bit values, plus a 2-bit "selector" that determines which of two alternative 1024-word adjective and noun lists to use, giving titles like "The Smirking Butler And The Cockatoo". Or, with a 1024-word verb list as well, it can give "Dance, Little Buttercup".
Each of these formats alone can produce all 4.3 billion titles, because each provides a unique word combination for any 32-bit seed. To allow for a variety of formats, the Title Generator uses an 8-bit recombination or "hash" of the 32-bit seed as a 0-255 selector. Each supported title format is assigned a different non-overlapping range of hash values, such that any seed will hash to only one of the format ranges. You can increase the probability of getting a given format by increasing the size of its range, relative to the other formats. You can eliminate an unwanted format by assigning it a range size of zero.
However, the above scheme requires that a title format use all 32 bits; if it used (say) only 31 bits, then two different seeds (identical except for the 32nd bit) could produce the exact same title.
This need to account for all 32 bits poses a dilemma if we want to allow titles with only one or two words. It would take a list of 4.3 billion different words to support one-word titles. Two-word titles could be handled with two 65536-word (16-bit) lists... still rather excessive.
Instead, the Title Generator provides special handling for short titles. For example, if the seed value is less than 1024 (10 bits), then a single 1024-word list of verbs can be used to give titles like "Celebrate" or "Disappear". If the seed is between 1024 and 2048, a single list of 1024 adverbs can give titles like "Sincerely" or "Wistfully". The same idea can be applied to nouns and adjectives.
This concept can be extended to two-word titles by using seeds less than 20 bits, and selecting from two 1024-word lists to get "Bashful Bandit" (adjective and noun), or "Totally Crazy" (two adjectives), and so forth.
The Title Generator uses several additional low-seed schemes, with the ultimate result that all seed values less than 28 bits are given special handling. There is no problem of duplicate names from different seeds, because the upper bits are not ignored: They must be zeros for the special handling to be activated. The low-seed handler always takes priority over the previously-mentioned hash probability scheme, which acts when the seed is above the 28-bit limit.
Since the low-seed formats account for all seed values where the 4 highest bits of the 32-bit seed are set to 0, as a group they account for 1/16 of all titles. The other 15 combinations of those 4 bits provide 15/16 of the total names, using the hash probability system to apportion them among chosen formats.
The above discussion focuses on the main word lists, ignoring articles, pronouns, prepositions, conjunctions, and punctuation that may be added to a title. These may be fixed parts of certain title formats, or variable options based on seemingly-random seed bit combinations. For example, "The Smirking Butler And The Cockatoo" title mentioned above gets 'The' and 'And The' inserted automatically. Another format produces titles such as "How The Rampant Tear Sheds", where 'How' is one of 16 prepositions selected using a recombination of the same 32 seed bits that selected 'Rampant', 'Tear', and 'Sheds'.
Formats that use all 32 seed bits are grouped into 21 blocks that have adjustable relative probability. Some blocks hold only a single format; others hold two or four different formats, equally sharing the block probability. Adjustable probability blocks are numbered 0-20, but are shown in hexadecimal from 00-14 if you tell the Title Generator to append the block number after all titles via oTb=1.
You assign probabilities to individual blocks using oTp="n0, n1, ... n20", where n0 through n20 are relative probabilities in the range 0-256. The default is 12 for blocks 0-16 and 13 for the remaining blocks 17-20, for a total of 256.
Alternatively, you can use oTp=n to set the nth (0-20) block to 256, and the rest to 0.
For each 32-bit seed value, its 0-255 "hash" is compared to the cumulative block probability. For example, if the hash is less than the block 0 value, then the block 0 format is used. If not, the hash is compared to the sum of the block 0 and block 1 values, and the block 1 format is used if less. The process proceeds until the hash is less than the current block total.
A value of zero means that block is not used at all; a value of 256 (with the rest set to 0) means that only that one block is used. (Hence the oTp=n single-block format.)
If the total of blocks 0-19 is less than 256, block 20 automatically gets the difference no matter what value you set. Thus, if all blocks are set to 0, block 20 is effectively 256 and thus is the only adjustable block used.
In the format summaries below, an agent is a noun that refers to a real or fictional creature that can initiate actions, such "Actress" or "Zebra". An object is a noun that refers to non-living things like "Alley" and "Yacht", or to plants. If noun is used alone, it may be either an agent or object.
Block 00 format is adjective noun and the noun, such as "The Framed Simpleton And The Puma".
Block 01 format is noun and the adjective noun, such as "The Apple And The Patient Sapsucker".
Block 02 format is preface of the agent and adjective noun, where preface is a special noun like "Adventure" or "Saga". Example: "Tears of the Sheik And Clownish Ferret".
Block 03 is a group of 4 different formats, each of which consists of 3 of the same word type: noun, noun, and noun, as in "Holiday, Fun, And Venus"; verb, verb, verb, as in "Claim, Sin, Exaggerate"; adverb, adverb, adverb, as in "Nearby, Carefully, Sinfully"; and adjective, adjective, and adjective, as in "Gaunt, Envious, And Doddering".
Block 04 is also a group of 4 different formats, related only in that each uses only 30 bits, so together they use 32. The first is the adj noun songdance, or alternatively songdance of the adj noun, where songdance is a noun like "Sonata" or "Tango". Example: "Song Of The Grouchy Goat".
The second Block 04 format is verb the noun adverb, such as "Dupe The Bridesmaid Dazzlingly".
The third Block 04 format is adverb verbs the noun, as in "Colorfully Limits The Spirit".
The final Block 04 format is verb adverb, noun, as in "Smile Mournfully, Mudpuppy".
Block 05 format is adjective noun verbs, usually with a leading preposition, as in "When The Tin Jackrabbit Laughs".
Block 06 format is pronoun verb, pronoun verb adverb, as in "I Call, He Taunts Guiltily".
Block 07 format uses a verb, adjective, and noun in one of two forms. The verb, adjective noun form is an imperative, as in "Sing, Little Bullfrog". The other form is question verb adjective noun?, where question is a pronoun like "Who" or "What". Example: "Who Will Admit The Meticulous Duckling?"
Block 08 format is verb the adjective noun, as in "Ride The Wild Ocelot".
Block 09 format is adjective noun, adjective noun, as in "Southern Raven, Impassive Mistress".
Block 0A (10 decimal) format is noun of the adjective noun, as in "Alligator Of The Metal Kettle".
Block 0B (11 decimal) format is the adjective noun of adjective nouns, as in "The Charmed Coachman Of Radical Desires".
Block 0C (12 decimal) format is pronoun verb preposition noun verb, which may include a comma or a question mark. Examples: "She Reads As The Brachiopod Buzzes", "Few Know, But The Tragedy Changes", or "Who Rings If The Tapioca Trims?"
Block 0D (13 decimal) format is verb adverb, verb adverb, as in "Engage Yearly, Break Dearly".
Block 0E (14 decimal) format is adjective noun verbs adverb, as in "Hundredth Smile Proposes Wolfishly".
Block 0F (15 decimal) format is verb adverb, adjective noun, as in "Cavort Nefariously, Debonair Villain".
Block 10 (16 decimal) format is the noun adv8 verbs adverb, where adv8 is a selected subset of 8 adverbs. An example is "The Walrus Always Sleeps Gently".
Block 11 (17 decimal) format is adjective adjective noun, as in "Giant Atomic Parrot".
Block 12 (18 decimal) format includes two variants. The first is object is a/an adjective noun, such as "Heaven Is A Brave Chipmunk". The second form is adjective is the adjective noun, such as "Peaceful Is The Brave Chipmunk".
Block 13 (19 decimal) format is adverb, adjective noun, as in "Truthfully, Fat Muskrat".
Block 14 (20 decimal) format is the adjective agent in the place of feeling, where place is a location like "Canyon" or a situation like "Challenge", and feeling is an emotion like "Anger" or "Love". Example: "The Artful Model In The Abyss Of Sanity".
Seed values of 13 bits or less are single "main" words, plus possible helpers like pronouns or articles. Verbs may be used alone, such as "Love", or with one of 16 pronouns, such as "We Love". Adverbs may be used alone, as in "Truly", or with one of 8 pronouns such as "Truly Yours". Nouns and Adjectives are preceded by 'The', as in "The Boardwalk" or "The Classic". These formats together form Block F0, with a fixed probability of 2^13 / 2^32, or 8192 out of 4.3 billion, which is 1/524288 or just under 0.0002 percent.
Seeds between 13 and 18 bits use "song and dance" words after a single adjective or noun, as in "The Insecure Nocturne" or "The Wrangler Two Step". This format is Block F1, with a fixed probability of 2^18 / 2^32, or 262144 out of 4.3 billion, which is 1/16384 or just over 0.006 percent.
Seed values between 18 and 23 bits use one of several two-word formats. An adjective and noun produce titles like "The Showy Cicada" or "Ringing Fiesta". An adverb and adjective yield "Intensely Trifling" or "Supernaturally Hopeless". A verb and adverb give "Believe Roughly" or "Trip Gracefully". Noun and verb are used for "The Lover Forgets" or "The Lobbyist Tumbles". Two nouns are used with one of 8 prepositions for "Nest Without A Pedal" or "Jamboree Minus A Fiesta". These formats together constitute Block F2, with a fixed probability of 2^23 / 2^32, which is 1/512 or just under 2 percent.
Seeds between 23 and 28 bits use an adjective and noun in one of 512 stock phrases, such as "Hello, Western Child!" or "That Iron Gargoyle Just Keeps Us Apart". This format is Block F3, with a fixed probability of 2^28 / 2^32, which is 1/16 or 6.25 percent.
Questions? Comments? Contact us!We respond to ALL inquiries, typically within 24 hrs.
Over 35 Years of Innovative Instrumentation
© Copyright 2007 - 2023 by Interstellar Research
All rights reserved