<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Yushen,<div><br></div><div>I thought a little bit more about why you were only hearing a single sample being used in your database, and what I wrote in my last email was wrong...  Um...  Basically, once the synthesizer chooses an SDIF file for a particular note it sticks with that file.   This wasn't what I originally intended to do when I started working on the synthesizer, but I never got to the point where switching SDIF files made the synthesis results sound better;  it always made them sound worse... In any case if you want to hear all your audio files being used you need to make sure a new voice is being generated for each new note.  The algorithm for creating new voices that's being used in the command line application is really very primitive.  I was just using it for testing, and my intention was that the control source would be responsible for creating new voices by sending a new MIDI note on message or an OSC control message.  What the command line application is doing is checking to see whether the pitch has changed by about a semitone, and if it has, then it allocates a new voice.  (See the file ControlStreamSegmentator)  If in your tests only one or two files were being used, I would think it must be because the test score you were using doesn't contain jumps in pitch of a semitone.  Could you send me the test score that you were using?</div><div><br></div><div>With regards to the loopMaker application, I just tried running that myself, and as I couldn't remember how it worked, at first I had the same problems as you did.  But then I thought about why it wasn't finding any loop points, and I remembered that if the loop points were too close the loop sounded bad.  And in the file LoopPointExtractor I had made a rule that frames that were too close together couldn't be chosen as loop points.  The method that actually does this is called isCloseToFrameAlreadyReported, and as you can see, at the moment it's not disallowing loops of less than a second:</div><div><br></div><div><div>bool LoopPointExtractor::isCloseToFrameAlreadyReported(DistanceMeasure& currentDistanceMeasure, std::vector<CLAM::DistanceMeasure>& reportedDistanceVector)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>int minimumFrameSeparation = 20;</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>int oneSecondFrameSeparation = 173;</div><div>... and so on...</div><div><br></div><div>You might want to change this to a smaller value, or alternatively, you could just use sound files with a steady state portion that is longer than a second.  If you try to use samples with a very short steady state portion, then you're going to need to build some sort of jitter algorithm into your synthesizer so that the produced note doesn't sound too static -- just like they did in Salto...</div><div><br></div><div>Best,</div><div>Greg</div><div><br></div></div><div><br></div><div><div><html>On May 22, 2008, at 9:11 AM, Han, Yushen wrote:</html><br class="Apple-interchange-newline"><blockquote type="cite">Hi, Greg and Pau<br><br>I did some tests on SDIF files out of wave files and so far it works fine.<br>Now I am trying to find out the loop of a single note and store the loop in .xml file.<br>Here I have questions for each of you separately:<br> <br>(1) for Greg<br>I compiled your makeLoop (from the examples folder) successfully.<br>But if I specify the start time and the end time of the steady state, makeLoopExe always "calculate 0 EarthMover's distance".<br> If I do not specify the time, makeLoopExe would never finish. ( it gives dots ".................." )<br><br>Did you notice this problem before? Maybe it only happened to me.<br><br>Also, in your previous message you said you "turned off the database lookup function".<br> Can you please explain more about what "the lookup function" is supposed to do and why you turned it off?<br><br>( I could see that you disabled the residual part in the SDIFInConfig. But I am not sure if this is what you were talking about... )      <br> <br>(2) for Pau:<br>So far we have not decide which woodwind instrument we should work with.<br>Should I work on Saxophone or Oboe?<br>Do we have annotated saxophone notes from SALTO with all loop identified?<br><br> I cut and labeled 72 oboe notes recorded in an anechoic chamber by hand (24 pitches C4-B5 * 3 different dynamics).<br> It will take a while to find the loop for those notes. Before I proceed, I would like to make sure I am working on the right instrument :-) <br><br><br>Best regards,<br>Han, Yushen<br><br><div class="gmail_quote">On Sun, May 18, 2008 at 10:35 AM, Greg Kellum <<a href="mailto:greg.kellum@gmail.com">greg.kellum@gmail.com</a>> wrote:<br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br> <br> In response to point 3, I turned off the database lookup function at<br> some point, because of an exception that kept occurring...  I can't<br> remember whether I eventually fixed this or not.  I'll have to<br> check...<br> <font color="#888888"><br> Greg<br> </font><div><div></div><div class="Wj3C7c"><br> On Sat, May 17, 2008 at 6:04 PM, Han, Yushen <<a href="mailto:yushen.han@gmail.com">yushen.han@gmail.com</a>> wrote:<br> > Hello, Pau<br> ><br> > Thanks for your concerns. Here is some update from me.<br> ><br> > 1. Based on Greg's last update, I am able to compile the command-line<br> > version of continuousExcitationSynthesizer.<br> > Also, I can read the XML file where the looping information is stored with<br> > his metadata reader.<br> > As for SDIF, I am able to use CLAM/examples/SDIF2Wav and Wav2SDIF to convert<br> > between SDIF and WAV.<br> ><br> > 2. In the NetworkEditor, I still could not have "SDIFDatabaseProcessing".<br> > (Greg had reported that he fixed this problem.)<br> > Right now I don't really use the network editor but the command-line<br> > executable version.<br> ><br> > To resume our remote debugging, last time you concluded<br> > "It seems your OS is not loading some of the processings. To confirm<br> > this: how many processings do you have in the 3D Audio category?<br> > You should see 14."<br> > However, I only had 1 processing - VectorBasedArrayPanning available after<br> > compiling that 3D plugin.<br> ><br> > 3. I did some experiment with 12 oboe notes in one octave and concluded that<br> > if there is only one source sounding,<br> > the first 4 harmonics are quite in phase ( I only observe the first 4<br> > harmonics). Therefore I was thinking that we may disregard the instantaneous<br> > phase in the SMS. However, this is not true for an orchestra.<br> ><br> > "- [2+ days] To investigate the effect of slowly-changing phase changes<br> > between different partials<br> >     on the perception of the harmonic sound. If the slowly-change phase did<br> > not affect the sound<br> >     very much ( suppose all harmonics are all in phase ), further<br> > simplification in synthesis<br> >     could be done. This experiment is open to suggestion from the mentor."<br> > I will write to you separately about that and more raw ideas.<br> ><br> > 4. Right now I am trying to modify Greg's code and Wav2SDIF example for:<br> > "- [1-2 days] To synthesize with SMS with the analysis result (in a simple<br> > setting).<br> >   To produce some audible result to evaluate the performance of SMS<br> > analysis/transformation."<br> ><br> > It seemed that the Wav2SDIF example had done the majority of the work.<br> > I am studying the code but I don't know if I could improve this part.<br> > Do you recommend me to read some updated documents on SDIF?<br> > <a href="http://www.cnmat.berkeley.edu/SDIF/" target="_blank">http://www.cnmat.berkeley.edu/SDIF/</a> does not seem to be very recent.<br> ><br> > 5. I apologize for my late updating.<br> > I am thinking of keeping a blog on this project...<br> ><br> > Best regards,<br> > Han, Yushen<br> ><br> ><br> ><br> ><br> > On Sat, May 17, 2008 at 7:40 AM, Pau Arumí <<a href="mailto:parumi@iua.upf.edu">parumi@iua.upf.edu</a>> wrote:<br> >><br> >> Hello Yushen,<br> >><br> >> how is all doing? I'd like to hear in what you are up regarding your<br> >> project.<br> >><br> >> are you still blocked with the plugin installation? in that case is it<br> >> possible for you have also a linux box?<br> >><br> >> i'd like you to write some raw ideas about what to be implemented and<br> >> some planning, and then i'll comment and keep refining the planning.<br> >> is that ok?<br> >><br> >> cheers!<br> >> pau<br> >><br> >><br> ><br> ><br> </div></div></blockquote></div><br></blockquote></div><br></div></body></html>