RE: Temporary picts
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
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
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
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... >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 -- --Shareware Games for the Mac-- http://www.gypsyware.com ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Temporary picts
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: Repeating sounds [was Re: Temporary picts]
>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
>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
RE: Temporary picts
Glen, The trouble I encountered was that the sounds are in conjunction with either an "answer" dialog or a stack that opens instead of the "answer" dialog to impart information while the sounds are playing. Both "answer someInfo" and opening a stack messed up the works, preventing the sounds from playing properly. Shari >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 -- --Shareware Games for the Mac-- http://www.gypsyware.com ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Temporary picts
On Thursday, March 21, 2002, at 07:20 AM, Shari 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 :-) You might use Graphic Converter to convert all your images for you. You can tell it batch process a whole folder. www.lemkesoft.com -Mark ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Temporary picts
"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: Temporary picts
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 playe
Repeating sounds [was Re: Temporary picts]
Shari wrote: > > >>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* Try this (watch out for line wraps): local theCurSnd on startSounds play "darn you.wav" go cd "info" of stack "dLog" as modeless send "playSnd" to me in 1 second end startSounds on playSnd if the sound is done then put "darn you.wav,aaah.wav,goodie.wav,oh yeah.wav,talk to you.wav" into theSndList put (itemoffset(theCurSnd,theSndList) mod the number of items in theSndList)+1 into theNextNum put item theNextNum of theSndList into theCurSnd play theCurSnd end if send playSnd to me in 1 second end playSnd on cancelMsgs play stop repeat for each line l in the pendingmessages if l contains "playSnd" then cancel (item 1 of l) end repeat end cancelMsgs You'd trigger it off by calling "startsounds". Whenever you want the sounds to stop, call "cancelMsgs". Unless your sounds are very, very short, there is no reason to call "playsnd" any more often than once per second, and you might be able to lengthen that amount of time even more depending on the length of your shortest sound. There's no point in piling up any more pending messages than necessary. -- 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
On 3/21/02 10:20 AM, "Shari" <[EMAIL PROTECTED]> wrote: > 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
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
>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
>>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
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
>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
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
Shari wrote: > I got so excited when this discovery opened up to me, my fella didn't > know what to do with me, I was up here hooting and hollering and all > revved up. He had to come see what the fuss was about :-) Heh. That's kind of what happened to me last night when I finally got my mt script to work. Those eureka moments are so much more intense if they follow a period of sustained frustration. :) -- 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
>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. Erik, Me too, and I did choose Metacard for it. I am very frustrated by the sound situation at the moment, but there are features you don't hear a lot about. Initially I was disheartened by the lack of choices of visual effects. Metacard had several, but was missing some of my favorites from Hypercard. Scott turned me on to "answer effect". You have every effect known to man available to you, through Quicktime. "answer effect" opens a dialog and you create an effect, which gets saved into the "it" variable. You end up with a very long string of characters, that "describe" this effect. In your program, you can store this string of characters in a global variable or custom property, and call it up. if the string is in global variable eyeballEffect global eyeballEffect show image someImage with visual effect eyeballEffect or if it's in a custom property called eyeballEffect on cd 1 get the eyeballEffect of cd 1 show image someImage with visual effect it I got so excited when this discovery opened up to me, my fella didn't know what to do with me, I was up here hooting and hollering and all revved up. He had to come see what the fuss was about :-) I created a little stack to create visual effects and store the string in a field, so that I could copy/paste it into my projects. 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
>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
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
>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
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
>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
>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
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
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
> > ...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 "
Re: Temporary picts
--- 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
>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
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
Re: Temporary picts
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 ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard