C’est plus que probablement quelque chose de stupide que je fais de mon côté 
En gros, je contrôle les plugins depuis une surface de contrôle :
jrrshop.com/catalog/mackie-c … 951be6cc27
Agrandissez l’image – vous comprendrez.
Pour les types de valeurs discrètes (par exemple, le mode Bombardier), je profite du fait que les 32 VPots (encodeurs rotatifs) de la surface ont également un comportement de commutateur – vous appuyez sur le dessus du VPot – c’est un momentané à membrane typique.
J’utilise ensuite une table de correspondance pour parcourir les valeurs disponibles à chaque pression – c’est beaucoup plus propre et prévisible que d’utiliser l’encodeur rotatif pour définir les valeurs discrètes :
FXSwitchParameter *BombardierMode = new FXSwitchParameter("Mode", 12, this);
BombardierMode->numDiscreetValues = 5;
BombardierMode->discreetValues[0] = 0.0;
BombardierMode->discreetValues[1] = 0.25;
BombardierMode->discreetValues[2] = 0.5;
BombardierMode->discreetValues[3] = 0.75;
BombardierMode->discreetValues[4] = 1.0;
Bombardier->Add(BombardierMode)
ou dans le cas du Vibe EQ :
FXComboSwitchParameter *VibeEQMF2Freq = new FXComboSwitchParameter("MF 2 Freq", "", 5, this);
VibeEQMF2Freq->numDiscreetValues = 7;
VibeEQMF2Freq->discreetValues[0] = 0.0;
VibeEQMF2Freq->discreetValues[1] = 0.16;
VibeEQMF2Freq->discreetValues[2] = 0.33;
VibeEQMF2Freq->discreetValues[3] = 0.5;
VibeEQMF2Freq->discreetValues[4] = 0.66;
VibeEQMF2Freq->discreetValues[5] = 0.83333;
VibeEQMF2Freq->discreetValues[6] = 1.0;
VibeEQ->Add(VibeEQMF2Freq)
Cette approche fonctionne parfaitement sur le Bombardier, le Rocket, le 1973 et le Vibe EQ, partout sauf dans les 2 sections mentionnées ci-dessus.
J’ai obtenu les valeurs des paramètres en mettant un point d’arrêt dans le débogueur sur l’appel du SDK Reaper :
value = TrackFX_GetParam(trackSelectedForC4, FXInstances[i].index, currentFXParameter->index, &min, &max);
et j’utilise aussi :
TrackFX_SetParam(trackSelectedForC4, FXIndex, index, parameterValue);
TrackFX_FormatParamValue(trackSelectedForC4, FXIndex, index, parameterValue, parameterValueString, sizeof(parameterValueString));
Donc, par exemple sur le Vibe EQ :
Définir la valeur à 0,8333 règle l’interface graphique et le plugin sur 6,0 KHz, mais la chaîne renvoyée dans “parameterValueString” dans le code ci-dessus est toujours 3150.
Si vous augmentez ensuite à 1,0, tout (l’interface graphique, le plugin, la chaîne renvoyée) s’aligne à nouveau sur 8,0 KHz.
Toutes les autres valeurs fonctionnent parfaitement.
Le comportement du Bombardier est noté dans un message précédent.
Je suis juste curieux de savoir si c’est quelque chose que je fais de mal de mon côté.