Making Modulation Table Presets Accessible Across Projects
-
I've created some modulation table presets that are saved with my current project. Is there a file location that HISE will look in that I can put these that will make them available to all of my projects?
-
You can use absolute paths in the
include()
statement (I just checked it on OS X and it works there). However I strongly recommend avoiding it because you can't port it to another system, but while developing it might be OK.Do you need it just for developing or do you want to have a common file folder also for exported plugins?
-
I'm not sure I was clear with my original post. I've made some s-shaped and equal power x-fade gain modulation tables that I'd like to have available for other projects so I don't have to copy the files to each project. Are you saying these can be added using the
include()
command?
-
Did you know you can create table curves via scripting?
HiseSnippet 836.3ocsVstbRCDEdCPloEacTGe.xzeQGqoIPuPGGGagVbvdAFCV8e0sIKvZC6hIanRc7YyWIeCz8BPBRZAbFyvjImuy24vWN64raZFPcQggz.f1iZMrOBnsltyPBqa0tPLAT+Xf1i0OGFxPAFJnJC6CCCQd.MsruU.nsZNf75WuoBzGRbQwP.vkTrK5LbOLKF8yGdJ12uFzC0B2KA6cNrtKkTk5Si35IqtEnOz8FXGzEPAsL5fAXzsg.MK8REMCtw956NxjeUbvocp8wxHSyl0Mm4phoIvMJH.QXWxCGnoq8a9kl9IdXFMvgAYHdNyVg5MzoK8Vh5u9RbH9ZejvvF3v0jBFTsK12q43xVH.nkqYbQLqpH9b8ywd3I3wEymHcXDGQxxoVlokTtojj88IoZTeOQBtG4okPd4Tx6o5NtA39rXOBs8rQn2i5TNAY3UN9pTHyX.LvfA4BpEha8ZCYeiYGDqk.bRRJrgz1PvZiMe054WO+jnLCPgHVAKAbLX33TPwDtysLT+r42M2cZpPOuooZaZYrsgcwT3NSZskz2dDYwshKT12SPcdZtnJ4JthakmS.kjALhtsJ+siHtLLkXPIWPYnFjBal+64WM+OlwS61o4pJkvBn99nfz7Jl9BdfvJPh5cMJXK9JseDZLOdi1zso4Wr1TdSCiOClfHkTmfYM5ilXqdIGiXAl7xkDJ9kJIp7kIEZwPyNa.ppzD+oYGR3ipTuHeHa54WwddibvKVSMgTWjrPLaXx8D++OTuxD8BcCnSDsTuqoGO7Mes9gPjjdRLYRqS7PeKA5Oc5QortSu8M9PIWYFNFxf.sSz2ob7FwGTkeaPiu1ueeI59NCOa3WD1u6.Iglb66Zven8KlDToFf+tBlcwpforbufKxOUuIl41M8U4LoT4.fkXU1J0UY64n2QGrrt9IsaibYwhMmdsO8udJxRHk2SiXXRmygr.LuSP+hndN7iocQbkPHH+Pw4pYDiTJaKgsnx3fHdViOzcjSags1Hm1icB5IZetxUM2J5xWQhv0DQ9A.qp5vMrAxMjT5tG+7zqbcEEhWxUd5QTboinzRGwNKcD6tzQr2RGw9KcDkefHDe7xQQLZO0XA.7G7KiGmI
-
Ah I had no idea, that opens up some new possibilities for me, thanks
-
I've created a handy little module for generating these table curves. Drop it in a script slot after you've added your Midi controller modulators and then once you've used the script to apply the curves you can remove it. - no license on this just use it for whatever you want however you like.
<?xml version="1.0" encoding="UTF-8"?> <Processor Type="ScriptProcessor" ID="XFade Curves" Bypassed="0" Script="Content.setHeight(50); const var tableEnvelopes = Synth.getIdList("Midi Controller"); const var modulators = []; for (env in tableEnvelopes) { 	modulators.push(Synth.getTableProcessor(env)); } //---GUI const var cmbType = Content.addComboBox("Type", 0, 0); cmbType.set("items", ["Equal Power", "S-Shaped"].join("\n")); const var cmbCount = Content.addComboBox("Count", 150, 0); cmbCount.set("items", ["2", "3", "4", "5", "6", "7"].join("\n")); const var btnApply = Content.addButton("Apply", 300, 0); //FUNCTIONS inline function equalPower2(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1, 0, 0.25); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.setTablePoint(0, 1, 1, 1, 0.75); 			break; 	} }; inline function equalPower3(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/2, 0, 0.25); 			tableProcessor.setTablePoint(0, 2, 1, 0, 0); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/2, 1, 0.75); 			tableProcessor.setTablePoint(0, 2, 1, 0, 0.25); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/2, 0, 1); 			tableProcessor.setTablePoint(0, 2, 1, 1, 0.75); 			break; 	} }; inline function equalPower4(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/3, 0, 0.25); 			tableProcessor.setTablePoint(0, 2, 1, 0, 0); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/3, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/3+1/3, 0, 0.25); 			tableProcessor.setTablePoint(0, 3, 1, 0, 0.25); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/3, 0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/3+1/3, 1, 0.75); 			tableProcessor.setTablePoint(0, 3, 1, 0, 0.25); 			break; 		case 3: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/3+1/3, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/3+1/3, 0, 0.25); 			tableProcessor.setTablePoint(0, 3, 1, 1, 0.75); 			break; 	} }; inline function equalPower5(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/4, 0, 0.25); 			tableProcessor.setTablePoint(0, 2, 0, 0, 0.25); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/4, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/4+1/4, 0, 0.25); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.25); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/4, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/4+1/4, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, (1/4)*3, 0, 0.25); 			tableProcessor.setTablePoint(0, 4, 0, 0, 0.25); 			break; 		case 3: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/4*2, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/4+1/4*2, 1, 0.75); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.25); 			break; 		case 4: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/4*3, 0, 0.75); 			tableProcessor.setTablePoint(0, 2, 0, 1, 0.75); 			break; 	} }; inline function equalPower6(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5, 0, 0.25); 			tableProcessor.setTablePoint(0, 2, 0, 0, 0.75); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5*2, 0, 0.25); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.75); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5*2, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1/5*3, 0, 0.25); 			tableProcessor.setTablePoint(0, 4, 0, 0, 0.75); 			break; 		case 3: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5*2, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5*3, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1/5*4, 0, 0.25); 			tableProcessor.setTablePoint(0, 4, 0, 0, 0.75); 			break; 			 		case 4: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5*3, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5*4, 1, 0.75); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.25); 			break; 		case 5: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5*4, 0, 0.75); 			tableProcessor.setTablePoint(0, 2, 0, 1, 0.75); 			break; 	} }; inline function equalPower7(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/4, 0, 0.25); 			tableProcessor.setTablePoint(0, 2, 0, 0, 0.25); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4), 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4)*2, 0, 0.25); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.75); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4/2), 0.0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4+1/4/2), 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8, 0, 0.25); 			tableProcessor.setTablePoint(0, 4, 0, 0, 0.75); 			break; 		case 3: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4), 0.0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4*2), 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8*2, 0, 0.25); 			tableProcessor.setTablePoint(0, 4, 0, 0, 0.75); 			break; 		case 4: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4+1/4/2), 0.0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4*2)+1/8, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8*3, 0, 0.25); 			tableProcessor.setTablePoint(0, 4, 0, 0, 0.75); 			break; 		case 5: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4*2), 0.0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4*2)+1/8*2, 1, 0.75); 			tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8*4, 0, 0.25); 			break; 		case 6: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4*2)+1/8*2, 0, 0.75); 			tableProcessor.setTablePoint(0, 2, ((1.0/4)*2)+1/8*4, 1, 0.75); 			break; 	} }; inline function sShape2(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/2, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 2, 0, 0, 0.75); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/2, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 2, 0, 1, 0.75); 			break; 	} }; inline function sShape3(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/4, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/2, 0, 0.75); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.75); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/4, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/2, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1.0/4*3, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 4, 0, 0, 0.75); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/2, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/4*3, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 3, 0, 1, 0.75); 			break; 	} }; inline function sShape4(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/3/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/3, 0, 0.75); 			tableProcessor.setTablePoint(0, 3, 1, 0, 0); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/3/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/3, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1/3+1/3/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1/3+1/3, 0, 0.75); 			tableProcessor.setTablePoint(0, 5, 1, 0, 0.25); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/3, 0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/3+1/3/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1/3+1/3, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1/3+1/3+1/6, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 5, 1, 0, 0.75); 			break; 		case 3: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/3+1/3, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/3+1/3+1/6, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 3, 1, 1, 0.75); 			break; 	} }; inline function sShape5(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/3/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/3, 0, 0.75); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.75); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/3/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/3, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1.0/3+1/3/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1.0/3+1/3, 0, 0.75); 			tableProcessor.setTablePoint(0, 5, 0, 0, 0.75); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/3/2, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/3, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1.0/3+1/3/2, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1.0/3+1/3, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 5, 1.0/3+1/3+1/6, 0, 0.75); 			tableProcessor.setTablePoint(0, 6, 0, 0, 0.75); 			break; 		case 3: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/3, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/3+1/3/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1.0/3+1/3, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1.0/3+1/3+1/6, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 5, 0, 0, 0.75); 			break; 		case 4: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/3+1/3, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/3+1/3+1/6, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 3, 0, 1, 0.75); 			break; 	} }; inline function sShape6(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5, 0, 0.75); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.75); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1/5+1/5/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1/5*2, 0, 0.75); 			tableProcessor.setTablePoint(0, 5, 0, 0, 0.75); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5+1/5/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1/5*2, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1/5+1/5+1/10, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 5, 1/5*3, 0, 0.75); 			tableProcessor.setTablePoint(0, 6, 0, 0, 0.75); 			break; 		case 3: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5+1/5, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5+1/5+1/5/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1/5*3, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1/5*3+1/5/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 5, 1/5*4, 0, 0.75); 			tableProcessor.setTablePoint(0, 6, 0, 0, 0.75); 			break; 			 		case 4: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5+1/5+1/5, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5+1/5+1/5+1/5/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, 1/5*4, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, 1/5*4+1/5/2, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 5, 0, 0, 0.75); 			break; 		case 5: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1/5*4, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1/5*4+1/5/2, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 3, 0, 1, 0.75); 			break; 	} }; inline function sShape7(tableProcessor, stage) { 	tableProcessor.reset(0); 	switch (stage) 	{ 		case 0: 			tableProcessor.setTablePoint(0, 0, 0, 1, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/4/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, 1.0/4, 0, 0.75); 			tableProcessor.setTablePoint(0, 3, 0, 0, 0.75); 			break; 		case 1: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, 1.0/4/2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4), 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, (1/4+1/4/2), 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, (1.0/4)*2, 0, 0.75); 			tableProcessor.setTablePoint(0, 5, 0, 0, 0.75); 			break; 		case 2: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4/2), 0.0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4), 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, (1.0/4+1/4/2), 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, ((1.0/4)*2), 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 5, ((1.0/4)*2)+1/8, 0, 0.75); 			tableProcessor.setTablePoint(0, 6, 0, 0, 0.75); 			break; 		case 3: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4), 0.0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4+1/4/2), 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, (1.0/4*2), 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, ((1.0/4)*2)+1/8, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 5, ((1.0/4)*2)+1/8*2, 0, 0.75); 			tableProcessor.setTablePoint(0, 6, 0, 0, 0.75); 			break; 		case 4: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4+1/4/2), 0.0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4*2), 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, (1.0/4*2)+1/8, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, (1.0/4*2)+1/8*2, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 5, ((1.0/4)*2)+1/8*3, 0, 0.75); 			tableProcessor.setTablePoint(0, 6, 0, 0, 0.75); 			break; 		case 5: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4*2), 0.0, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4*2)+1/8, 0.5, 0.25); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 3, (1.0/4*2)+1/8*2, 1, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 4, (1.0/4*2)+1/8*3, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 5, ((1.0/4)*2)+1/8*4, 0, 0.75); 			break; 		case 6: 			tableProcessor.setTablePoint(0, 0, 0, 0, 1); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 1, (1.0/4*2)+1/8*2, 0, 0.75); 			tableProcessor.addTablePoint(0, 1, 1); 			tableProcessor.setTablePoint(0, 2, (1.0/4*2)+1/8*3, 0.5, 0.25); 			tableProcessor.setTablePoint(0, 3, ((1.0/4)*2)+1/8*4, 1, 0.75); 			break; 	} }; function onNoteOn() { 	 } function onNoteOff() { 	 } function onController() { 	 } function onTimer() { 	 } function onControl(number, value) { 	switch (number) 	{ 		case btnApply: 			btnApply.setValue(0); 			 			for (i = 0; i < modulators.length; i++) 			{ 				if (cmbType.getValue() == 1) //Equal power 				{ 					switch (cmbCount.getValue()) 					{ 						case 1: equalPower2(modulators[i], i); break; 						case 2: equalPower3(modulators[i], i); break; 						case 3: equalPower4(modulators[i], i); break; 						case 4: equalPower5(modulators[i], i); break; 						case 5: equalPower6(modulators[i], i); break; 						case 6: equalPower7(modulators[i], i); break; 					} 				} 				else 				{ 					switch (cmbCount.getValue()) 					{ 						case 1: sShape2(modulators[i], i); break; 						case 2: sShape3(modulators[i], i); break; 						case 3: sShape4(modulators[i], i); break; 						case 4: sShape5(modulators[i], i); break; 						case 5: sShape6(modulators[i], i); break; 						case 6: sShape7(modulators[i], i); break; 					} 				} 			} 		break; 	} }"> <EditorStates BodyShown="1" Visible="1" Solo="0" contentShown="1" onInitOpen="0" onNoteOnOpen="0" onNoteOffOpen="0" onControllerOpen="0" onTimerOpen="0" onControlOpen="0"/> <ChildProcessors/> <Content> <Control type="ScriptComboBox" id="Type" value="0"/> <Control type="ScriptComboBox" id="Count" value="0"/> <Control type="ScriptButton" id="Apply" value="0"/> </Content> </Processor>
-
Nice! You might want to add an option to specify the index so that you can build crossfade tables for each group more quickly. This is a screenshot of three linear XFades with different indexes:
EDIT: Nevermind, just realized you are doing this already on different modulators.
BTW, did you know you can copy & paste tables? Just select one (so it gets outlined),
Ctrl + C
, select another and pressCtrl + V
.You could add a dummy table to your script which can then just be used as copy source for all kinds of modulators.