At 10:38 AM -0400 5/2/01, Roy Pardi wrote:
>At 7:25 AM -0700 5/2/2001, Irv Kalb wrote:
>>I'll guess I'll answer my own question.  Bought it, downloaded it, 
>>got it started, ran into some difficulties, wrote SourceForce, they 
>>wrote me back within hours with the solution, and now my program is 
>>running fine.  I'd give that experience a huge thumbs up!
>>
>
>
>Hi Irv,
>
>I imagine you have already looked at and rejected Beatnik for some 
>reason. Wondering why. I was able to have it play midi files fine.
>

Hey Roy,

Yes, your assumption is correct.  I first tried to use Beatnik - and 
rejected it.  Here's the history.

I am trying to build a children's music game where kids can create a 
song by indicating on a staff a series of notes they want to play 
(quarter notes, half notes, whole notes, and rests).  When they are 
happy with what they have built, they can press a "Play" button to 
play their song.  They can go back and make changes and hit the play 
button as many times as they wish.  So, the basic idea is that I need 
to be able to build a song on the fly.

In order to play music on the fly, I first went the route of building 
up timing using a timer object and attempted to play back the notes 
whenever I got a call back from the timeout object.  Then we decided 
to use Beatnik for synthesized notes so we didn't have to get 
recorded notes from different instruments.  But, while the timout 
object called me back a regular intervals, when I used Beatnik to 
play the notes, the resulting sound timing was just not right. 
Instead of a strong beat, boom, boom, boom, boom, some were longer 
and some were shorter, boom, booom, booom, bom, bom, boooom, etc.  We 
then tried eliminated Beatnik and tried a series of recorded notes to 
see if the timing issue was in Beatnik or in Director.  It turns out 
that the timing problem occurred with both Beatnik and just using 
puppetSounds.

My next attempt was to use the new D8 sound object.  I figured I 
could create a "playlist" of notes and just tell the sound object to 
play the song.  However, there is a serious bug in D8 (admitted to by 
Macromedia) that play lists do not work correctly for short sounds. 
I told the sound object to play 8 notes, and we hear seven.  But it's 
non-deterministic, you can never correctly how it's going to fail.  I 
was excited about the Director 8.5 release because I heard that this 
bug was fixed in 8.5.  Well, good news, bad news.  The good news is 
that the timing issue was indeed fixed in 8.5.  I now build up a play 
list of notes, and when I play it, the timing works out perfectly.  A 
very strong beat.  The bad news is that when it transitions from one 
note to the next, there is a highly audible "click".  Since this game 
is to be used in association with a symphony orchestra, the client 
felt that this "click" was unacceptable.

So, back to the drawing board.  Finally, I got the idea of creating a 
MIDI song on the fly.  In researching this, I found that the Sequence 
XTRA from SourceForce allows us Director folks to create a MIDI song 
(using lists) and then play it back.  The result is a combination of 
perfect timing with no "clicks".

So, the short answer to your question is, whiile Beatnik will 
certainly play MIDI songs perfectly well, it has no facility for 
creating MIDI in Lingo.  The Sequence XTRA has the capability the 
create and playback MIDI songs on the fly in Lingo.

Irv
-- 

Lingo / Director / Shockwave development for all occasions. 
          
   (Home-made Lingo cooked up fresh every day just for you.)

[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/LUJ/lingo-l.cgi  To post messages to the list,
email [EMAIL PROTECTED]  (Problems, email [EMAIL PROTECTED])
Lingo-L is for learning and helping with programming Lingo.  Thanks!]

Reply via email to