git: da1d7d3440cc - main - audio/din: Update to 60

From: Santhosh Raju <fox_at_FreeBSD.org>
Date: Wed, 28 Jan 2026 03:57:57 UTC
The branch main has been updated by fox:

URL: https://cgit.FreeBSD.org/ports/commit/?id=da1d7d3440cc0aef83cb24a7940b093914a55201

commit da1d7d3440cc0aef83cb24a7940b093914a55201
Author:     Santhosh Raju <fox@FreeBSD.org>
AuthorDate: 2026-01-27 22:26:56 +0000
Commit:     Santhosh Raju <fox@FreeBSD.org>
CommitDate: 2026-01-27 22:26:56 +0000

    audio/din: Update to 60
    
    Changes since 59:
    
    DIN Is Noise 60:
    
      /*
    
        DIN60 is a binaural audio synthesizer which means you can hear
        binaural beats from the drones of the Microtonal-Keyboard or
        from the notes triggered when the balls of Mondrian hit a
        wall or ceiling or from the notes triggered by pressing keys
        on the Keyboard-Keyboard. Until DIN59, you could hear binaural
        beats only from the binaural drones of the Binaural Drones
        instrument.  That instrument is still available but this is
        a new and dynamic way to hear binaural beats!
    
        some say binaural beats are best heard on headphones.
    
        on the Settings screen,
    
          turn DIN Is Binaural ON or OFF.
    
          if you turn ON,
    
            every new drone on the Microtonal-Keyboard is a binaural drone.
    
              select the drone to change its binaural state, justification
              and separation from Menu > Drone Params > Modulation
    
            every new ball in Mondrian triggers binaural notes when it hits a wall or celing.
    
              select a ball to change its binaural state, justification and separation from
              Menu > Ball Params
    
            every key press on the Keyboard-Keyboard triggers binaural notes.
    
              set params for these binaural notes from the Settings screen itself.
    
        default Separation between L and R channels is 4 hz. if you turn ON ~ DIN randomises
        the separation for each new drone or ball.
    
        if justification is Left, for a binaural drone or triggered binaural note at T hz:
          L will sound T hz,
          R will sound T + Separation Hz
        if justification is Right,
          R will sound T hz
          L will sound T - Separation Hz,
        if justification is Random,
          well...
    
        this separation in Hz is heard as beats. so for a separation of 4 hz,
        you hear 4 beats a second.
    
      *\
    
      /*
    
        DIN60 intros a new way to make beats!
    
        a beat pattern envelops Voice or Noise, drones of the Microtonal Keyboard,
        triggered notes due key presses on the Keyboard-Keyboard, triggered notes
        due bouncing balls in Mondrian and the binaural drones of the Binaural
        Drones instrument. enveloping only some of these elements will be possible in the
        next release :( , sorry!
    
        turn ON by clicking Beater button at the bottom left of any instrument. no fader in this
        release :( , sorry!
    
        Press 5 to edit the beat pattern on the Beater editor or Menu > Editors > Beater
    
        on the Beater editor, use the Beat Divider plugin to subdivide the beat pattern to
        complicate the pattern.
    
        press SPACE to set end point of beat pattern. only available on Beater editor and via
        this keyboard short cut only :(, sorry!
    
        use BPM tools to change the BPM, reverse, scrub, loop or pong the beat pattern.
    
        BPM tools is also available on Voice FM/AM modulation editor.
    
        BPM modulation:
    
          press F4 to double the BPM.
          press F3 to halve the BPM.
          works on the Microtonal-Keyboard, the Beater editor and the Voice Modulation
          editor only.
    
            doubling or halving BPM keeps the groove like octave shifting keeps the melody.
    
            by default DIN uses 2 to multiply or divide the BPM. playing with BPM this
            way reminds us of shifting octaves with notes! so why not multiply the current BPM
            with other small whole number tuning ratios from key modulation to modulate to,
            that is, produce other BPMs?  there is a 9x9 lattice of BPMs to choose from
            based on various whole number ratios from 1..9.
    
          for ratios other than 2/1, say you choose the pair 3/2, 4/3 from the ratios list and
          the current BPM is 120:
    
            an F4 press will multiply 3/2 to 120, to make current BPM 180, a BPM thats
            a "perfect fifth" above 120.
    
            an F4 press again will multiply 4/3 to the 180 to produce 240. this is 2 times 120!
            that is, its a BPM thats an "octave above" 120, or in other words, a doubling of
            the original BPM.
    
            an F3 now will divide 240 by 4/3 to give 180, a "perfect fourth" below 240.
    
            an F3 again will divide 180 by 3/2 to give 120! that is, we got back the
            original BPM which is a "perfect fifth" below 180 or an "octave below" 240,
            in other words, a halving of 240.
    
          this system combined with L, R delay line lengths (see below) in beats can create very
          interesting, emergent polyrhythms!
    
          and also create isochronous binaural beats via Settings > DIN Is Binaural :)
    
      *\
    
      /*
    
        in DIN 60, you set the L, R delay line length in beats @ the current BPM of the Beater
        rather than in seconds.
    
        begin setting the values to small whole number beats. say L to 2 and R to 3 or 4,3 or 3,4
        or 6,5 etc. DIN uses the current BPM of the Beater to calculate the length of the delay
        line in seconds. fractional beats are also welcome. set L to say 1.5 and R to say 1.333333
    
        try setting the values at different BPMs of the beater!
    
        this combined with BPM tools (see above) can create very interesting, emergent polyrhythms!
    
      *\
    
      /*
    
        new Levels panel on the Delay editor.
    
        use to change the level of the feedback and volume curves instead of
        manually picking and moving the curve by its vertices.
    
        move curves of both channels at once (feedback-both or volume-both)
        or one at a time (feedback-l, feedback-r, volume-l or volume-r)
    
        the slider lets you adjust the delay length of both L and R channels
        live. left end is 0% and right end is 100% of delay line length set
        on the Settings screen. experimental feature. may glitch depending
        on how fast you move the slider... :)
    
      *\
    
      /*
    
        DIN60 intros the Polyrhythm plugin
    
        default:
    
          6 8
          in
          8
    
          click Apply (on the Beater editor) to create a composite beat pattern
          of 6 and 8 beats in 8 beats.
    
      *\
    
      /*
    
        in Number plugin:
    
          /* Euclid *\
    
            click on Euclid to
              space out bit pattern
                now apply to beat pattern to create euclidean rhythms!
                  rotate the bit pattern using << and >>
                    rotates the rhythm!
      *\
    
      * faster .wav save in recorder!
      * improved tap bpm
    
      on curve editor:
    
        /* paste append on curve editor *\
        /* insert after last vertex appends to curve *\
        /* select vertices only *\
    
      * hide drone center gnomon when there are no drones
    
      * improved oscilloscope display
        * better labeling
          * with distortion hinting
      /*
        auto resize
          resizes oscilloscope when window size changes
      *\
    
      /* will not exit if recording *\
    
      /* cross hair on the only selected drone *\
    
      * improved Show anchors on Menu > Drone Params > Visuals
        * drew line from drone position to bottom of microtonal-keyboard
            now draws cross hairs to edge of screen
    
        /* opacity *\
    
          adjust opacity of the drone anchor cross hair
    
      /*
        track phrase position while scrubbing
          Menu > Voice > Track
            default is off
      *\
    
      /*
        record multiple mouse phrases on the phrasor:
          press f to record a phrase. move mouse.
            press f again to stop recording and start playing
          press f to record another phrase. din appends this phrase to existing phrase.
            press f again to stop recording and start playing from the start
          press g to clear all phrases
      *\
    
      /*
    
        Gater is now called Beater in preparation for the new beat engine in DIN (still WIP
        as of 59)
    
        edit beat pattern in beat pattern editor
          press 5 from microtonal-keyboard or Menu > Editors > Beater
        new beat patterns in the library
        use 9 and 0 keys to go thru beat patterns
    
        in the beat pattern editor:
    
          press F3 to halve current BPM
          press F4 to double current BPM
          press F5 to shift key up an octave
          press F6 to shift key down an octave
    
        on the microtonal keyboard:
    
          press F3 to halve current BPM
          press F4 to double current BPM
    
      *\
    
      in a curve editor:
    
        /*
    
          increase/decrease size of tangent of a curve
    
          click+pick a tangent of a curve and press f or Menu > Tools > Size tangent
          and just mouse up and down to size tangent
    
        *\
    
        /*
    
          pin / unpin vertices & tangents of a curve in a curve editor
    
          choose Menu > Tools > Pin / Unpin
          and click+pick a vertex or tangent. ESC to stop.
    
          or click-pick a vertex or tangent and press p to pin/unpin. click to stop.
    
          why pin?
    
            pinned vertices and tangents dont rotate when curve rotates.
            pinned tangents dont move when their vertex moves
    
              try it on shapeforms!
              watch fft!
    
        *\
    
        /*
            press ' to draw/hide snapping guides or Menu > Tools > Draw
            press g to draw/hide cursor or Menu > Tools > Draw cursor
            press u to restore view too on undo/redo or Menu > Tools > View too
        *\
    
      /* press SHIFT when clicking into a text/value field to clear its contents *\
    
      /* timestamps on log file at start and shutdown of program *\
    
      * changes to default parameters in binaural drones instrument
        * start pitch is 128 Hz
        * justification is left
        * scale notes at C D G B when C = 128 hz (if A = 432 Hz)
    
      * default tuning is pythagoras for all instruments
        * tuning is global ie applies to all instruments
    
      * Menu > Tools > Fold tangents with Selection only ON, folds just the selected tangent
        and if you select a vertex folds both its tangents
    
      * improved delay lines
      * optimised handling of parameter spinners in UI *
    
      * boxes not filled by default in Mondrian
    
      :( mouse returns to last position on all screens :)
      :( bug asked user to select drones when no drones were selected and drone volume change was attempted :)
      :( fixed bug not saving inner, letter and word spacing curves on morse code module :)
      :( fixed fold tangents only folding tangents of the selected vertex then stopping, instead of offering
         to fold other tangents until canceled by user :)
---
 audio/din/Makefile                    |  3 +--
 audio/din/distinfo                    |  6 +++---
 audio/din/files/patch-src_Makefile.am |  8 ++++----
 audio/din/pkg-plist                   | 15 ++++++++++-----
 4 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/audio/din/Makefile b/audio/din/Makefile
index 92cae0768a87..907aae3c8fc2 100644
--- a/audio/din/Makefile
+++ b/audio/din/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	din
-PORTVERSION=	59
-PORTREVISION=	3
+PORTVERSION=	60
 CATEGORIES=	audio
 MASTER_SITES=	https://dinisnoise.org/files/
 
diff --git a/audio/din/distinfo b/audio/din/distinfo
index c11e89771449..93daf5851bb0 100644
--- a/audio/din/distinfo
+++ b/audio/din/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1737314802
-SHA256 (din-59.tar.gz) = a395a223675107957a129cd9f0ea5564105be8996fe42dbdcddf383a1ac98c97
-SIZE (din-59.tar.gz) = 3700930
+TIMESTAMP = 1769551118
+SHA256 (din-60.tar.gz) = b465aa64357880d158ef0758bca3ed2073b3e661532fcb776225bd9b1c56d3ae
+SIZE (din-60.tar.gz) = 3754314
diff --git a/audio/din/files/patch-src_Makefile.am b/audio/din/files/patch-src_Makefile.am
index dee0a7d93325..1c490a6bd571 100644
--- a/audio/din/files/patch-src_Makefile.am
+++ b/audio/din/files/patch-src_Makefile.am
@@ -1,15 +1,15 @@
 Removed tcl8.6, asound and jack flags, this is now handled in the ports
 script.
 
---- src/Makefile.am.orig	2024-09-15 12:03:12 UTC
+--- src/Makefile.am.orig	2026-01-15 05:09:22 UTC
 +++ src/Makefile.am
 @@ -1,7 +1,7 @@
  #dinincludedir = $(pkgsrcdir)
  
--AM_CXXFLAGS = -I /usr/include/tcl8.6 -Wall -D_THREAD_SAFE -DHAVE_OPENGL -D__LICENSED__ -D__SVG__ -D__GPL20__ -DPREFIX=\"@prefix@\" 
+-AM_CXXFLAGS = -I /usr/include/tcl8.6 -Wall -D_THREAD_SAFE -DHAVE_OPENGL -D__LICENSED__ -D__SVG__ -D__GPL20__ -DPREFIX=\"@prefix@\" -D__BOOST_TIME__
 -LIBS +=  -ltcl8.6 -lSDL -lGL -lpthread -lasound
-+AM_CXXFLAGS = -Wall -D_THREAD_SAFE -DHAVE_OPENGL -D__LICENSED__ -D__SVG__ -D__GPL20__ -DPREFIX=\"@prefix@\" 
-+LIBS +=  -lSDL -lGL -lpthread
++AM_CXXFLAGS = -Wall -D_THREAD_SAFE -DHAVE_OPENGL -D__LICENSED__ -D__SVG__ -D__GPL20__ -DPREFIX=\"@prefix@\" -D__BOOST_TIME__
++LIBS += -lSDL -lGL -lpthread
  
  bin_PROGRAMS = din
  
diff --git a/audio/din/pkg-plist b/audio/din/pkg-plist
index 02cd00f7b16b..dee250ada46a 100644
--- a/audio/din/pkg-plist
+++ b/audio/din/pkg-plist
@@ -6,12 +6,16 @@ share/applications/din.desktop
 %%DATADIR%%/factory/CDGB
 %%DATADIR%%/factory/Makefile.am
 %%DATADIR%%/factory/Sine_Mixer
+%%DATADIR%%/factory/accent.crv
 %%DATADIR%%/factory/all_notes
 %%DATADIR%%/factory/am.crv
 %%DATADIR%%/factory/attack.crv
 %%DATADIR%%/factory/attack.ed
 %%DATADIR%%/factory/attack.lib
 %%DATADIR%%/factory/audio_prefs
+%%DATADIR%%/factory/beat-patterns.lib
+%%DATADIR%%/factory/beater.crv
+%%DATADIR%%/factory/beater.ed
 %%DATADIR%%/factory/binaural-drone.help.tcl
 %%DATADIR%%/factory/binaural-drones-waveform.crv
 %%DATADIR%%/factory/binaural-drones-waveform.ed
@@ -22,6 +26,7 @@ share/applications/din.desktop
 %%DATADIR%%/factory/blues.drone
 %%DATADIR%%/factory/blues.intervals
 %%DATADIR%%/factory/blues.ranges
+%%DATADIR%%/factory/bpmtools
 %%DATADIR%%/factory/changer.help.tcl
 %%DATADIR%%/factory/changer.patch.tcl
 %%DATADIR%%/factory/chord.help.tcl
@@ -295,6 +300,7 @@ share/applications/din.desktop
 %%DATADIR%%/factory/d_circler
 %%DATADIR%%/factory/d_countries
 %%DATADIR%%/factory/d_curve_picker
+%%DATADIR%%/factory/d_delaylevels
 %%DATADIR%%/factory/d_dotter
 %%DATADIR%%/factory/d_dpeu
 %%DATADIR%%/factory/d_fft
@@ -308,10 +314,12 @@ share/applications/din.desktop
 %%DATADIR%%/factory/d_parameters
 %%DATADIR%%/factory/d_plugin_browser
 %%DATADIR%%/factory/d_point_modulator
+%%DATADIR%%/factory/d_polyrhythm
 %%DATADIR%%/factory/d_rose_milker
 %%DATADIR%%/factory/d_sine_mixer
 %%DATADIR%%/factory/d_spiraler
 %%DATADIR%%/factory/d_starrer
+%%DATADIR%%/factory/d_subdiv
 %%DATADIR%%/factory/d_superformula
 %%DATADIR%%/factory/d_warper
 %%DATADIR%%/factory/dash.crv
@@ -320,7 +328,6 @@ share/applications/din.desktop
 %%DATADIR%%/factory/decay.lib
 %%DATADIR%%/factory/delay.ed
 %%DATADIR%%/factory/din.hlp
-%%DATADIR%%/factory/din.osc
 %%DATADIR%%/factory/din_info
 %%DATADIR%%/factory/dot.crv
 %%DATADIR%%/factory/dp_bpm.crv
@@ -343,9 +350,6 @@ share/applications/din.desktop
 %%DATADIR%%/factory/fm.crv
 %%DATADIR%%/factory/font.ed
 %%DATADIR%%/factory/font.hlp
-%%DATADIR%%/factory/gater-patterns.lib
-%%DATADIR%%/factory/gater.crv
-%%DATADIR%%/factory/gater.ed
 %%DATADIR%%/factory/get-beat.help.tcl
 %%DATADIR%%/factory/get-bpm.help.tcl
 %%DATADIR%%/factory/get-curve-editor.help.tcl
@@ -422,6 +426,7 @@ share/applications/din.desktop
 %%DATADIR%%/factory/phases
 %%DATADIR%%/factory/pitch-vol.ed
 %%DATADIR%%/factory/pitch.crv
+%%DATADIR%%/factory/pitch.lib
 %%DATADIR%%/factory/point-modulation.ed
 %%DATADIR%%/factory/pomo-x.crv
 %%DATADIR%%/factory/pomo-y.crv
@@ -467,7 +472,6 @@ share/applications/din.desktop
 %%DATADIR%%/factory/sin.lib
 %%DATADIR%%/factory/sine_mixer_sin.crv
 %%DATADIR%%/factory/sine_mixer_sin.ed
-%%DATADIR%%/factory/sounding-board.osc
 %%DATADIR%%/factory/spinners
 %%DATADIR%%/factory/spiraler.scr
 %%DATADIR%%/factory/spiraler_cos.crv
@@ -479,6 +483,7 @@ share/applications/din.desktop
 %%DATADIR%%/factory/spiraler_sin.ed
 %%DATADIR%%/factory/start-end.help.tcl
 %%DATADIR%%/factory/start-end.patch.tcl
+%%DATADIR%%/factory/swing.crv
 %%DATADIR%%/factory/tuning.help.tcl
 %%DATADIR%%/factory/velocity.crv
 %%DATADIR%%/factory/velocity.ed