I wasn’t aware of this, sounds great! (Pun intended) I will have to go back to my application and experiment a bit before the next batch of student recordings lands on my desktop. (You know, pun…)
Tore > 12. feb. 2020 kl. 21:47 skrev Devin Asay via use-livecode > <use-livecode@lists.runrev.com>: > > Tore, > > You can do audio recording on Mac now using the mergMicrophone library. It > works great, and I believe is available in every edition of LC, including > Community. > > Devin > >> On Feb 12, 2020, at 12:11 PM, Tore Nilsen via use-livecode >> <use-livecode@lists.runrev.com> wrote: >> >> Devin, >> I haven’t used callbacks much, and so far I haven’t run in to any problems. >> If missing callbacks is still an issue, then I agree with you that setting >> startTime and endTime is the best option. I use this method in a small >> application I have made for myself where I write comments to audio files >> handed in by my English students. They can then control playback of the >> segments I have commented on by clicking links in the field that shows the >> comments. The lack of audio recording capability on Mac has forced me to use >> written feedback where I otherwise would have preferred using two players >> and audio feedback. >> >> Regards >> Tore >> >>> 12. feb. 2020 kl. 19:57 skrev Devin Asay via use-livecode >>> <use-livecode@lists.runrev.com>: >>> >>> Tore, >>> >>> I would agree if callbacks were 100% reliable. I have tried them in the >>> past and found that in some cases they were missed. I never had any trouble >>> when using time indices. But I should say that I haven’t needed to do this >>> for several years, and the callbacks in the new player object might be >>> completely reliable. >>> >>> In other ways creating time indices makes your application more flexible, >>> however. It’s dead simple, for instance, to set up an application where you >>> can click on a line of text and play just that line. Set the startTime, set >>> the endTime, set the playSelection to true, start playing. Done. That would >>> be a little more challenging if all you had was callbacks. >>> >>> One of the great things about LiveCode is that there is almost always more >>> than one way to do what you want. >>> >>> Regards, >>> >>> Devin >>> >>> >>> On Feb 12, 2020, at 9:55 AM, Tore Nilsen via use-livecode >>> <use-livecode@lists.runrev.com<mailto:use-livecode@lists.runrev.com>> wrote: >>> >>> Using callbacks negate the need to fiddle with duration or timescales and >>> start or stop times. It uses the sampling intervals as is, regardless of >>> time. In my opinion it is much easier than trying to calculate start and >>> end times. You can easily handle large audio/video files using callbacks. I >>> would recommend using one file per poem though, this simplifies the >>> handling of the messages sent from the player. You can basically use the >>> same message for all files, resetting a counter variable each time you load >>> a new file to handle with line you would like to act upon. >>> >>> You could also store the callbacks for each audio file in a text file and >>> set the callbacks as a part of the handler used to load each audio file. >>> >>> Regards >>> Tore >>> >>> 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode >>> <use-livecode@lists.runrev.com<mailto:use-livecode@lists.runrev.com>>: >>> >>> Graham, >>> >>> Take a look at the duration and the timeScale properties of player objects. >>> By dividing duration by timeScale you get the length of the video in >>> seconds. >>> >>> >>> put the duration of player “foo” / the timescale of player “foo” into >>> totalSeconds >>> >>> What you are contemplating is very doable, but you’ll have to do a fair >>> amount of work to do to get the synching right. You can take one of several >>> approaches: >>> >>> - Calculate times as above to predict when to show/highlight the next line. >>> Can be tricky with long video files and rounding errors. >>> >>> - Check the currentTime property of the player to determine the startTime >>> and endTime of each spoken line, and set the playSelection of the player to >>> true. When the played segment ends, immediately load the following start >>> and end times and play again. Something like this, from memory: >>> >>> set the startTime of player “foo” to 444 >>> set the endTime of player “foo” to 999 >>> set the currentTime of player “foo” to the startTime of player “foo” >>> set the playerSelection of player “foo” to true >>> start player “foo" >>> - Break up the video or audio file into separate files, one line per file, >>> then play each succeeding file when the previous one reaches its end. The >>> playStopped message is your friend here. >>> >>> Like I said, it’s doable, but takes a bit of thought and planning, creating >>> segment indexes, that sort of thing. >>> >>> Hope this helps. >>> >>> Devin > > Devin Asay > Director > Office of Digital Humanities > Brigham Young University > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode