Internet DJ Console: The Preferences Window


The preferences window is easily the window most in need of documentation, so here it is:

The General Tab:

The Feature Set frame allows you to set the amount of window space to a minimum. It also minimises CPU usage by doing practically no audio mixing. You get just one player, no crossfader or microphone when you choose the Basic Streamer option. Choosing Start Mini will cause IDJC to be in that state automatically when the application is started.

The Bits and Bobs frame is where you can turn on some of the optional features of IDJC. Most of these options concern which audio level meters are shown. Dither adds triangular dither to the media player signals which may sound better if you have a 24 bit capable soundcard. DJ Alarm causes an audible beep to the DJ, not the listeners, when the music is about to come to an end. The alarm will sound nine seconds from the end of the last track. The position of the crossfader determines which player is monitored and the playlist mode is taken into account. EXTM3U turns on processing of extended data in m3u playlists and causes playlists that are saved to be in the extended m3u format.

A frame containing the configuration settings for the Stream Normalizer is provided should you ever want to tweak this feature. A defaults button is provided to fill in some sane values.

Below that are the tuning settings for the Record Autosuspend feature which is used to remove pauses in your speech when using the Record feature with the Yellow Pause Button toggled on.

The Player Settings At Startup frame is where you can set which playlist mode or player button settings you prefer that will survive an application restart.


The Microphone Tab:

Now this is complicated!

What I have done here is to implement a pretty much fully featured Compressor and Noisegate. I will expand on the abbreviated labels and I leave it up to you to find out what they do at a later time, but first I will tell you why I put this in.

Most computer audio can be described as crap. The microphones that come with your computer are the cheapest that there are. Not only insensitive, but when you do turn them up electronically what you tend to get is a lot of noise and mains hum accompanying the signal.

What I have done here is make the audio loud without going into clipping or hard limiting, which would sound unnatural, and while this generally makes the audio more noisy, I have implemented a noise gate in order to counteract some of that.

What the compressor effectively does is ride the volume control, which is something you may do yourself, when watching TV at night. Turning the volume up for the quiet bits and quickly turning it down for the loud action scenes that you don't want to wake the neighbours with.


Here is a list explaining the meaning of the compressor terms from left to right and top to bottom. The terms are similar to the ones used by the electonic units you can find in recording studios.



Here similarly are the Noisegate terms.



Thats the complicated bit over and done with. Now if you will just scroll down there is more.

What we have here are a few more microphone settings.

Bass-cut is a high pass filter that can reduce the amount of mains hum or infrasound.

Headroom reduces the players volume by this amount when the Microphone button is pressed in the main window.

The invert boxes are for when you are running two microphones and one of them is out of phase. Just click one of the boxes to fix it.

The level boxes are provided so you can reduce the gain of the loudest microphone so that they can both operate on the same compressor and noisegate settings. They are independantly compressed however. Just that the control settings for both are the same.

The L and R sliders are for stereo mixing your microphones. If you are using just one then keeping them at each side is good, otherwise I suggest setting these at 1⁄3rd and 2⁄3rds the way across.


X-Chat:

The X-Chat feature works in conjunction with the X-Chat 2 plugin, which needs to be loaded into X-Chat in order to work. This can be accomplished by either copying or symlinking the plugin to your ~/.xchat2 directory so that it will automatically start whenever X-Chat does or by loading it manually from within X-Chat. The plugin filename is idjc-announce.py and is typically installed to /usr/local/share/idjc/ or /usr/share/idjc/. Track announcements and timed messages are only sent when you are actually streaming.

The Track Announcer sends a new message whenever the song changes.

Latency is the estimated latency in seconds of the server. Servers like to buffer lots of data so that they can supply a steady stream of audio to the listeners despite the poor connection the DJ may have to the server and the listeners own media players like to do the same. Unfortunately this introduces latency that can be upto around 15 seconds. Without the latency setting in X-Chat your announcements could be happening 15 seconds before the listeners hear your song. Set this number so that your announcements coincide as well as possible to when the listeners actually start hearing your song.

Nick needs to match the nick you are logged in as. This is a precaution for just in case you are logged in under two different nicks. Without this precaution you would end up announcing the track twice or once under an unintended nick.

The Message can consist of placeholders like %s for the song you are playing. A full list of valid placeholders is shown to help you.

Channels is a list of channels in a comma separated list that you want to send your message to.

IRC Message Timer will send a new message every so many minutes.

Interval is the amount of time in minutes between messages.


Jack Ports:

IDJC uses Jack Audio Connection Kit for its audio connections. The boxes provided for you are for the entering of port names for IDJC to bind to.

The first and last pairs can bind to any JACK output port. The Aud and Str outputs can bind to any JACK input port. Typically on the sound card so that you can hear yourself.

The Aux input port allows you to stream from an external JACK application by pressing the jack plug icon in the main window.

Typing jack_lsp in a console will give you a list of valid JACK ports.

In our example I have opted to bind the left microphone connection to the same output port as the right microphone connection. This is a good idea if you are not needing stereo as you can choose the one that gives you the best signal to noise ratio.

The Set button locks in the new setting, and the Save button preserves that setting across application restarts.



Other Windows In IDJC

Main Window Server Jingles