Hi,
In my patch I'm receiving the tempo from Ableton
then in a variable I'm doing some calculation to send midi to the arpegiator rate in ms
// Obtenir le tempo d'Ableton
var bpm = get('variable_abletonTempo');
// Obtenir la valeur du switch correspondant à la division sélectionnée
var div = get('switch_arpSyncmode');
// Liste des divisions correspondantes aux valeurs du switch
var divValues = {
0: 1 / 128,
12: 1 / 96,
20: 1 / 64,
30: 1 / 48,
40: 1 / 32,
45: 1 / 24,
55: 1 / 16,
65: 1 / 12,
75: 1 / 8,
85: 1 / 6,
95: 1 / 4,
105: 1 / 3,
115: 1 / 2,
127: 1 / 1
};
// Calcul de la division sélectionnée
var selectedDiv = divValues[div];
// Calcul du temps en millisecondes pour une mesure complète
var msPerBeat = 60000 / bpm;
// Calcul de la durée en millisecondes pour la division sélectionnée
var duration = msPerBeat * selectedDiv * 4; // Multiplier par 4 selon le besoin
// Fonction de conversion logarithmique des valeurs MIDI vers les millisecondes
function msToMidiValue(duration) {
// Points de référence observés pour le knob de l'arpégiateur
var minMs = 10; // Valeur minimum de 0 en MIDI = 10 ms
var maxMs = 1000; // Valeur maximum de 127 en MIDI = 1000 ms
// Limiter la durée à l'intervalle défini
duration = Math.min(Math.max(duration, minMs), maxMs);
// Normalisation de la durée entre 0 et 1
var normalizedDuration = Math.log(duration / minMs) / Math.log(maxMs / minMs);
// Conversion de la durée normalisée en valeur MIDI (0 à 127)
return Math.round(normalizedDuration * 127);
}
// Conversion de la durée en une valeur MIDI basée sur la courbe logarithmique
var midiValue = msToMidiValue(duration);
console.log("MIDI Value: " + midiValue);
// Définir le fader avec la valeur MIDI calculée
set('fader_arpTimeMode', midiValue);
// Envoyer la commande OSC avec la valeur MIDI pour le contrôle
send('/control', 5, 44, midiValue);
the last line should send the CC but it's not the case
What am I missing ? the console log show that midi value is generated