link_metro
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## link_metro

link_metro — Retourne un déclencheur valant 1 sur la pulsation et 0 sinon, ainsi que la pulsation, la phase et le temps d'Ableton Link pour cette session.

## Description

Opcode du greffon ableton_link_opcodes.

Retourne un déclencheur valant 1 sur la pulsation et 0 sinon, ainsi que la pulsation, la phase et le temps d'Ableton Link pour cette session pour une quantification donnée.

## Syntaxe

    k_trigger, k_beat, k_phase, k_current_time_seconds link_metro i_peer [, k_quantum]

## Initialisation

i_peer -- L'objet pair Ableton Link.

## Exécution

k_trigger -- Déclencheur, 1 sur la première pulsation dans chaque quantification locale de la pulsation et 0 sinon.

k_beat -- Le nombre de pulsations compté depuis que ce pair est activé.

k_phase -- La phase de cette pulsation en fonction de la quantification.

k_current_time_seconds -- Le temps de la pulsation compté dupuis que ce pair est activé.

k_quantum -- La quantification locale de la pulsation, qui peut être un multiple ou une fraction de la pulsation. La valeur par défaut est 1.

Cet opcode permet l'utilisation d'une session Ableton Link pour déclencher des évènements dans Csound. On peut aussi l'utiliser pour obtenir la pulsation et le temps de la session ainsi que la phase en fonction de la quantification locale de la pulsation. Par exemple, une quantification de 4 peut impliquer une mesure à 4/4, tandis qu'une quantification de 0,25 divisera la pulsation par 4.

## Exemples

Voici un exemple de l'opcode link_metro. Il utilise le fichier ableton_link.csd.

Exemple 504. Exemple de l'opcode link_metro.

    <CsoundSynthesizer>
    <CsLicense>
    Run the Ableton Link "LinkHut" example application, or some other
    Ableton Link peer, while you run this CSD to see what happens.
    </CsLicense>
    <CsOptions>
    -m0 -d -odac
    </CsOptions>
    <CsInstruments>
    sr = 44100
    ksmps = 10
    nchnls = 2

    alwayson "LinkMonitor"

    gi_peer link_create 72
    gk_beat init 0

    instr Beep
    asignal oscils 20000, p4, 0
    outs asignal, asignal
    endin

    instr TempoChange
    link_tempo_set gi_peer, 80
    endin

    instr LinkEnable
    i_enabled = p4
    link_enable gi_peer, i_enabled
    endin

    instr LinkMonitor
    i_kperiod_seconds = ksmps / sr
    printf_i "kperiod: %9.6f seconds.\n", 1, i_kperiod_seconds
    printf_i "gi_peer: %g\n", 1, gi_peer
    link_enable gi_peer, 1
    k_trigger, gk_beat, k_phase, k_time link_metro gi_peer, 1
    k_peers link_peers gi_peer
    k_tempo link_tempo_get gi_peer
    k_enabled link_is_enabled gi_peer
    k_hz = 1000
    if floor(gk_beat % 4) == 0 then
    k_hz = 3000
    else
    k_hz = 2000
    endif
    schedkwhen k_trigger, 0, 1, "Beep", 0, 0.01, k_hz
    printf "LinkMonitor: gi_peer: %g k_enabled: %9.4f k_trigger: %9.4f beat: %9.4f k_phase: %9.4f time: %9.4f tempo: %9.4f peers: %3d\n", k_trigger, gi_peer, k_enabled, k_trigger, gk_beat, k_phase, k_time, k_tempo, k_peers
    endin
    </CsInstruments>
    <CsScore>
    f 0 360
    i "TempoChange" 10 80
    i "LinkEnable"  20 1 0
    i "LinkEnable"  30 1 1
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

Voir la section Ableton Link Opcodes pour plus d'information.

## Crédits

Par : Michael Gogins 2017

Précédent | Niveau supérieur | Suivant
link_is_enabled | Sommaire | link_peers