Re: Temporary picts

2002-03-21 Thread Shari

So the solution has to be to avoid modal dialogs. You could do that by
creating your own dialog stack and storing it as a substack in your main
stack. You'd fill the text field with the appropriate response and set
the button labels to whatever you want. Then display it as modeless:

   modeless myDialog

This would definitely be an option for the current project...

Didn't work *sigh*

Tried three versions.  All had the same result as using the answer 
command.  The first half of darn you.wav plays, and the last half 
of talk to you plays, and all the rest gets cut off.

So it will have to be the long version.

Wishful versions (5 lines of code):

put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav 
into soundList
 repeat with x = 1 to the number of items of soundList
   play (item x of soundList)
 end repeat
 answer some info

put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav 
into soundList
 repeat with x = 1 to the number of items of soundList
   play (item x of soundList)
 end repeat
 go cd info of stack dLog in a new window

put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav 
into soundList
 repeat with x = 1 to the number of items of soundList
   play (item x of soundList)
 end repeat
 go cd info of stack dLog as modeless

put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav 
into soundList
 repeat with x = 1 to the number of items of soundList
   play (item x of soundList)
 end repeat
 go cd info of stack dLog as modal

Working version (about 50 lines of code) and requires a player on each card:

set the startTime of player Music to 0
 set the currentTime of player Music to 0
 put the effective filename of this stack into wit
 set the itemdelimiter to /
 put darn you.wav into the last item of wit
 set the fileName of player Music to wit
 set the callbacks of player Music to 531,end1
 start player Music

on end1
   put the effective filename of this stack into wit
   set the itemdelimiter to /
   put aaah.wav into the last item of wit
   set the fileName of player Music to wit
   set the startTime of player Music to 0
   set the currentTime of player Music to 0
   set the callbacks of player Music to 1020,end2
   start player Music
end end1

on end2
   put the effective filename of this stack into wit
   set the itemdelimiter to /
   put goodie.wav into the last item of wit
   set the fileName of player Music to wit
   set the startTime of player Music to 0
   set the currentTime of player Music to 0
   set the callbacks of player Music to 472,end3
   start player Music
end end2

on end3
   put the effective filename of this stack into wit
   set the itemdelimiter to /
   put oh yeah.wav into the last item of wit
   set the fileName of player Music to wit
   set the startTime of player Music to 0
   set the currentTime of player Music to 0
   set the callbacks of player Music to 628,end4
   start player Music
end end3

on end4
   put the effective filename of this stack into wit
   set the itemdelimiter to /
   put talk to you.wav into the last item of wit
   set the fileName of player Music to wit
   set the startTime of player Music to 0
   set the currentTime of player Music to 0
   set the callbacks of player Music to empty
   start player Music
end end4
-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-21 Thread Shari

If you need them to play seamlessly from one file to the next, that 
would be the biggest trick.  I would start out by having your 
program get the size (in time) of the file it is going to play first 
and have a send command create  another player and start it at the 
estimated end time.

Yes it would be nice if you could do it the old way from HC.  But 
there are alternatives that should work out just fine.  What you get 
in the end is longer sound code, but advanced features not available 
in HC without a truckload of externals.  Don't get me started on the 
power of running on multiple platforms.

Put your C books down and put your diskettes of HC away and give this a try.

Actually the code I ended up with works, but not seamlessly.  I 
posted the final version.  Even though I set the startTime etc. to 
zero, it cuts of the first millisecond of the first sound.  And 
darn becomes arn.

Thankfully there is only one piece of code in this particular program 
where the sound issue tripped me up.  The rest of the sounds were 
simpler commands that did work as desired.  Simply play someSound.

The only thing left for me to do with this program, is compile it, 
and test it compiled to see if anything works differently, and I plan 
to have it in my beta tester's hands this weekend.

I do want to change that one ticky piece of sound code again though, 
as I remembered late last night that using players and setting their 
filename meant keeping the sounds external and not embedded.  I don't 
want the sounds to be external, so I may go back to the send command 
and play with it some more.  I'd like to get this worked out in a 
satisfactory way, as the end result will be the template for all my 
programs.  And it is highly desireable to me to have all the 
sounds/graphics embedded.

Bad enough to lose the resource fork for those danged Windoze 
machines ;-)  I'll tell you, I had a whole system set up that made 
wondrous use of the resource fork for sounds/graphics.  I created a 
whole library of graphics in hypercard  as resources, so that when I 
want a specific graphic, say a dog, I go to the resource fork of the 
Animals stack, and every animal image is there, without having to 
open and close a bunch of files, and I can just scroll through and 
see if there is a suitable dog image.  And then copy it, and paste it 
into the project.

I really miss being able to do that, but that's a sacrifice to go 
cross platform.  I don't look forward to taking 1000 images (in a 
project I've already begun where the images are/were finished), 
porting them to Photoshop, and then saving them each as a gif/jpg. 
That project is DEFINITELY getting ported to Metacard, as I expect it 
to be my biggest seller so I want in on as many platforms as possible 
:-)
-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



RE: Temporary picts

2002-03-21 Thread Yates, Glen

Wow, your long version looks like a pain to implement. I came into this
thread late so forgive me if this has already been suggested, but have you
tried using 'on playStopped' to string your sounds together. Here's a little
code I just wrote a few minutes ago to do this.

global soundCount
global soundList

on openCard
  put 1 into soundCount
  put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav into
soundList
  playmysounds
end openCard

on playMySounds
  if soundCount = the number of items of soundList then
play audioclip (item soundCount of soundList)
put soundCount + 1 into soundCount
  end if
end playMySounds

on playstopped
  playMySounds
end playstopped


Good Luck!
-Glen Yates


Shari Wrote:
 So it will have to be the long version.
 
 Wishful versions (5 lines of code):
 
 put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav 
 into soundList
  repeat with x = 1 to the number of items of soundList
play (item x of soundList)
  end repeat
  answer some info
 
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-21 Thread David Tremmel

On 3/21/02 10:20 AM, Shari [EMAIL PROTECTED] wrote:

snip
 
 I really miss being able to do that, but that's a sacrifice to go
 cross platform.  I don't look forward to taking 1000 images (in a
 project I've already begun where the images are/were finished),
 porting them to Photoshop, and then saving them each as a gif/jpg.
 That project is DEFINITELY getting ported to Metacard, as I expect it
 to be my biggest seller so I want in on as many platforms as possible
 :-)

If all you need to do is to convert those 1000 images from some current
format to gif/jpg, you could do it a lot more quickly by batch processing
them in GraphicConverter.  Just a thought...

Regards,
Dave Tremmel

___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-21 Thread Ken Ray

Shari,

Couldn't you reduce the lines of code like this:

global gCurrSoundNum,gSoundList,gSoundTimes

on StartItUp
  put darnyou.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav into
gSoundList
  put 531,1020,472,628 into gSoundTimes -- stores callbacktimes
  put 0 into gCurrSoundNum
  PlayIt
end StartItUp

on PlayIt
  add 1 to gCurrSound
  put the effective filename of this stack into wit
  set the itemDelimiter to /
  put item gCurrSound of gSoundList into that last item of wit
  set the fileName of player Music to wit
  set the startTime of player Music to 0
  set the currentTime of player Music to 0
  set the itemDelimiter to ,
  if gCurrSoundNum = (the number of items of gSoundList) then
set the callbacks of player Music to empty
  else
set the callbacks of player Music to (item gCurrSound of gSoundTimes)
 ,PlayIt
  end if
  start player Music
end PlayIt


This should work (although I'm typing it off the top of my head)... the only
thing that may not work is the set the callbacks line with the variable -
it may need to be quoted, or executed with a do, but it should work and
reduce the number of lines of code to 22...

Just a thought...

Ken Ray
Sons of Thunder Software
Email: [EMAIL PROTECTED]
Web site: http://www.sonsothunder.com/


- Original Message -
From: Shari [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, March 20, 2002 9:41 PM
Subject: Re: Temporary picts


 So the solution has to be to avoid modal dialogs. You could do that by
 creating your own dialog stack and storing it as a substack in your main
 stack. You'd fill the text field with the appropriate response and set
 the button labels to whatever you want. Then display it as modeless:
 
modeless myDialog
 
 This would definitely be an option for the current project...

 Didn't work *sigh*

 Tried three versions.  All had the same result as using the answer
 command.  The first half of darn you.wav plays, and the last half
 of talk to you plays, and all the rest gets cut off.

 So it will have to be the long version.

 Wishful versions (5 lines of code):

 put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav
 into soundList
  repeat with x = 1 to the number of items of soundList
play (item x of soundList)
  end repeat
  answer some info

 put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav
 into soundList
  repeat with x = 1 to the number of items of soundList
play (item x of soundList)
  end repeat
  go cd info of stack dLog in a new window

 put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav
 into soundList
  repeat with x = 1 to the number of items of soundList
play (item x of soundList)
  end repeat
  go cd info of stack dLog as modeless

 put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav
 into soundList
  repeat with x = 1 to the number of items of soundList
play (item x of soundList)
  end repeat
  go cd info of stack dLog as modal

 Working version (about 50 lines of code) and requires a player on each
card:

 set the startTime of player Music to 0
  set the currentTime of player Music to 0
  put the effective filename of this stack into wit
  set the itemdelimiter to /
  put darn you.wav into the last item of wit
  set the fileName of player Music to wit
  set the callbacks of player Music to 531,end1
  start player Music

 on end1
put the effective filename of this stack into wit
set the itemdelimiter to /
put aaah.wav into the last item of wit
set the fileName of player Music to wit
set the startTime of player Music to 0
set the currentTime of player Music to 0
set the callbacks of player Music to 1020,end2
start player Music
 end end1

 on end2
put the effective filename of this stack into wit
set the itemdelimiter to /
put goodie.wav into the last item of wit
set the fileName of player Music to wit
set the startTime of player Music to 0
set the currentTime of player Music to 0
set the callbacks of player Music to 472,end3
start player Music
 end end2

 on end3
put the effective filename of this stack into wit
set the itemdelimiter to /
put oh yeah.wav into the last item of wit
set the fileName of player Music to wit
set the startTime of player Music to 0
set the currentTime of player Music to 0
set the callbacks of player Music to 628,end4
start player Music
 end end3

 on end4
put the effective filename of this stack into wit
set the itemdelimiter to /
put talk to you.wav into the last item of wit
set the fileName of player Music to wit
set the startTime of player Music to 0
set the currentTime of player Music to 0
set the callbacks of player Music to empty
start player Music
 end end4
 --
 --Shareware Games for the Mac--
 http://www.gypsyware.com
 ___
 metacard

Re: Temporary picts

2002-03-21 Thread J. Landman Gay

Yates, Glen wrote:
 
 Wow, your long version looks like a pain to implement. I came into this
 thread late so forgive me if this has already been suggested, but have you
 tried using 'on playStopped' to string your sounds together. 

I forgot all about playstopped. I think I like your suggestion better
than mine, since it doesn't rely on send in. Shari would have to add
the modeless dialog she needs, but that process would be similar to the
script I posted.

-- 
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Repeating sounds [was Re: Temporary picts]

2002-03-21 Thread Shari

Try this (watch out for line wraps):

Will try it and let you know
-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-21 Thread Ken Ray

Shari,

GraphicConverter will work on PICT resources in a stack, so you don't need
to worry about that aspect of the batch conversion. Setting the
transparency, however, is another matter...

Ken Ray
Sons of Thunder Software
Email: [EMAIL PROTECTED]
Web site: http://www.sonsothunder.com/

- Original Message -
From: Shari [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, March 21, 2002 12:03 PM
Subject: Re: Temporary picts


 If all you need to do is to convert those 1000 images from some current
 format to gif/jpg, you could do it a lot more quickly by batch processing
 them in GraphicConverter.  Just a thought...

 They are currently pict resources in a Hypercard stack.  They aren't
 anywhere as separate files on disk.

 Some of them are rectangular.  Some are very small and oddly shaped,
 so the transparency color would have to be set.
 --
 --Shareware Games for the Mac--
 http://www.gypsyware.com
 ___
 metacard mailing list
 [EMAIL PROTECTED]
 http://lists.runrev.com/mailman/listinfo/metacard


___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-21 Thread Mark Talluto


On Thursday, March 21, 2002, at 10:21 AM, Ken Ray wrote:

 Shari,

 GraphicConverter will work on PICT resources in a stack, so you don't 
 need
 to worry about that aspect of the batch conversion. Setting the
 transparency, however, is another matter...

The transparency can be handled as well by GC.  It is now one of the 
batch process options.

-Mark

___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-21 Thread Ken Ray

Cool! I'll update my copy right away... :-)

Ken Ray
Sons of Thunder Software
Email: [EMAIL PROTECTED]
Web site: http://www.sonsothunder.com/

- Original Message - 
From: Mark Talluto [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, March 21, 2002 12:42 PM
Subject: Re: Temporary picts


 
 On Thursday, March 21, 2002, at 10:21 AM, Ken Ray wrote:
 
  Shari,
 
  GraphicConverter will work on PICT resources in a stack, so you don't 
  need
  to worry about that aspect of the batch conversion. Setting the
  transparency, however, is another matter...
 
 The transparency can be handled as well by GC.  It is now one of the 
 batch process options.
 
 -Mark
 
 ___
 metacard mailing list
 [EMAIL PROTECTED]
 http://lists.runrev.com/mailman/listinfo/metacard
 

___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



RE: Temporary picts

2002-03-21 Thread Yates, Glen

Wow, thanks! It's been a while since i've been called a dreamboat. :-)

As to your question, yes if a playstopped handler is in the current
execution chain, then it will get called anytime a sound (or for that matter
a video) stops playing. And, yes setting a global when you played a sound
that you didn't want to initiate the playing of your whole series of sounds
would be one way to go. Another method would be to use the argument that
playstopped returns. It returns the name of the audioclip, videoclip, or
player that has just stopped, so you could potentially make decisions based
on this. Here's a quick dumb example.

on playstopped theSound
if theSound is play it again sam.wav then
playMySounds
end if
end playstopped

Keep in mind, I'm not saying the above way is any better than using a
global, just that it's another way.

Oh, well, back to my own Metacard problems. Don't know why it always seems
more easy and fun to help others with their problems.

-Glen Yates

Shari Wrote:
 It worked!
 
 It worked!  It worked!  It worked!
 
 YOU ARE A DREAMBOAT!
 
 (big huge happy grin)
 
 Question:
 
 As playstopped will get called when other sounds are played in other 
 handlers, won't it be calling PlayMySounds other times, too? 
 Presumably the number in soundCount would prevent anything from 
 actually happening... but it will be called?
 
 Though I could create a global to trap for that... and depending on 
 the contents of that global, is what would happen on playStopped...
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread Shari

If so, you could try using send in commands to trigger the handler
repeatedly. The handler could check to see if the sound was done and
if so, start the next one.

After an hour of playing with various forms of the send command, I 
gave up and went back to the long, klutzy version.

Unfortunately I don't have hours to spend on one item of code.

My last failed attempt follows.  If anyone knows a fix, please make 
sure the fix works before posting it, please?  Don't assume, 'kay 
guys?  Chasing after empty code isn't fun!

# in the menuItem script
global nextSound
put darn you.wav into nextSound
tempHand
answer hello


on tempHand
   global nextSound
   put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav 
into soundList

   if nextSound is in sound() then
 repeat with x = 1 to the number of items of soundList
   get item x of soundList
   if it is nextSound then
 put (item (x + 1) of soundList) into nextSound
   end if
   exit repeat
 end repeat
   end if

   if the sound is done then
 play nextSound
   else
 if talk is not in nextSound then
   send tempHand to me in 1 ticks
 end if
   end if
end tempHand

-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread Shari

I'm not sure why you couldn't do it the HyperCard way, as long as your
sounds are in MC-compatible formats (which it sounds like they are --
.wav is fine.) I've had good luck with the ordinary play command (no
player object, just regular old play snd.wav), using sounds that were
imported into the stack. It works just like in HC. I don't think I've
tried to queue them up though. Was there a problem with the queueing?


Apparently so.

Tried it again, and the results are:

put darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav 
into soundList
 repeat with x = 1 to the number of items of soundList
   play (item x of soundList)
 end repeat
 answer hello


It plays the first part of the first sound (cuts it in half) and the 
last part of the last sound (cuts it in half).

plays 1/2 of darn you.wav
opens hello
plays 1/2 of talk to you.wav

It's as though the hello window opening gets in the way, cutting 
out all the sounds in the middle.
-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread J. Landman Gay

Shari wrote:
 
 If so, you could try using send in commands to trigger the handler
 repeatedly. The handler could check to see if the sound was done and
 if so, start the next one.
 
 After an hour of playing with various forms of the send command, I
 gave up and went back to the long, klutzy version.

I did some quick tests. Apparently MC won't queue sounds the way HC
does; as soon as you play a second sound, it will cut off the first. So
using send in is the only way to queue sounds, unless you use a wait
until the sound is done command, which won't work if you want to
simultaneously issue other commands.

The problem with answer is that it displays a modal dialog. Modal
dialogs stop all messages until they are dismissed, meaning any send
in commands won't execute until the user dismisses the dialog. In my
tests, the first sound did complete while the answer dialog was
displayed, but of course no further sounds were triggered because no
messages were sent until the dialog was closed.

So the solution has to be to avoid modal dialogs. You could do that by
creating your own dialog stack and storing it as a substack in your main
stack. You'd fill the text field with the appropriate response and set
the button labels to whatever you want. Then display it as modeless:

  modeless myDialog

The always-available global dialogdata can be used to store the user's
button click response, or you can just have the custom dialog set a
property that you can read to get the button they clicked. The drawback
to using a modeless stack is that the user can click outside the stack
and the custom dialog will pop behind other windows. 

So, no easy way to do what you want I guess.

-- 
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread Shari

So the solution has to be to avoid modal dialogs. You could do that by
creating your own dialog stack and storing it as a substack in your main
stack. You'd fill the text field with the appropriate response and set
the button labels to whatever you want. Then display it as modeless:

   modeless myDialog

This would definitely be an option for the current project...

Though I'm wondering how other projects will fare.  Remembering a 
piece of code in Pork Barrel, where I have several soundchannels 
playing at the same time, each in a repeat loop, while a whole series 
of visuals and images do things on the screen, while at the same time 
other handlers are running in the background...

(I think this is the part where you hit Saddam Hussein with a bomb 
and blow him out of the desert, to the sounds of planes and bombs and 
screams to appropriate visual effects to show you were successful :-)

I'll tell you, it took me awhile to work out the soundChannel 
scripts, as even my wondrous Hypertalk 2.2 didn't give quite enough 
detail, but once I figured it out, it sure opened up a whole world of 
sound!  No doubt Hypercard had a lot of hidden talents that weren't 
well documented.  Too bad Apple abandoned it.  I held out as long as 
I could before switching.

I picked a really good time to switch, as I'm getting into projects I 
want to release cross platform, and one very enthusiastic project 
which could be done in Hypercard, but it sure will fare much better 
in Metacard.  In fact, I'm starting to see ways of doing things in 
Metacard that will make me a very happy programmer when I get back to 
work on this project :-)  (Actually started it in Hypercard a long 
while back, and got distracted away from it into other projects.)

Can't wait to get back on it now!

-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread J. Landman Gay

Shari wrote:

 Though I'm wondering how other projects will fare.  Remembering a
 piece of code in Pork Barrel, where I have several soundchannels
 playing at the same time, each in a repeat loop, while a whole series
 of visuals and images do things on the screen, while at the same time
 other handlers are running in the background...

Of course, another option is just to combine all the sounds using a
sound editing program and save the result as a single sound file. Then
you have the illusion of multiple sounds but you only have to play one.

-- 
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread Shari

Of course, another option is just to combine all the sounds using a
sound editing program and save the result as a single sound file. Then
you have the illusion of multiple sounds but you only have to play one.

I use the same sounds in several pieces of code, but not in the same 
order/format.  I do this with virtually every program I create.  I 
use sounds a lot and it's not uncommon for a program to have 50 
sounds or more.  Blackjack and Poker have about 200 sounds each. 
Used at different times and in different combinations.

Commonly I'll have several global variables, each with a set of sounds.

-- HYPERCARD CODE --

global winSound,loseSound,streetSounds,airSounds
put did good,you won,happy into winSound
put bad job,you lost,awww into loseSound
put scream1,scream2,kids,dogs,horns into streetSounds
put airplane,bomb into airSounds

One script might just play one specific sounds.

play awww
doSomething

Another script might combine sounds.

set the soundChannel to 1
(not having my soundChannel scripts in front of me, I'd hate to post 
from memory and have it be wrong)
# play item 1 and 2 of airSounds in a repeat loop

set the soundChannel to 2
# repeat however many times, play any item of streetSounds

doSomething

Another script will play a set of sounds in order, some chosen from 
winSound, some chose from loseSound, etc.

put you won,awww,bomb,dogs,did good into soundByte
repeat with x = 1 to the number of sounds of soundByte
play (item x of soundByte)
end repeat

I like to randomize it, so the player doesn't get the exact same 
thing every time.

-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread Mark Talluto


On Wednesday, March 20, 2002, at 10:29 AM, Shari wrote:

 Of course, another option is just to combine all the sounds using a
 sound editing program and save the result as a single sound file. Then
 you have the illusion of multiple sounds but you only have to play one.

 I use the same sounds in several pieces of code, but not in the same 
 order/format.  I do this with virtually every program I create.  I use 
 sounds a lot and it's not uncommon for a program to have 50 sounds or 
 more.  Blackjack and Poker have about 200 sounds each. Used at 
 different times and in different combinations.

This is what I would do.  Set up all of your sounds and music in one 
file.  Put a one second delay in between all the sounds.  Then you write 
down the order in which all the sounds are laid out.  Know the timing of 
each sound and you can have QT play from 10 seconds into the file up to 
15 seconds.  Do this with as many players as you like and you can really 
go to town.

The only hard part is the setup.  Once it is done though you have a 
solution that will be easy to use through the program.  You could even 
write a small randomizer that would call on random tracks if you like 
and play them.

-Mark Talluto

___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread Shari

This is what I would do.  Set up all of your sounds and music in one 
file.  Put a one second delay in between all the sounds.  Then you 
write down the order in which all the sounds are laid out.  Know the 
timing of each sound and you can have QT play from 10 seconds into 
the file up to 15 seconds.  Do this with as many players as you like 
and you can really go to town.

The only hard part is the setup.  Once it is done though you have a 
solution that will be easy to use through the program.  You could 
even write a small randomizer that would call on random tracks if 
you like and play them.

-Mark Talluto

No thanks!  I doubt my computer even has enough memory to handle a 
sound file that big.  You want me to put 200 sounds in one long sound 
byte, many of them much longer than a single beep, and try to figure 
out where each piece starts and stops??  And do this for every 
program I create???  That's nuts!  I have programs with that many 
sounds.

Might as well program in C... a whole lot of code just to accomplish 
a simple task.  I fell in love with Hypercard for its ease of use. 
For its simplicity.  I bought all the C books and Codewarrior Gold 
awhile back, but guess what?  Decided I did not want to waste time 
doing things the hard way when they could be done the easy way.  Even 
if I had to make sacrifices for the simplicity.  And as we all know, 
Hypercard was a wondrous tool but could not compete with C.  I gave 
that choice a great deal of thought, before choosing Metacard.  It 
was not an easy choice.  But simplicity and ease won out.

As with Hypercard, I chose Metacard for ease of use.  Otherwise, I'd 
crack open my C books.

Shari C
-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-20 Thread Mark Talluto


On Wednesday, March 20, 2002, at 06:33 PM, Shari wrote:

 This is what I would do.  Set up all of your sounds and music in one 
 file.  Put a one second delay in between all the sounds.  Then you 
 write down the order in which all the sounds are laid out.  Know the 
 timing of each sound and you can have QT play from 10 seconds into the 
 file up to 15 seconds.  Do this with as many players as you like and 
 you can really go to town.

 The only hard part is the setup.  Once it is done though you have a 
 solution that will be easy to use through the program.  You could even 
 write a small randomizer that would call on random tracks if you like 
 and play them.

 -Mark Talluto

 No thanks!  I doubt my computer even has enough memory to handle a 
 sound file that big.  You want me to put 200 sounds in one long sound 
 byte, many of them much longer than a single beep, and try to figure 
 out where each piece starts and stops??  And do this for every program 
 I create???  That's nuts!  I have programs with that many sounds.

 Might as well program in C... a whole lot of code just to accomplish a 
 simple task.  I fell in love with Hypercard for its ease of use. For 
 its simplicity.  I bought all the C books and Codewarrior Gold awhile 
 back, but guess what?  Decided I did not want to waste time doing 
 things the hard way when they could be done the easy way.  Even if I 
 had to make sacrifices for the simplicity.  And as we all know, 
 Hypercard was a wondrous tool but could not compete with C.  I gave 
 that choice a great deal of thought, before choosing Metacard.  It was 
 not an easy choice.  But simplicity and ease won out.

 As with Hypercard, I chose Metacard for ease of use.  Otherwise, I'd 
 crack open my C books.

 Shari C

200 sounds per program was a piece of information you had not mentioned 
earlier.  I do not know why I did not just suggest that you put all the 
sound files into one folder.  Read the directory of files and put that 
into a variable or a property.  Then create a randomizer that will call 
on the different lines in the variable.  Play that line (which is the 
name of the saved sound) through a player.  The amount of code needed 
would be just a few lines.

If you need them to play seamlessly from one file to the next, that 
would be the biggest trick.  I would start out by having your program 
get the size (in time) of the file it is going to play first and have a 
send command create  another player and start it at the estimated end 
time.

Yes it would be nice if you could do it the old way from HC.  But there 
are alternatives that should work out just fine.  What you get in the 
end is longer sound code, but advanced features not available in HC 
without a truckload of externals.  Don't get me started on the power of 
running on multiple platforms.

Put your C books down and put your diskettes of HC away and give this a 
try.

-Mark Talluto

___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-19 Thread Shari

if you are importing custom icons from HC,
they will wind up in their own Stack BackGround.

Go to Edit BackGrounds and click on HC Icons in
the Stack Backgrounds window right below the Card
Groups window.

No, haven't imported anything.  But I will be updating several 
programs soon that were built in HC, and I need to determine which 
ones I can port to MC without losing any of the goodies, and without 
spending a lot of time with the transition.  Apparently several of 
them will need to remain in HC, as MC cannot easily handle some of 
the things HC does with graphics and sounds.

My programs rely heavily on graphics and sounds.  In one sequence of 
Pork Barrel, I have several soundchannels playing at once, while 
other handlers are running.  And many of my programs play several 
sounds in succession while other handlers are running.  I did this 
with my current MC project, but it's klutzy and the sounds don't 
always play smoothly.  Required a lot of extra coding.  When I get a 
chance, I will upload the code in case anyone knows of a better way.

And of course the program which duplicates an image 50-100 times 
across the screen in an animation... nope, doesn't excite me to 
create 100 objects for one small animation sequence in a program 
that's already done and out there.  Better to leave the project in 
Hypercard and just perform the few minor updates it needs.  Was just 
kinda hoping to move some of them to cross platform and OSX and all 
of them to Metacard... *sigh*

Far as I can tell, very few of my HC programs will port easily and 
smoothly to MC.  The only one being a business program.  Very few 
sounds and graphics there :-)

-- 
--Shareware Games for the Mac--
http://www.gypsyware.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-19 Thread erik hansen

--- Shari [EMAIL PROTECTED] wrote:

 ...which ones I can port to MC without losing
any
 of the goodies, and without 
 spending a lot of time with the transition. 
 MC cannot easily handle some of 
 the things HC does with graphics and sounds...

i thought (hoped) MC was a super script of HC
that did everything faster  better  in color...
once you got it coded.
 
 When I get a chance, I will upload the
 code in case anyone knows of a better way.

good idea. MC marketing can handle the idea that
you have to do some extra coding, but if sound 
graphics are lacking some people will go for
something like Director or Max first.

i am hoping for a one stop authoring tool.


=
[EMAIL PROTECTED] http://www.erikhansen.org

__
Do You Yahoo!?
Yahoo! Sports - live college hoops coverage
http://sports.yahoo.com/
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-19 Thread Shari

   ...which ones I can port to MC without losing
any
  of the goodies, and without
  spending a lot of time with the transition.
  MC cannot easily handle some of
  the things HC does with graphics and sounds...

i thought (hoped) MC was a super script of HC
that did everything faster  better  in color...
once you got it coded.

To be fair, as far as I know, the things I want to do are doable, but 
require major code changes, a basic rewrite of the whole program.  I 
used addcolor heavily, not just for opencard handlers in HC, as I 
write games, which means graphics and sounds and cutsie stuff.  While 
addcolor was a tack on for HC and had many many limitations, it also 
had strengths which I learned to exploit.  And I got used to being 
able to do things a certain way, the whole concept of temporary 
graphics.  I made that concept work for me.  I turned a weakness into 
a strength.

I'm actually very very happy I invested in Metacard, as it opens up 
new worlds for me, OSX and Windows, native color icons, native color 
period.  I'm really getting to like being able to embed stacks within 
stacks.  There are many things about MC that are tops and I'd 
recommend it highly.

But it does lack a few features that Hypercard had.  It's possible to 
do them, but not nearly as easily, as far as I know.   I don't have 
to learn a whole new language, but it is different enough that my 
code doesn't translate simply.

But it sure beats having to do it in C!

One weakness seems to be playing simultaneous sounds or sounds in 
succession while other scripts are running.  That was so easy in HC.

put sound1,sound2,sound3 into theSounds

repeat 25
play any item of the sounds
end repeat
doOtherHandlerStuff

And nice and sweet, Hypercard would play 25 sounds in smooth 
succession, while the script went on to do other things, usually 
visual addcolor type things.  You could also do a repeat with x = 1 
to the number of sounds and have them played in order.

First problem in MC, was that I could not get a player to play a 
sound that was embedded, I had to take the sounds out of the stack 
back onto the hard drive.  This irked me.  I did not want the sounds 
as separate files.

The second problem was that either it would play all the sounds, and 
THEN open the dialog.  Or if I put the dialog first, the dialog had 
to be dismissed before a single sound would play.

The goal was to play a succession of sounds, while a simple 
information dialog box opened.  This was actually called by a menu 
choice, so it needed to run on every card.  I tried putting a player 
on just one card and calling to it, but it didn't play unless that 
card was open.  So I had to put a player on every card.  I didn't 
want a player at all, but there didn't seem to be a way to do it 
without one, and have the dialog open.

I ended up using callbacks after every sound, to play the next sound. 
Presumably I could set a series of callbacks, but not sure how the 
rest of the player script would work, startTime etc.  If this is 
doable without a player object, I'd REALLY like to know how to do 
that!

repeat with x = 1 to the number of items of soundList
   play sound (item x of soundList)
end repeat
doOtherHandlerStuff #runs from the very first sound and keeps on running

What I ended up doing was this (compare this to 5 lines of code in 
HC... if anyone can simply this, I would be very grateful, as I do 
this sort of thing a lot):

on giveInfo
put the effective filename of this stack into wit
 set the itemdelimiter to /
 put darn you.wav into the last item of wit #plays first sound 
and opens the dialog
 set the fileName of player Music to wit
 set the callbacks of player Music to 531,end1
 set the startTime of player Music to 0
 set the currentTime of player Music to 0
 start player Music
 answer myInfo
end giveInfo

on end1 #plays second sound
   put the effective filename of this stack into wit
   set the itemdelimiter to /
   put aaah.wav into the last item of wit
   set the fileName of player Music to wit
   set the startTime of player Music to 0
   set the currentTime of player Music to 0
   set the callbacks of player Music to 1020,end2
   start player Music of cd 1
end end1

on end2 #plays third sound
   put the effective filename of this stack into wit
   set the itemdelimiter to /
   put goodie.wav into the last item of wit
   set the fileName of player Music to wit
   set the startTime of player Music to 0
   set the currentTime of player Music to 0
   set the callbacks of player Music to 472,end3
   start player Music of cd 1
end end2

on end3 #plays fourth sound
   put the effective filename of this stack into wit
   set the itemdelimiter to /
   put oh yeah.wav into the last item of wit
   set the fileName of player Music to wit
   set the startTime of player Music to 0
   set the currentTime of player Music to 0
   set the callbacks of player Music to 628,end4
   start player Music of cd 1
end end3

on 

Re: Temporary picts

2002-03-19 Thread J. Landman Gay

Shari wrote:

 The goal was to play a succession of sounds, while a simple
 information dialog box opened.  This was actually called by a menu
 choice, so it needed to run on every card.  I tried putting a player
 on just one card and calling to it, but it didn't play unless that
 card was open.
 
 Maybe there's a better way to do this, I surely would love to know
 it!

I'm not sure why you couldn't do it the HyperCard way, as long as your
sounds are in MC-compatible formats (which it sounds like they are --
.wav is fine.) I've had good luck with the ordinary play command (no
player object, just regular old play snd.wav), using sounds that were
imported into the stack. It works just like in HC. I don't think I've
tried to queue them up though. Was there a problem with the queueing?

If so, you could try using send in commands to trigger the handler
repeatedly. The handler could check to see if the sound was done and
if so, start the next one.

-- 
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-19 Thread Ken Ray

Shari,

MetaCard has good graphics handling, however it can be a pain to have to
redo a stack that was already done once.
Keep in mind that creating 100 graphics and MetaCard and manipulating them
is a lot faster than trying to do the same thing in HyperCard.
I understand why you may not want to change this over to MetaCard, however
you may find that later on it will be worthwhile to do so in order to gain
cross-platform support and more capabilities.

Ken Ray
Sons of Thunder Software
Email: [EMAIL PROTECTED]
Web Site: http://www.sonsothunder.com/
- Original Message -
From: Shari [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, March 19, 2002 7:10 AM
Subject: Re: Temporary picts


 if you are importing custom icons from HC,
 they will wind up in their own Stack BackGround.
 
 Go to Edit BackGrounds and click on HC Icons in
 the Stack Backgrounds window right below the Card
 Groups window.

 No, haven't imported anything.  But I will be updating several
 programs soon that were built in HC, and I need to determine which
 ones I can port to MC without losing any of the goodies, and without
 spending a lot of time with the transition.  Apparently several of
 them will need to remain in HC, as MC cannot easily handle some of
 the things HC does with graphics and sounds.

 My programs rely heavily on graphics and sounds.  In one sequence of
 Pork Barrel, I have several soundchannels playing at once, while
 other handlers are running.  And many of my programs play several
 sounds in succession while other handlers are running.  I did this
 with my current MC project, but it's klutzy and the sounds don't
 always play smoothly.  Required a lot of extra coding.  When I get a
 chance, I will upload the code in case anyone knows of a better way.

 And of course the program which duplicates an image 50-100 times
 across the screen in an animation... nope, doesn't excite me to
 create 100 objects for one small animation sequence in a program
 that's already done and out there.  Better to leave the project in
 Hypercard and just perform the few minor updates it needs.  Was just
 kinda hoping to move some of them to cross platform and OSX and all
 of them to Metacard... *sigh*

 Far as I can tell, very few of my HC programs will port easily and
 smoothly to MC.  The only one being a business program.  Very few
 sounds and graphics there :-)

 --
 --Shareware Games for the Mac--
 http://www.gypsyware.com
 ___
 metacard mailing list
 [EMAIL PROTECTED]
 http://lists.runrev.com/mailman/listinfo/metacard


___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard



Re: Temporary picts

2002-03-18 Thread erik hansen


if you are importing custom icons from HC,
they will wind up in their own Stack BackGround.

Go to Edit BackGrounds and click on HC Icons in
the Stack Backgrounds window right below the Card
Groups window.
  
--- Scott Rossi [EMAIL PROTECTED] wrote:
 
 On Monday, March 18, 2002, at 04:43  AM, Shari
 wrote:
 
  If I wanted to show a temporary graphic in
 Hypercard, I'd use addColor 
  colorPict.
 
  I could use this to create 50 duplicate
 images of a graphic, moving 
  across the screen randomly, leaving a trail
 of graphics behind. Without 
  needing 50 objects to link the graphics to.
 
  Is there a way to do this in Metacard?  Show
 a graphic temporarily, not 
  linked to an object (not requiring that I
 have 50 or 100 image 
  objects), then be able to wipe the images
 away with a visual effect?
 
 One way is buttons.  You won't need 50 image
 objects, but you will need 
 50 button objects, of which you set the icon to
 the ID of whatever 
 source image you have.
 
 set the icon of btn movingBtn1 to the id of img
 sourceImg
 repeat with x = 2 to 50
clone btn movingBtn1
set the name of last btn to (movingBtn 
 x)
 end repeat
 
 You should wind up with 50 buttons all
 referencing the same source image 
 (make sure you disable all the properties of
 the original button so it 
 doesn't look or respond like a button object).
 
 Regards,
 
 Scott Rossi
 Creative Director, Tactile Media
 [EMAIL PROTECTED]
 http://www.tactilemedia.com


=
[EMAIL PROTECTED] http://www.erikhansen.org

__
Do You Yahoo!?
Yahoo! Sports - live college hoops coverage
http://sports.yahoo.com/
___
metacard mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/metacard