FAQ
What OS does DIN run on? Is DIN a plugin or a standalone application? How do I install DIN? How do I start DIN? Is it possible to do a factory reset of DIN? Where is the help for this program? How do I enter DIN's command mode? How do I toggle the delays? How do I toggle the gater? How do I change the key note of DIN? How do I play with scales in DIN? How can I change the number of microtones between two notes on the microtonal keyboard? What takes BPM in DIN? How do I play with BPMs? Does DIN support MIDI? Can I play notes on the MIDI keyboard? What sort of a mouse do I need to play DIN? Why the parental advisory? Why the IRC bot? [GNU/Linux] Why does DIN crash with bad scalelist error? [GNU/Linux] Why does DIN crash with Segmentation fault error? [GNU/Linux] Does DIN require OpenGL? [GNU/Linux] DIN says !!! couldnt connect to JACK server. !!! and doesnt start. Why? [GNU/Linux] Why is DIN crackling and glitching on my computer? [GNU/Linux] What is the latency in DIN? [GNU/Linux] What is the CPU load when DIN is running? [GNU/Linux] Can I stop DIN from auto-connecting to system audio outputs on startup? What OS does DIN run on?Windows, Mac OS X & Linux.
Is DIN a plugin or standalone application?DIN is a standalone application. Rewire support planned for the summer of 2013.
How do I install DIN?On Mac OS X, download and open the DIN Is Noise disk image. Drag the DIN Is Noise application to your Applications folder and double click on the DIN Is Noise application to start DIN.
On Windows, download and unzip the DIN Is Noise zip file. Enter the DIN Is Noise folder and double click on DIN.exe to start DIN.
On Ubuntu distribution of GNU/Linux you can install from packages. Otherwise you have to install from source code.
How do I start DIN?On Mac OS X, double click on the DIN Is Noise application in your Applications folder to start DIN.
On Windows, enter the DIN Is Noise folder and double click on DIN.exe to start DIN.
On GNU/Linux, at a terminal type:dinand press ENTER.
On Mac OS X or Windows, click on the Reset to Factory Settings! button in the Settings page of DIN. And restart DIN.
On GNU/Linux, at a terminal type:
mv ~/.din ~/.dinold
When you start DIN again it will create a new ~/.din and copy the initial data files from /usr/var/din or /usr/local/var/din to give you a factory reset.
You can vary how DIN loads the CPU by setting the variables fps and usleep
from DIN's command mode. fps is the number of times DIN draws the OpenGL GUI every second (default is 120 (GNU/Linux) or 60 (Mac OS X)) and
usleep is the number of microseconds DIN sleeps every cycle to let the processor do other waiting tasks (default is 1).
set-var fps 120 <-- draw DIN GUI 120 times every second
set-var usleep 1 <-- sleep 1 microsecond every cycle
9.3% load on these CPUs with this memory.
set-var fps 1000000000 <-- draw DIN GUI as many times as possible
set-var usleep 0 <-- dont sleep at all
47.5% load on these CPUs with this memory.
set-var fps 30 <-- draw DIN GUI 30 times every second.
set-var usleep 1000 <-- sleep 1 millisecond every cycle
4.5% load on these CPUs with this memory.
Loads above were produced with DIN 1.9.4 running on GNU/Linux at 800x600 and 136 drones:

Inside the program. @ the keyboard-keyboard or the microtonal keyboard, press F1. The help text shows up on the console. Use the the UP_ARROW & DOWN_ARROW keys (on Mac OS X and Windows) or the Insert & Delete keys (on GNU/Linux) to scroll thru this help.
Complete list of keyboard short-cuts used in DIN.
Complete list of commands you can run from DIN's command mode.
Complete list of video tutorials & demos.
How do I enter DIN's command mode?Press the TAB key. Press the TAB key again or the ESC key to leave the command mode. From DIN's command mode you can invoke DIN commands or run Tcl scripts that contain DIN commands that can change various parameters of DIN.
How do I toggle the delays?Click on the Delay button on the microtonal-keyboard or the keyboard-keyboard.
How do I toggle the gater?@ the microtonal-keyboard click on Gater button or press b. How do I change the key note of DIN?
1. Using the key command:
key C <-- set key note to middle C
key C# -2 <-- set key to C#, 2 octaves below middle C
key Bb -1 <-- set key note to Bb nearest to middle C
key 440 <-- set key note to 440 Hertz (Hz) ie the note A440
key . -1 <-- push the current key an octave down
key . 1 <-- push the current key an octave up
key note <-- prints the nearest note to the key pitch
key value <-- prints the pitch of the key in Hz
The following examples use interval variables to perform key modulation:
key [expr [key value] * $2b] <-- shift current key up a semitone
key [expr [key value] / $2b] <-- shift current key down a semitone
key [expr [key value] * $5] <-- shift current key up a perfect fifth
key [expr [key value] * $8] <-- equivalent to key . 1 ie shift current key an octave up
Set key to an arbitrary frequency:
key [expr 100 * 3.1415961] <-- key to 314.159 Hz ie 100 times value of PI
key note <-- prints Eb/D# which is the nearest note at 311.127 Hz
2. Press ; to set the key to pitch under mouse cursor
3. Use the octave shifter to shift the key an octave up (press x or down (press z). Set the BPM of the octave shifter to control the speed at which the key shifts. Edit (press 7) the octave shift curve in the octave shift editor to control the pitches the key moves thru while shifting from the current key to the target key.
This answer is now a video: key of din
How do I play with scales in DIN?Using list-scales, load-scale, add-scale, remove-scale, find-scale & tuning commands.
list-scales <-- lists all available scales in din
load-scale major <-- set major scale as the current scale
add-scale mymajor 1 2 3 4 5 6 7 8 <-- adds mymajor to list of scales
add-scale myminor 1 2 3b 4 5 6b 7b 8 <-- adds myminor scale to list of scales
help add-scale <-- prints help for add-scale on console
load-scale mymajor <-- loads scale mymajor
remove-scale mymajor <-- removes mymajor scale from list of scales
tuning list <-- lists available tunings
tuning get <-- prints current tuning
tuning set et <-- set tuning to equal temperament tuning
tuning set ji <-- set tuning to just intonation tuning
tuning set pytha <-- set tuning to pythogoras tuning
[GNU/Linux] create custom tunings in ~/.din eg., ~/.din/mine.tuning
tuning set mine <-- set tuning to your tuning
See ~/.din/et.tuning, ~/.din/ji.tuning & ~/.din/pytha.tuning for more information.
list-notes mymajor <-- prints notes of the scale mymajor
llength [list-notes minor] <-- prints number of notes in the minor scale
get-var scale <-- prints name of the current scale
find-scale m* <-- finds scales whose names start with m
find-scale ???? <-- finds scales whose names have only 4 characters
Watch this video or:
LSHIFT + mouse move : increase/decrease number of microtones by moving the right note.
LCTRL + mouse move : increase/decrease number of microtones by moving the left note.
m: set number of microtones in the current range to default.
LSHIFT + m: set number of microtones in all ranges to default.
LCTRL + m: set number microtones in all ranges to number of microtones in current range.
h: while pressing move mouse up and down to change the height of the board ie the number of volume levels.
The frequency modulator (fm), amplitude modulator (am), the gater (gr) & the octave shift (os) modules.
How do I play with BPMs?With set-bpm, get-bpm, set-beat & get-beat commands:
set-bpm {fm am} 240 <-- sets fm & am module bpm to 240
set-bpm os 5 <-- a slow octave shift (ie key modulation) when engaged with x or z keys
set-bpm gr 30 <-- sets left & right gaters bpm to 30
set-bpm fm [get-bpm gr] <-- sets the bpm of FM to the bpm of the gater
set-bpm gr [expr 10 * 3.1415961] <-- sets the bpm of the gater to 10 times the value of PI.
set-beat gr 0 <-- sets beat of the gater to 0 ie start
set-beat {fm am os} [get-beat gr] <-- snaps the beat of FM, AM & octave shift modules to current beat of gater
Does DIN support MIDI?
Yes. On Mac OS X and Windows, goto the Settings page and choose the MIDI input device DIN will get its input from. DIN supports the control change, program change, note on & off and pitch bend MIDI messages. DIN also automatically syncs FM, AM, gater & octave shift modules to the MIDI clock when it gets a MIDI clock and/or MIDI start message.
Can I play notes on the MIDI keyboard?Yes. On Mac OS X and Windows, goto the Settings page and choose the MIDI input device DIN will get its input from. When MIDI input is available, DIN draws little crosses in the middle of the keyboard-keyboard. If you play a white note on your MIDI keyboard, a white box will show up. If you play a black note, a black box will show up. In both cases, you should hear the note. If not, choose a different MIDI input device.
On GNU/Linux, start the JACK server using the seq driver:
jackd -R -d alsa -s -X seq
Then start DIN. Also start qjackctl. Switch to its MIDI
tab and connect your MIDI keyboard to DIN. Now, bring DIN into view. You should see a bunch of crosses
in the middle of the keyboard-keyboard. Play the keys to hear & see the notes.
On both Mac OS X and GNU/Linux, you can load the midimap patch to print the MIDI messages received on the DIN console:
load-patch midimap
What sort of mouse do I need to play DIN?
Any mouse with a sensitivity of 400 DPI. Most older mice are fine. Newer gaming mice can be too "fast" for playing DIN as a "mouse-bow" instrument - they operate at 800 DPI or more. But thanks to certain kinds of guns in shooting games, many of these mice support on-the-fly DPI switching down to 400 DPI.
However, the sensitivity of your mouse will not matter if you plan to use DIN to work with just drones & Bezier curves.
Why the IRC bot?The IRC bot is only available on DIN Is Noise for GNU/Linux.
You connect to an IRC channel with the DIN IRC bot. Once connected, other users on that channel can execute commands & scripts on your DIN by messaging your bot:
* Now talking on #din-bots
* bob sets channel keyword to come2me
* alice-bot (~nobody@[ip-address-witheld]) has joined #din-bots
{bob} alice-bot: key
{alice-bot} key C at 261.625 Hz tonic@ 261.625 Hz distance -0.000 Hz
{bob} alice-bot: key D
{bob} alice-bot: key
{alice-bot} key D at 293.665 Hz tonic@ 293.665 Hz distance 0.000 Hz
In this IRC chat session at irc.dinisnoise.org, bob (say in the USA) creates an IRC channel called #din-bots with the password come2me. Poor alice (say from Russia) runs DIN and joins #din-bots as alice-bot using DIN's bot command. bob messages alice-bot with the DIN command key. alice-bot executes it on her DIN and relays the response back for bob to see. bob thinks note D will sound better than note C so he messages alice-bot with the command key D. alice-bot executes it but there is no response for bob to see. bob wants to find out if his command had any effect so he messages alice-bot again with the command key. alice-bot responds with the current key of her DIN which is indeed the note D. bob is pleased.
The DIN IRC bot is an experimental feature to explore collaborative ways of making music, remote support, telemetry etc. It never connects to any IRC channel on its own.
You must explictly command DIN to connect to an IRC channel with the bot command. And DIN never connects to the internet except thru this IRC bot. Because
DIN is Free software, you can verify this by reading DIN's source code. However,
once connected, the DIN bot exposes your whole file system so bob can wipe out alice's files:{bob} alice-bot: exec rm -rf ~
{alice-bot} F**K you M#@$&()^#&*! I HATE YOU!!!
{bob} poor alice, you are so p0wned :D
So use it among friends, not enemies. And only connect to IRC servers that you own and control.
This answer is now a video: the DIN IRC bot
Why the parental advisory?Starting with version 1.6.2, DIN includes a patch called 2600 that transforms a list of very offensive English language words banned from Google Search into morse code and then into music. This may not be suitable for our younger patrons. If you are a teacher or a concerned parent please e-mail the author for a version of DIN that does not contain this patch.
[GNU/Linux] Why does DIN crash with bad scalelist error?You built DIN from source code but ran it from /path-to-din/src directory instead of doing a sudo make install. Please read README to learn how to build DIN from source code.
[GNU/Linux] Why does DIN crash with Segmentation fault error?You upgraded DIN but did not reset to factory settings!
If you did and still get a Segmentation fault, please report this as a bug in din.
[GNU/Linux] Does DIN require OpenGL?Yes because DIN uses OpenGL to draw its user interface. For best performance, install hardware accelerated OpenGL drivers from your graphics card manufacturer (eg., Intel, ATI, & NVIDIA). Drivers from ATI & NVIDIA are proprietary. Nouveau is an open source alternative for NVIDIA card users.
If you are compiling DIN from source code, check if you have OpenGL development files:
ls /usr/include/GL/*.h
ls /usr/lib/libGL*
or
ls /usr/local/include/GL/*.h
ls /usr/local/lib/libGL*
If you use Ubuntu and install DIN from packages,
the installation will go fine but check if you have hardware accelerated OpenGL drivers:
glxgears
Do you see red, green & blue gears rotating? Yes? Good. At least some kind of OpenGL is installed :) Do you also see a good number (say in the thousands or tens of thousands!) for Frame per Second (FPS)? Yes? Very Good :) You seem to have hardware accelerated OpenGL drivers installed!
No?! How about: glxinfo
Did a bunch of lines just scroll past you? No??!! There is no OpenGL on your computer...
The JACK server is not running. Try:
jackd -R -d alsa -s -r 44100 -X seq
If JACK fails to start, check if another program (eg., Firefox playing a video or sound) has grabbed your sound card. Quit this program & try again.
If that fails too, did you install the JACK server? On Ubuntu or similar try:
sudo apt-get install jackd
The JACK server is auto configured but keep the JACK FAQ handy.
This is usually because you have not installed the hardware accelerated OpenGL drivers from your graphics card manufacturer. Check the CPU usage when DIN is running. If it is high, you have software OpenGL drivers. If it is low, you have hardware OpenGL drivers. If you have hardware OpenGL drivers and DIN still crackles & glitches, disable vertical synchronisation to monitor refresh rate. The monitor refresh rate is usually 60 frames per second so if JACK audio buffer size is less than 1024 samples, DIN cant draw the UI and fill the audio buffer fast enough so ... havoc!
[GNU/Linux] What is the latency in DIN?If you started the JACK server with:
jackd -R -d alsa -s -r 44100 -X seq
The latency will be 23.2 milliseconds. This means DIN reads your mouse (x, y & buttons) and keyboard 43 times every second. If you
moved the mouse from note C to D to E on the microtonal keyboard in under 1/43rd of a second, DIN would not sound the note D. Are you that fast? If you
are, try:
jackd -R -d alsa -s -r 44100 -X seq -n 2 -p 128
The latency will now be 2.90 milliseconds. DIN now reads your mouse and keyboard 344 times every second. But the sound may glitch or crackle or not - depends on the computer you are running DIN on and the load it is under apart from din.
[GNU/Linux] Can I stop DIN from auto-connecting to system audio outputs on startup?Yes. In command mode:
set-var auto_connect_outputs 0 <-- long form
sv aco 0 <-- short form
Now restart din. DIN will no longer connect to system audio outputs.
WARNING: You wont hear any sound from DIN until you do! To restore:
set-var auto_connect_outputs 1 <-- long form
sv aco 1 <-- short form
And restart DIN.