Universal Patch Converter

Bonjour

Nieuwkomer
Lid sinds
6 januari 2011
Berichten
11
Ik wilde om te controleren of er sprake is van op het forum die geïnteresseerd zijn in een "universeel" patch converter dwz een programma zoals Sound Quest Midi Quest, maar dat is de eerste plaats bedoeld om gebruikt te worden om patches te converteren van het ene naar het andere synthesizer (met soortgelijke synthesizer technologie en architectuur)?

Als er geen goede hobby programmeurs die de tijd en het verlangen om te helpen kon men geld in te zamelen om hen tijd te besteden om te werken aan een dergelijke het programma.
Men zou kunnen stellen verschillende fabrikanten (bv. Sound Quest of synth fabrikanten) als ze bereid zijn te helpen met de codes en andere dingen (misschien zelfs geld? Twijfelachtige?) Om de realisatie van de toepassing ervan te vergemakkelijken.

Dit hoeft niet te worden beperkt tot www.synthforum.nl maar als er leden hier dat ook een wisselwerking op andere fora (gearslutz, sequencer.de etc) het voorstel zou bestaan uit leden van die pagina's ook.

Er is een programma gemaakt door Kenneth Martinez (Sourcefourge Generic Synth Patch Omzetting http://www.nmrailrunners.org/synth/gpc/index.html) dat een kan worden voortgebouwd op als hij zijn goedkeuring geeft.

Wat zou het kosten om een programma dat converteert namelijk tussen twee synthesizers (zoals twee VA-synths als JP8080 en Yamaha AN1X) te creëren, zodat men zou weten ongeveer hoeveel het allemaal zou kosten in totaal?
Is er iemand die kennis heeft van programmeren?

Dit geldt natuurlijk ook voor het omzetten van patches voor software synths ......: D





I wanted to check if there are any on the forum who are interested in a "universal" patch converter ie a program like Sound Quest Midi Quest, but that is
primarily intended to be used to convert patches from one synthesizer to another (with similar synthesizer technology, and architecture) ?
If there are any good hobby programmers who have the time and desire to help out one could collect some money to get them to devote time to work on such a
program.
One could ask different manufacturers (eg Sound Quest or synth manufacturers) if they are willing to help with codes and other things (maybe even money?
Questionable?) To facilitate the realization of the application.
This doesn't need to be limited to www.synthforum.nl but if there are members here that also interact on other forums (gearslutz, sequencer.de etc) the proposal
could include members of those pages also.
There is a program created by Kenneth Martinez (Sourcefourge Generic Synth Patch Conversion http://www.nmrailrunners.org/synth/gpc/index.html) that one
could build upon if he gives his approval.
What would it cost to create a program that simply converts between two synths (such as two VA-synths as JP8080 and Yamaha AN1X), so that one would know
roughly how much it all would cost in total?
Is there anyone who has knowledge of programming?
This obviously also applies to converting patches for software synths ......: D
 
Ik vind dit wel een interessant idee. Al is het maar om voor de lol te zien hoe "dezelfde" patches klinken op een andere synth. In hoeverre deze presets hetzelfde zullen en kunnen klinken weet ik niet, want elke synth is toch anders. Maar indien je niet uit bent op perfecte kopieën lijkt dit mij wel leuke resultaten te kunnen geven.

De vraag is dan wel hoe je om wil gaan met de verschillen tussen de synths. Wat als synth A een 2-pole LP-filter heeft en synth B een 4-pole filter. Wordt de midi-waarde (0-127) dan zo toegepast in zowel A als B? Of wordt er een of andere berekening gemaakt waardoor synth B de 4-pole filter eerder binnen de waarden van een 2-pole filter gebruikt? En wat is de referentie tegenover synth C, D en E? En zo zijn er nog wel een paar dingen die moeten doordacht worden. Ik denk dat beide benaderingen wel interessant kunnen zijn.
 
Is er iemand die kennis heeft van programmeren?
Da's niet genoeg. Je hebt op z'n minst die twee synths nodig en zeg, 6 maanden of zo ervaring met het zelf programmeren van patches from scratch.

Bijvoorbeeld: de filtersteilheid van de AN1x is niet echt volgens de benaming (24db is meer 18db). Dat betekent dat als je patches omzet je dit soort dingen in de gaten moet houden. Bij een Roland JD800 corresponderen de filter cutoff/resonance waarden alleen met die van een modernere JV/XP synthesizer als je ze met een factor 0.7 vermenigvuldigd of zo.

Wat je hier beschrijft is namelijk allesbehalve eenvoudig, en je krijgt het sneller en beter gedaan als je gewoon synthese leert; je zult dingen altijd naar smaak moeten aanpassen vanwege verschillende filters, mogelijkheden etc, en bij sample-based synths moet je er toevallig maar mazzel mee hebben dat er een equivalent van de "Pole" of "Lore" sample is.

Wil je de poging zelf wagen, leer dan Python. Uiteindelijk de hele zwik aan een mooie GUI lijmen is iets wat je achteraf nog kunt doen: kijk eens eerst of je gewoon getal-gebaseerde conversie in de command line aan de gang krijgt. Als dat niet lukt is zelf eerst een mockup GUI bouwen met een dikke "Convert!" knop in VB of .NET die dan 1.5 jaar niks doet omdat je nog niemand hebt kunnen vinden voor het moeilijke deel ook volstrekt zinloos.

Bijv. :

"Synth 1 heeft een maximale attack van 10 seconden, synth 2 maar 5, dat wil dus zeggen dat als synth 1 de attack op 50% heeft staan die op 100% moet staan bij synth 2, en patches van synth 1 die een langere attack hebben die klinken niet hetzelfde."

"Synth 3 heeft wel FM, synth 4 niet, dus als je converteert moet je het op deze wijze faken of heb je gewoon pech met de patch."

"Synth 5 heeft een simpele ADSR envelope, Synth 6 heeft een Time-Level envelope. Als T/L zo-en-zo staat moet de ADSR zo-en-zo".

Je ziet dus al dat je eigenlijk vertaalslagen moet bouwen van de ene synthesizer naar de andere. Als er N synthesizers zijn betekent dat je dus N*N-1 (naar zichzelf converteren hoeft natuurlijk niet) vertaalslagen moeten zijn - en reken maar uit hoeveel werk je dat gaat kosten.

Dus. Synthese. Met een beetje naslagwerk binnen 3 maanden heel aardig onder de knie te krijgen, en altijd nuttig :)
 
Ik vind dit wel een interessant idee. Al is het maar om voor de lol te zien hoe "dezelfde" patches klinken op een andere synth. In hoeverre deze presets hetzelfde zullen en kunnen klinken weet ik niet, want elke synth is toch anders. Maar indien je niet uit bent op perfecte kopieën lijkt dit mij wel leuke resultaten te kunnen geven.

De vraag is dan wel hoe je om wil gaan met de verschillen tussen de synths. Wat als synth A een 2-pole LP-filter heeft en synth B een 4-pole filter. Wordt de midi-waarde (0-127) dan zo toegepast in zowel A als B? Of wordt er een of andere berekening gemaakt waardoor synth B de 4-pole filter eerder binnen de waarden van een 2-pole filter gebruikt? En wat is de referentie tegenover synth C, D en E? En zo zijn er nog wel een paar dingen die moeten doordacht worden. Ik denk dat beide benaderingen wel interessant kunnen zijn.

I'll answer in english if that's OK?:D
I think that initially it should be about direct conversion of sysex, so you convert a cutoff value of for instance 57 on synth A to value 57 on synth B.
This would be a basic approach to the app just to get things started.
Later on one could modify the program and incorporate different modes of converting.
Something like Direct mode, Accurate emulation mode, Synthesis adaptation mode etc etc.

So yes I agree with you, both/all conversion types are useful.:D
 
Da's niet genoeg. Je hebt op z'n minst die twee synths nodig en zeg, 6 maanden of zo ervaring met het zelf programmeren van patches from scratch.

Bijvoorbeeld: de filtersteilheid van de AN1x is niet echt volgens de benaming (24db is meer 18db). Dat betekent dat als je patches omzet je dit soort dingen in de gaten moet houden. Bij een Roland JD800 corresponderen de filter cutoff/resonance waarden alleen met die van een modernere JV/XP synthesizer als je ze met een factor 0.7 vermenigvuldigd of zo.

Wat je hier beschrijft is namelijk allesbehalve eenvoudig, en je krijgt het sneller en beter gedaan als je gewoon synthese leert; je zult dingen altijd naar smaak moeten aanpassen vanwege verschillende filters, mogelijkheden etc, en bij sample-based synths moet je er toevallig maar mazzel mee hebben dat er een equivalent van de "Pole" of "Lore" sample is.

Wil je de poging zelf wagen, leer dan Python. Uiteindelijk de hele zwik aan een mooie GUI lijmen is iets wat je achteraf nog kunt doen: kijk eens eerst of je gewoon getal-gebaseerde conversie in de command line aan de gang krijgt. Als dat niet lukt is zelf eerst een mockup GUI bouwen met een dikke "Convert!" knop in VB of .NET die dan 1.5 jaar niks doet omdat je nog niemand hebt kunnen vinden voor het moeilijke deel ook volstrekt zinloos.

Bijv. :

"Synth 1 heeft een maximale attack van 10 seconden, synth 2 maar 5, dat wil dus zeggen dat als synth 1 de attack op 50% heeft staan die op 100% moet staan bij synth 2, en patches van synth 1 die een langere attack hebben die klinken niet hetzelfde."

"Synth 3 heeft wel FM, synth 4 niet, dus als je converteert moet je het op deze wijze faken of heb je gewoon pech met de patch."

"Synth 5 heeft een simpele ADSR envelope, Synth 6 heeft een Time-Level envelope. Als T/L zo-en-zo staat moet de ADSR zo-en-zo".

Je ziet dus al dat je eigenlijk vertaalslagen moet bouwen van de ene synthesizer naar de andere. Als er N synthesizers zijn betekent dat je dus N*N-1 (naar zichzelf converteren hoeft natuurlijk niet) vertaalslagen moeten zijn - en reken maar uit hoeveel werk je dat gaat kosten.

Dus. Synthese. Met een beetje naslagwerk binnen 3 maanden heel aardig onder de knie te krijgen, en altijd nuttig :)

I think my last reply answers some of the questions because it will start off as a basic conversion app.
And of course I know how to convert patches between patches but we're not talking about 3-4 patches but thousands so that will take some time to do manually.
AND the primary aim isn't to create an identical replica of the original sound but a new list of settings that can be used as a starting point for further tweaking.
 
I'll answer in english if that's OK?:D
I think that initially it should be about direct conversion of sysex, so you convert a cutoff value of for instance 57 on synth A to value 57 on synth B.
This would be a basic approach to the app just to get things started.
Later on one could modify the program and incorporate different modes of converting.
Something like Direct mode, Accurate emulation mode, Synthesis adaptation mode etc etc.

So yes I agree with you, both/all conversion types are useful.:D

It's ok to answer in English. I hadn't noticed you weren't a native dutch speaker until after my reply. I guess that's what sleep deprivation does to people :)

So, about the application... I think the first method should be relatively easy to program, although many patches wouldn't be able to be (fully) converted, because all the elements should be present in both synths. So if synth A has got an LFO for modulating pitch and synth B has only got one for modulating the filter frequency, you'll lose a big part of your sound. Nevertheless, as you've said, it could still be useful to some extent.

To build a more advanced conversion engine seems to be near impossible to get really right. And the biggest problem wouldn't be the programming itself, but the rules to set out for the programmer to follow. You would need some kind of reference for all kind of parameters (delay time, attack time, cuttof frequency, ...) and determine the relation between that reference parameter and the values in the different synths. Sometimes that can be as easy as reading the manual and finding that the delay time is max. 500ms, but when you'll have to determine these things by yourself it will be a complete nightmare. I think if you'd be willing to make such a nifty conversion scheme (preferably along with the midi cc's & sysex-data that correspond to each parameter), you'll have much better luck finding somebody to program it all, since you'd have already done the biggest part of the job.
 
I've created a Facebook group called Universal Patch Converter so those of you who are interested are welcome to join.
 
Which programming language would be the most suitable for this project?
Jsynthlib uses Java so maybe that's the way to go?
 
Back
Top