Forum
    • Categories
    • Register
    • Login

    sync faust delay times to host

    Scheduled Pinned Locked Moved General Questions
    4 Posts 4 Posters 45 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • MorphoiceM
      Morphoice
      last edited by

      In a faust node, how can we sync delay times to the plugin host bpm?

      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

      HISEnbergH 1 Reply Last reply Reply Quote 0
      • S
        sletz
        last edited by

        This may be relevant here: https://faustdoc.grame.fr/manual/midi/#midi-sync

        1 Reply Last reply Reply Quote 1
        • HISEnbergH
          HISEnberg @Morphoice
          last edited by

          @Morphoice the tempo_sync node in scriptnode is a decent option as well.

          Sonic Architect && Software Mercenary

          Christoph HartC 1 Reply Last reply Reply Quote 1
          • Christoph HartC
            Christoph Hart @HISEnberg
            last edited by

            I'm not sure whether MIDI tempo information messages makes it through to the Faust node, but the tempo sync node is definitely the way to go. just build your Faust node with a absolute delay time parameter and then connect it to the tempo sync node - it automatically sends the correct time value matching the tempo and reacts to tempo changes etc.

            upcoming docs:

            Tempo Sync (control.tempo_sync)

            Converts a musical tempo value to a duration in milliseconds and sends it as a modulation signal.
            Tempo Sync converts a musical time value (such as 1/4 note or 1/8 triplet) to a duration in milliseconds based on the current DAW tempo. The output updates whenever the host tempo changes or any parameter is adjusted, making it suitable for driving time-based effects that need to lock to the beat.

            The output is an unnormalised modulation signal carrying the raw millisecond value. If the target parameter expects a different unit (such as frequency in Hz), place a control.converter between this node and the target. When Enabled is set to Off, the node outputs the manual UnsyncedTime value instead, allowing a smooth fallback for standalone operation or manual control.

            CPU: negligible, polyphonic.

            Signal Path

            Pseudo-code - hover highlighted terms for details
            
            
            // control.tempo_sync - musical time to milliseconds
            // BPM + parameters -> ms out (unnormalised)
            
            onParameterChange() {
                if Enabled:
                    output = tempoToMs(bpm, Tempo) * Multiplier
                else:
                    output = UnsyncedTime
            }
            
            onTempoChange(newBpm) {
                bpm = newBpm
                if Enabled:
                    output = tempoToMs(bpm, Tempo) * Multiplier
            }
            
            1 Reply Last reply Reply Quote 1
            • First post
              Last post

            17

            Online

            2.4k

            Users

            13.7k

            Topics

            119.4k

            Posts