./audio/din, Open source cross-platform sound synthesizer

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ]


Branch: CURRENT, Version: 64.2nb1, Package name: din-64.2nb1, Maintainer: fox

DIN Is Noise is a program for making sound, music and noise. Use
bezier curves to edit waveforms, envelopes, modulators and FX
components; use the keyboard (computer and MIDI) to trigger notes (or
noise), use the mouse to sound like the theremin, create drones on
microtones, launch, orbit and drag them around; bounce balls on walls
to trigger notes in a mondrian inspired drawing and also make binaural
beats. Supports MIDI input and scripting through TCL.


Required to run:
[graphics/MesaLib] [graphics/hicolor-icon-theme] [audio/jack] [lang/tcl] [devel/boost-libs] [devel/SDL]

Required to build:
[pkgtools/x11-links] [devel/boost-headers] [x11/xcb-proto] [x11/fixesproto4] [pkgtools/cwrappers] [x11/xorgproto]

Package options: jack

Master sites:

Filesize: 3629.938 KB

Version history: (Expand)


CVS history: (Expand)


   2026-05-15 11:59:04 by Adam Ciarcinski | Files touched by this commit (249)
Log message:
revbump for boost-libs
   2026-05-10 08:26:14 by Santhosh Raju | Files touched by this commit (3)
Log message:
audio/din: Update to 64.2

Changes since 64.1:

DIN Is Noise 64.2:

  * fixed detection of CAPS lock key on the console!
   2026-05-09 16:24:05 by Santhosh Raju | Files touched by this commit (6)
Log message:
audio/din: Update to 64.1

Changes since 60:

DIN Is Noise 64.1:

  /*

    Beat Divider is now called Beat Handler because in addition
    to divisions of the beat pattern, you can now:

    mute: flatten the pattern between start and end vertices
          and remove the inbetween vertices/tangents.

    copy: copy the pattern between start and end vertices

    cut:  cut the pattern between start and end vertices. a copy
          of the cut pattern is now available.

    replace: replace the pattern between start and end vertices
             with the cut or copied pattern. DIN will squash or
             stretch the copied or cut pattern to fit the space
             between start and end vertices.

    append: append the cut or copied pattern after the end
            vertex.

    when Beater @ BPM button is green, DIN envelops the lead
    voice or noise, all the drones, all the triggered notes of
    keyboard-keyboard, mondrian and all the binaural drones with
    the beat pattern starting at the first beat and ending at the
    last beat. you can change this first and last beat for
    interesting effects.

    default first beat is 0. default last beat is 8. default
    beat pattern has 8 beats.

    g: set first beat of beat pattern
    h: set last beat of beat pattern
    j: shift first and last beat of beat pattern 1 beat to left
    k: shift first and last beat of beat pattern 1 beat to right

  */

DIN Is Noise 63:

  * reinstated auto accent

      auto accent

          on or off

            off sets accents from the accent curve

                to edit accent curve click

                  Edit swing and accent curves

              default is all divisions have same volume

          with auto accent on,

            for N divisions

            volume scaled down by N every division.

  * fixed bug in swing on Beat Divider

DIN Is Noise 62.1:

  * removed auto accent, accent on Beat Divider

  /*
    edit Swing and Accent curves instead

      more flexible
      default no swing, no accent ie full volume

  */

  * aligning codebase with binary versions for Linux, Windows
    and macOS

DIN Is Noise 61:

  /*

    flags for rest in the Beat Divider

      default

        all the flags are on
          so all the divisions are on
            so no rest

        if a flag is off
          corresponding division is off
            a rest!

      turn flags on and off to insert rests

        syncopation!

      (special) case study

        Divisions = 1
        (only) flag is off
          deletes original beat pattern

    accent is just a value multiplied to the
    volume of every division.

    auto accent

      on or off

        off sets accents of all divisions to 1.0

          so all divisions have same volume

      with auto accent on,

        for N divisions

        volume scaled down by N every division.

    suggestion

      combine rest flags with auto accent!

  */

DIN Is Noise 60.1:

  * improved last beat feature on the Beater editor

    * press SPACE to set last beat of the beat pattern
      to x position of the nearest vertex to mouse cursor

    * press SHIFT + SPACE to set last beat to the x
      position of the mouse cursor

  * fixed view alteration on undo/redo on curve editor
  * removed a debug message from DIN codebase
   2026-01-28 04:23:46 by Santhosh Raju | Files touched by this commit (4)
Log message:
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 :)
   2025-09-27 11:57:41 by Thomas Klausner | Files touched by this commit (337)
Log message:
*: recursive bump for boost 1.89
   2025-02-12 07:45:45 by Ryo ONODERA | Files touched by this commit (850)
Log message:
*: Recursive revbump from audio/flac-1.5.0
   2025-01-19 22:32:47 by Santhosh Raju | Files touched by this commit (5)
Log message:
audio/din: Update to 59

Changes since 58.1:

DIN Is Noise 59:
  /*
    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 :)
   2025-01-06 22:49:24 by Kevin Bloom | Files touched by this commit (217)
Log message:
revbump packages due to devel/libslang2 removal