Rx: um operador zip que continua depois que um dos fluxos termina?

Estou procurando combinar fluxos (observáveis) que iniciam e terminam de forma assíncrona:

-1----1----1----1---|->
     -2----2--|->
[ optional_zip(sum) ]
-1----3----3----1---|->

Para o que eu preciso: Adicionando fluxos de áudio juntos. Eles são fluxos de "pedaços" de áudio, mas eu vou representá-los com números inteiros aqui. Portanto, há o primeiro clipe sendo reproduzido:

-1----1----1----1---|->

e então um segundo começa, um pouco mais tarde:

     -2----2--|->

O resultado de combiná-los por soma deve ser:

-1----3----3----1---|->

Mas o zip padrão é concluído se algum dos fluxos compactados terminar. Eu quero que esse opcional_zip continue, mesmo que um dos fluxos termine. Existe alguma maneira de fazer isso no Rx, ou eu tenho que implementá-lo modificando o Zip existente?

note: Estou usando o RxPy, mas a comunidade aqui parece pequena e os operadores do Rx parecem bastante universais entre os idiomas, então eu o marquei como rx-java e rx-js também.

questionAnswers(2)

yourAnswerToTheQuestion