< Back to IRCAM Forum

Synthesis with Transition


I am using the om-chant with the f0 and fof transitions (based on the tutorial patch 35) to synthesize a vocal track, from a mono chord-seq with 650 notes and about 20 minutes long. The synthesis has taken several hours, om is running with 100% cpu, but it seems that the synthesis process is not begin yet.
(Using the same patch to synthesize a 3-second sound with 10 notes takes about 45 second and works well with a super quality).

I wonder if the Chant synthesizer has a limit on the number of notes to be synthesized for each time, or is there maybe a better strategy or tools in Chant to get the similar quality of sound but more economic? Or is there some mistakes I could make in the organization of the Chord-seq.

Thank you very much in advance005.omp|attachment (404.9 KB)


Hi Jialin,

I suspect that it is heavy duty CPU process because of your 20 minutes chord-seq. Chant is somehow a little demanding on the cpu.
If you want i can test here on my linux to see if i get the same overload. But for that i will need the patch.


1 Like

Hello Karim,

Indeed, I will try to synthesize it in small segments this night. Here is the patch. Thank you for testing in advance!

Jialin005.omp (404.9 KB)

Hi again,

It seems that i am missing a function: formant-translate
Is it part of a library?


vowel-list-for-each-note.txt (832 Bytes)
functions.lisp (1.0 KB)

I forgot them, yes it is some temporal functions in my DIY lib :wink:
The textfile is the right inlet of the formant-translate, in case it was lost.
Actually, this will produce a list of (voice vowel) to match the length of the midi-notes.

Bonne soirée,

Hi Karim, I think I see more or less the reason of long time of calculation.
The calculation of x-transfer (for the transitions) in loop with a lot of points (this is the case when we add have vibrato) will take time. I met this issue in another project as well, and it is normal, only way to make it quicker I know, is to sample the bpf and reduce the point, and it will reduce the quality of vibrato as well.
I see the calculation is still running, with more patient (maybe another ) I will get the sound.

Yes indeed.

This code needs to be optimized. I am not sure that x-transfer is the only reason for this. But sure it is somewhere in ch-transitions that the computing is hanging…


1 Like

I tried to segment them into small pieces and then use sound-sequence and sound-silence to connect them together. It became very quick and in 4 hours (Before it was 3 days without finishing) all are done.
So the long calculation exist only when there is a long chord-seq input.
I upload some practical functions here, together with the patch, for chord-seq segmentation by pause and audio sequenced by onset, just in case if there is someone
who could meet the same situation as me.

Thank you Karim for the ideas and nice weekend afternoon,

long-chord-seq-splitter-sequencer.lisp (4.9 KB)

zzz_seg-reconstruct_rev.omp (139.7 KB)

Great Jialin,

Thanks again for your contributions and very accurate reports.


Dear K,

here we have a patch and a lisp code.

How can I include the lisp file in order to work properly with a patch ? I will create a new topic,

Thanks in advance,


Hi Jialin,

Thanks for sharing this process !

Have you come across the ISiS the Ircam Singing Synthesis, it works like a charm !

@beller have made a device for it : https://forum.ircam.fr/projects/detail/max-isis/

With a virtual Choir example of his own : â„— Si je coupe la lune en deux |

Hope it helps




Open your lisp file using om’s listener and evaluate all (cmd+y)
just put the .lisp file into the user folder in your workspace folder restart the workspace and there you go.


Thank you Nadirb for the suggestions and experiences!
I will check it then! Have a nice evening.



It works well when I put the file in user folder.

But when I put the code on the Lisp buffer and [cmd] + y

I have that :

OM > cs->events
OM > events->cs
OM > cs-events_4
OM > cs-segment-pause
OM > cs-segment-pause-onset
OM > sound-sequence-list
OM > hidden-file-p
OM > directory-sort
OM > hidden-file-filter
OM > pdp_sound-name-onset
Loading patch: /Users/lotus/Desktop/Untitled/elements/zzz_seg-reconstruct_rev.omp
OM > "Loading library OM-Chant - v. 3.0"

 OM-CHANT 3.0 (c) IRCAM 2010-2019
 Control of CHANT in OpenMusic

OM > "Warning: replacing player of #<chord-seq 4020078A4B> with default player: midi-player (see 'force player' options in the MIDI preferences)."
OM > "Lisp fonction CS-EDIT not found; this box is dead"
OM > "ompatch 'zzz_seg-reconstruct_rev' was upgraded to OM 6.19"

and all is dead in the patch


Sorry , i was not clear:
DON’T put the file ON the lisp buffer. Instead:

  1. click on the listener
  2. in its menu choose file->open
  3. open the file in question
  4. evaluate the file (cmd+y)

If the functions after that are dead:

  1. just click on the patch in question
  2. right+click (or cmd+click in the patch)
  3. choose in the contextual menu: “last saved”

For more information if needed please do consult OpenMusic’s documentation here:


Thank you it’s ok… works fine