Do I need to calculate it myself and set each photo to run for a certain time?
This is one way to get the job done. If you music runs for 3 minutes, and you have 60 photos, set each photo to be displayed for three seconds. If the music runs for 3:10, then you can start out with a 3 second duration for the photos, and add an extra second to the duration of ten of them to make the time come out right.
In your post in the iPhoto forum, you mentioned using transitions. Since you want to make certain groups of photos match the duration of a piece of music
and also add transitions, then I suggest a slightly different process. You will still be using iMovie to put the project together, so the basic directions that you have been given will still be the same. This is what I would do (and have done) in your situation.
1. Start in iPhoto with the photos that you wish to be grouped to be displayed with a given song.
2. Create a slideshow of these photos. In the settings option, you will be able to select transitions. A time-saver here is that you will also be able to go to the "Settings" and choose the option to "Fit the slideshow to Music". You won't have to figure it out yourself as I described above. If you choose, you can also use the default transition, which will also save time. The default transition is "Dissolve". If you wish to change that, do that in "Settings" as well. You can also make changes for individual photos, including the transition by selecting "Adjust".
3. Once your slideshow is looking the way you want, go to File>Export. This will create a QuickTime movie of this slideshow and will be saved in your Movies folder.
4. While working in iMovie, go to File>Import, and select the movie of your slideshow.
5. Repeat this procedure for each short slideshow that is coordinated with a piece of music.
6. You can still add your voiceover as I described in my earlier post.
If you have any other questions, feel free to ask.
Good luck with your project.