diff --git a/README.md b/README.md index ade0718..03b3214 100644 --- a/README.md +++ b/README.md @@ -152,9 +152,9 @@ play the next command in the range, or input a command number to play, or input evaluate to a number (for example, `r`) to repeat the last command. This mode will allow you to explore the Furby reactions to different commands. -The generated WAV file is saved as `out.wav` in the current directory. Under Windows, the playback is performed -using the provided command-line utility (`bin/win32/dsplay.exe`). Under Unix / Mac, an attempt to use -already existing console players is used (but not tested). +The generated WAV file is saved as `out.wav` in the current directory. +Under Windows, the playback is performed using the provided command-line utility (`bin/win32/dsplay.exe`). +Under Unix / Mac, an attempt to use already existing console players is used (tested for Mac). ### Listen and Decode Furby Commands diff --git a/bin/furby-send.pl b/bin/furby-send.pl index 566c1fe..1a7471f 100644 --- a/bin/furby-send.pl +++ b/bin/furby-send.pl @@ -11,6 +11,7 @@ BEGIN } use Furby::Audio; +use Furby::Command; if ($^O eq 'MSWin32') { require Win32::Sound; @@ -44,11 +45,17 @@ BEGIN if (!$interactive) { Furby::Audio::generate_wav($number, $filename); play_wav($filename); + my $description = Furby::Command::description($number); + print "\n($number) $description\n\n"; + } else { while ($number <= $max_number) { Furby::Audio::generate_wav($number, $filename); - print "Command $number ... "; + #print "Command $number ... "; play_wav($filename); + my $description = Furby::Command::description($number); + print "\n($number) $description\n\n"; + if ($number == $max_number) { print "Done\n"; last; @@ -65,18 +72,21 @@ BEGIN } } + sub play_wav { my ($filename) = @_; my $command = 'aplay'; # assube we're on some Linux desktop flavor - if ($^O eq 'MacOS') { + if ($^O eq 'darwin') { $command = 'afplay'; } if ($^O eq 'MSWin32') { $command = '"'.catfile(dirname(rel2abs($0)), 'win32/dsplay.exe').'"'; } - +# print "$^O = $command\n"; system("$command $filename"); + + } diff --git a/lib/Furby/Command.pm b/lib/Furby/Command.pm index 6338d37..b812862 100644 --- a/lib/Furby/Command.pm +++ b/lib/Furby/Command.pm @@ -12,24 +12,24 @@ use Furby::Command::Dictionary; my $description = { #... - '350' => '', #! food, tasty ("mmm, yum") + '350' => '! food, tasty ("mmm, yum")', #! food, tasty ("mmm, yum") #... - '352' => 'Any small eatable tasty stuff (like peanut)', #! - '353' => 'Any bigger soft eatable tasty stuff (like banana)', #! - '354' => 'Any suckable tasty stuff (like oysters, sphagetti)', #! - '355' => 'Any drinkable(?) tasty stuff', #! - '356' => 'Any hard eatable but not tasty stuff (like chicken bone)', #! + '352' => '! Any small eatable tasty stuff (like peanut)', #! + '353' => '! Any bigger soft eatable tasty stuff (like banana)', #! + '354' => '! Any suckable tasty stuff (like oysters, sphagetti)', #! + '355' => '! Any drinkable(?) tasty stuff', #! + '356' => '! Any hard eatable but not tasty stuff (like chicken bone)', #! #... - '358' => 'Any small not tasty stuff (like pepperoni)', #! - '359' => 'Any bigger soft not tasty stuff (like asparagus)', #! - '360' => 'Any suckable not tasty stuff ', #! + '358' => '! Any small not tasty stuff (like pepperoni)', #! + '359' => '! Any bigger soft not tasty stuff (like asparagus)', #! + '360' => '! Any suckable not tasty stuff ', #! '361' => '', #! #... '368' => '', #! #... '370' => '', #! '371' => '', #! - '372' => 'Any suckable tasty stuff (like beans)', #! "ooh!" + '372' => '! Any suckable tasty stuff (like beans) = ("ooh!")', #! "ooh!" '373' => '', #! '374' => '', #! #... @@ -62,14 +62,14 @@ my $description = { '402' => '', #! '403' => '', #! #... - '410' => '', #! something hot? + '410' => '! (something hot ?)', #! something hot? #... - '412' => '', #! something hot? - '413' => '', #! something hot? + '412' => '! (something hot ?)', #! something hot? + '413' => '! (something hot ?)', #! something hot? '414' => '', #! '415' => '', #! '416' => '', #! - '417' => 'Any non-eatable stuff (toilet paper, pillow, etc)', #! + '417' => '! Any non-eatable stuff (toilet paper, pillow, etc)', #! '418' => '', #! '419' => '', #! '420' => '', #! @@ -84,17 +84,17 @@ my $description = { '702' => 'Event: Chew-chew', '703' => 'Event: You touched my head or side, you turned me on a side', '704' => 'Event: Fart', - '705' => 'Event: I woke up!', # sent on Furby wakeup, even before it pronounces the 'Good morning' phrase - '706' => 'Event: (?)', # sent at random when Furby is idle (like ping, or searching for other Furbys?). Responds with '721' - '707' => 'Event: (?)', # sent at random when Furby is idle (like ping, or searching for other Furbys?). Responds with '722' - '708' => 'Event: (?)', # speech: dang-dang-dang-da..... Responds with '723' - '709' => 'Event: (?)', # speech: bo-ga-di-di-do ... dang-dang-dang-da..... Responds with '724' + '705' => '! Event: I woke up!', # sent on Furby wakeup, even before it pronounces the 'Good morning' phrase + '706' => 'Event: (?ping )', # sent at random when Furby is idle (like ping, or searching for other Furbys?). Responds with '721' + '707' => 'Event: (?ping)', # sent at random when Furby is idle (like ping, or searching for other Furbys?). Responds with '722' + '708' => 'Event: (?speech dang-dang-...)', # speech: dang-dang-dang-da..... Responds with '723' + '709' => 'Event: (?speech bo-ga-di-di-do...)', # speech: bo-ga-di-di-do ... dang-dang-dang-da..... Responds with '724' '710' => 'Event: Me happy (also when head or back is touched)', '711' => 'Event: cough-cough-cough', '712' => 'Event: Me hungry! / Kah Ay-tay!', '713' => 'Event: You touched my tummy; also sent on its own like / As command: imitate tummy touch(?)', #< - '714' => '', # something that he dislikes (vomit like sound, changes eyes) - '715' => '', # something he dislikes? speaks rapidly + '714' => 'something that he dislikes (vomit sound, change eyes)', # something that he dislikes (vomit like sound, changes eyes) + '715' => 'smoething that he dislikes (speek rapidly)', # something he dislikes? speaks rapidly '716' => 'Event: Me happy (you touched my side or back, or head)', '717' => 'Event: Achoo!', '718' => 'Event: Yawn (I\'m going to sleep) / As command: Yawn!', # when sent as a command, will yawn / sent automatically twice when Furby is going into deep sleep mode @@ -105,19 +105,19 @@ my $description = { '723' => 'Event: got a command 708 (plus sings a song); as command: sing that song', #! handshake? '724' => 'Event: got a command 709 (plus sings a song); as command: sing that song', #! handshake? #... - '760' => '', # "love friend, nay nay noo la" - '761' => '', # "day-dee" - '762' => '', # "meila koo mei ta, meila koo mei ta, like mua, mua, mua" (kiss) - '763' => '', # "ka tulu ata, ata, ata, ata" (song) - '764' => '', # "witi wati to to, blah blah blah blah blah, blah" (song) - '765' => '', # "(fart) oh-ho-ho, tu lu li ku!" - '766' => '', # "boda tei ta eу ku, shaa!" + '760' => '"love friend, nay nay noo la"', + '761' => '"day-dee"', + '762' => '"meila koo mei ta, meila koo mei ta, like mua, mua, mua" (kiss)', + '763' => '"ka tulu ata, ata, ata, ata" (song)', + '764' => '"witi wati to to, blah blah blah blah blah, blah" (song)', + '765' => '"(fart) oh-ho-ho, tu lu li ku!"', + '766' => '"boda tei ta eу ku, shaa!"', #... '780' => 'Event: I\'ve got command 790', '781' => 'Event: I\'ve got command 791', #... - '790' => '', # "ee day do lay lo la!". Responds with '780' - '791' => '', # "u nai bo li day". Responds with '781' + '790' => '"ee day do lay lo la!"',# Responds with '780' + '791' => '"u nai bo li day"',# Responds with '781' #... '813' => 'Request: What\'s your personality?', #! used to initate handshake step 1 and get the current personality type #... @@ -127,19 +127,19 @@ my $description = { '831' => '', # '832' => '', #! #... - '850' => '', # "yeah mi mi be day mu ha ha", "yeah, yeah, yeah! oh yeah yeah!" - '851' => '', # "mmm, ka tulu, me like", "haa" - '852' => '', # "oh-oh-oh-oh!", "dude, no!" - '853' => '', # "grrrh ko ko" something he dislikes - '854' => '', # "grrrh ko ko", "ka bu ku do" - '855' => '', # "ka happy dude", "a ha pee pee day", "yeah nice good boo tai naba" - '856' => '', # "u-ho-ho, a-ho-ho", "blah blah blah blah" - '857' => '', # "a ha! bu da to to", "u ha, he-he-he" - '858' => '', # "ha? du?" - '859' => '', # "a ha", "oh, kah hey hey, I see" - '860' => '', # "ahaa.. be day loo ney", "haa", "um, mmm, hm" - '861' => '', # "huh" (bored?) - '862' => 'Command: Sleep!', #! sleep (for several seconds) + '850' => '"yeah mi mi be day mu ha ha", "yeah, yeah, yeah! oh yeah yeah!"', + '851' => '"mmm, ka tulu, me like", "haa"', + '852' => '"oh-oh-oh-oh!", "dude, no!"', + '853' => '"grrrh ko ko" something he dislikes', + '854' => '"grrrh ko ko", "ka bu ku do"', + '855' => '"ka happy dude", "a ha pee pee day", "yeah nice good boo tai naba"', + '856' => '"u-ho-ho, a-ho-ho", "blah blah blah blah"', + '857' => '"a ha! bu da to to", "u ha, he-he-he"', + '858' => '"ha? du?"', + '859' => '"a ha", "oh, kah hey hey, I see"', + '860' => '"ahaa.. be day loo ney", "haa", "um, mmm, hm"', + '861' => '"huh" (bored?)', + '862' => 'Command: Sleep! (only servel seconds)', #! sleep (for several seconds) '863' => 'Command: Laugh!', #! laugh '864' => 'Command: Burp!', #! burp '865' => 'Command: Fart!', #! fart/poo @@ -147,29 +147,29 @@ my $description = { '867' => 'Command: Sneeze!', #! long sneeze '868' => 'Command: Sing!', #! sing '869' => 'Command: Talk!', #! talk - '870' => '', # "me tay, yes, yes!" (hearts in his eyes), "di do dude, good friend" - '871' => '', # "ah bu to lu, no like" - '872' => '', # says some rap - '873' => '', # sings: "di-di-di-di, tam-da-di dam" - '874' => '', # eating motion - '875' => '', # angry bite, "he-he-he" - '876' => '', # chewing/sucking sound (like when someone puts a finger in his mouth) - '877' => '', # suck in - '878' => '', # ingest - '879' => '', # short sneeze, "like pea" (or something else, depending on personality) - '880' => '', #! motion (dislike) - '881' => '', # "oh-hoo ha-ha" (or "ha-haa" like something scary or hot) - '882' => '', #! "ah ha me bee dey, nice good!", purr - '883' => '', # tasty: "mmm, yum", "ha haa!" - '884' => '', # not tasty (vomit-like) - '885' => '', # "oooh" - '886' => '', # "chew chew ooh" - '887' => '', #! "aaah" (exclamation) (changes eyes to 'burning' in warrior mode) - '888' => '', # "aaah" - '889' => '', #! motion (sings "ahh-tahoo") - '890' => '', # "baby" - '891' => '', # "ka ay tay oooh", "purr grrr uh oh" - '892' => '', # "mmm, good food" + '870' => '"me tay, yes, yes!" (hearts in his eyes), "di do dude, good friend"', + '871' => '"ah bu to lu, no like"', + '872' => 'says some rap', + '873' => 'sings: "di-di-di-di, tam-da-di dam"', + '874' => 'eating motion', + '875' => 'angry bite, "he-he-he"', + '876' => 'chewing/sucking sound (like when someone puts a finger in his mouth)', + '877' => 'suck in', + '878' => 'ingest', + '879' => 'short sneeze, "like pea" (or something else, depending on personality)', + '880' => '!motion (dislike)', + '881' => 'oh-hoo ha-ha" (or "ha-haa" like something scary or hot)', + '882' => '! "ah ha me bee dey, nice good!", purr', + '883' => 'tasty: "mmm, yum", "ha haa!"', + '884' => 'not tasty (vomit-like)', + '885' => 'oooh"', + '886' => 'chew chew ooh"', + '887' => '! "aaah" (exclamation) (changes eyes to "burning" in warrior mode)', + '888' => '"aaah"', + '889' => '! motion (sings "ahh-tahoo")', + '890' => '"baby"', + '891' => '"ka ay tay oooh", "purr grrr uh oh"', + '892' => '"mmm, good food"', '893' => '', # #... '900' => 'I have no personality developed yet...', @@ -191,4 +191,4 @@ sub description { return $description->{$command} || Furby::Command::Dictionary::description($command); } -1; \ No newline at end of file +1;