< Back to IRCAM Forum

Dynamically changing f0 parameters / access to source code

Dear ISiS developers,

thank you very much for creating and releasing such a great software! It is awesome to use a concatenative synthesis singing software without all the hassle of restrictive GUIs.

Recently I wanted to dynamically change f0 segment parameters (for instance vibFreq or startFreqDevCents) on a note-to-note basis. I understand that I can alter the XML files created by ISiS, but I would prefer if I could set them immediately at the initial score.cfg file (it seems a bit cumbersome and ineffective to first render a score, afterwards adjusting the XML files and finally rendering everything again with additional flags for setting the altered XML files as input parameters). Therefore I wanted to ask:

  1. Is there any way to pass values for these parameters on a note-to-note level in the score file which I missed?
  2. Is there a way how I could have access to the source code to adjust the score parser method Chant.singing_engine.input.getInputs (or write a new method)? (this may be a more broad question, which may need another thread, but I would find it generally enriching to be able adjusting all the Chant.singing_engine module functions)
  3. Or, if nothing else is possible, is there a way to ask ISiS to build the XML files without rendering the sound files and doing all the other expensive computations?

Best, Levin

Hello Levin

thanks for the kind feedback. Here below the answers to your questions.

  1. Is there any way to pass values for these parameters on a note-to-note level

Not directly. Note depended parameters in ISiS are handled via the style description files. These are decision trees that select note level parameters according to a variety of musical contexts. Please look into your ISiS folder under config_files/styles//f0Trees_sklearn_v0.19/vibParamsModel.pdf
to see the tree for vibrato parameters of any of the available styles. Next to the pdf you have the tree as written by sklearn v0.19 (note that you better dont’ use another version of sklearn here because they change the tree format quite often.).

If you work with python/sklearn you should be able to generate your own trees that as far as I see you can then use in ISiS

If you are interested in this direction I could check this a little bit more closely to see whether you can select new style directories on the command line, I am pretty sure his works. I could also publish the list of parameters you could use in such a tree.

  1. Is there a way how I could have access to the source code to adjust the score parser method

I perfectly understand the interest to be able to manipulate the sources. Unfortunately, the current policy is not to share it.

That said, changing the score parser would not help at all. The score is dead simple and does not much, after the parser the score is translated into an internal representation, to trigger unit selection and style generation. The style engine is not easy to change because there are number of invariants that need to be fulfilled so that the backend can handle the generated style contours together with the information form the unit selection.

  1. Or, if nothing else is possible, is there a way to ask ISiS to build the XML files without rendering the sound files and doing all the other expensive computations?

This is indeed the best way to go! It is a long standing project, that I have not yet had the time to implement. I don’t foresee this to be very difficult, but the problem is I don’t have much time and for the moment there is nobody else in the team that knows the software sufficiently well to do that kind of changes.

So for the moment I don’t have a direct positive answer.
All the best
Axel

Hello Axel,
thank you for the detailed and dedicated reply!

Cool, that’s super interesting! I already tried it and it indeed works with the CLI, it detects new directories when calling them via the -ss flag.

I see. Thank you though for the explanation of the internal processing!

Okay, but then I’ll patiently wait until it will be possible to render the XML files without sound and until then have more coffee breaks to bridge the doubled rendering times :wink:

Best, Levin