EDIT: The official IDJC installation instructions now work for LM 20.1. You should follow those instructions.
I installed the lastest master on a Linux Mint 20.1 system that has never had IDJC installed on it before. Here's the details (This should also work on Ubuntu and Mint 20, but untested).
First, install dependencies. I chose to use jackd2 instead of jackd:
If you don't get any errors, now get the latest master via git
EDIT 5/17/2021:
The previous instructions did not have the cd .. That was causing ./bootstrap to fail. idjc cannot be checked out into the libshout-idjc directory!!!!!
cd idjc
./bootstrap
./configure CFLAGS="-O2" --prefix=/usr
make
sudo make install
If all goes well, you can now setup your jack server the normal way and test!
Now for some optional extras. First I find that having qjackctl will make your life easier. Also, if you want to add effects like reverb to the mic, compression to the music that jack-rack is great.
(leave off jack-rack and lsp-plugins-jack if you don't plan on using effects)
If you use a Prokyon/Ampache database, you will need to install some extra packages/modules. You have 2 choices, the older MySQLdb module, or the newer python3-pymysql package. They are very similar, but the python3-pymysql package does not support compression on the database connection. This probably won't matter unless you are accessing the database over a slow connection. But... for now python3-pymysql will not work with IDJC unless you apply the patch that I submitted (or until it gets merged into master)The patch has been merged into master
For python3-pymysql
sudo apt install python3-pymysql
For MySQLdb. Pick the correct package depending on your database.
Fire up IDJC and you should now be able to connect to your database.
Finally, if you want IDJC to be able to talk to an IRC server
sudo apt install python3-irc
And that's it! You should be up and running with IDJC on Python 3. Please post any comments so I can improve this HOWTO!
EDIT 5/17/2021
Moonbase had already commented on the libswscale and python3 issue (in the next post). I had noticed that, but thought it was an anomaly on his system. I then forgot about it... I should have updated these instructions way back then.... Thanks to Moonbase for pointing those issues out!
Last edit: Brian Millham 2021-05-17
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for that. Mint 20.2 here. Your method worked unlike the official build one where I was stuck at the last ./configure with a conditional thing to "define", and I could therefore not make the "make" command despite having the the Makefile files.
Now my problem is, after running IDJC 0.9.2 and "logging in" a profile, nothing opens and I get a system notification:
"IDJC Failed to open /usr/lib/idjc/idjc.so Cannot continue"
Any clue what I could do to solve that?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I downloaded and followed the instructions from https://idjc.sourceforge.io/install_build.html, I tried all the links to the libshout-idjc, still got the same issue in the terminal. Here it seems the problem is shout-idjc, that I weirdly don't have in libshout-idjc or something.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for making this, Brian. I mainly followed the instructions on the website http://idjc.sourceforge.net/install_build.html and found they lack some needed libs etc. My current procedure is (for 0.9.1_development):
git clone git://idjc.git.sourceforge.net/gitroot/idjc/idjc
cd idjc/
./bootstrap
./configure CFLAGS="-O2" --prefix=/usr
make
sudo make install
Important pitfalls
Package shout-idjc (or was it idjc-shout?) not found in make step:
Forgot ldconfig step above.
Accidentally used --libdir=/usr/lib64 on config line above.
python not found when doing make install:
System has only Python3, not Python2, and package python-is-python3 not installed.
Automake-generated file py-compile will set PYTHON=python and fail.
Quick & dirty fix: Near the beginning of py-compile, find:
if[ -z "$PYTHON"];thenPYTHON=python
fi
and change to:
if[ -z "$PYTHON"];thenPYTHON=python3
fi
More pitfalls
Looks like the current dev master can’t successfully stream to Shoutcast 1.9.8 (Linux) masters using libshout-idjc 2.4.5. I sometimes succeed when suppressing metadata. Don’t know if this is a problem with IDJC or libshout-idjc:
Retry popups follow, but never stop—the counter stays at "1"
Older IDJC versions (0.8.16 & 0.8.19_development; on Ubuntu 14.04, Linux Mint 17.3 & 19.3) can stream to the same server and port just fine. I reckon something got messed up with all the new connection settings, or does libshout-idjc now only work with Shoutcast 2.x servers?
I will update the missing dependencies that you pointed out. I don't know how I missed libogg-dev (libvorbis-dev is in my instructions). I don't know when I installed it, but I found that libswscale-dev was already on my system, and I had installed it in the past. I have no idea why.... Maybe when I installed MakeMKV (it's mainly a file server and DVD/BD/UHD ripper system)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Looks like the current dev master can’t successfully stream to Shoutcast 1.9.8 (Linux) masters using libshout-idjc 2.4.5.
Try setting the Metadata to send Latin-1 instead of UTF-8. That should fix the Shoutcast problem (why are you using such an outdated Shoutcast? Just switch to Icecast). If it doesn't fix the problem, let me know and I'll verify that I didn't miss something. I thought that I made sure it was sending Latin-1, but I may have missed something.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
My combination here doesn’t work with Latin1 or UTF-8, and with "Suppress" only sometimes. My standard setting for Linux DNAS 1.9.8 is Latin1 (plus Latin-1 setting in "Extra Shoutcast"). Problem is, most German stream providers still mainly offer Shoutcast 1.9.8, and stations don’t switch. (I’m only a guest show host on that station, it is not mine.) So I think 1.9.8 support must stay for some more years. Sigh.
Icecast (which I use on my servers) did also not work, on a real quick try, so I assume something must be broken in libshout-idjc 2.4.5 and/or IDJC 0.9.1_development. But this was only a quick shot using a local Icecast 2.3.3.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Moonbase, I'm looking into this problem, and have found where I can sometimes not connect to Icecast, or get disconnects when metadata is being sent. If you would, can you test something for me? Try with the stream format as Xiph/Ogg and see if that fixes the problem with Icecast (won't work for Shoutcast).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I found the problem I downgraded to libshout-idjc 2.4.2 and can stream using MPG3, including Latin for the Metadata. When I first started the conversion, I was using 2.4.2 and later switched to 2.4.5. At that time I was using Vorbis instead of MPG3 for testing, so didn't notice the problem with 2.4.5. It's not hard to go back to 2.4.2, but you do have to edit the configure.ac file. I can supply a patch if you'd like. Also, the latest push requires gettext 0.21 and that's not available yet in the Mint/Ubuntu repositories. I again just hacked configure.ac to get around that. I will file a bug report.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I wonder. There must have been a reason for libshout-idjc 2.4.5 …
Couldn’t ad hoc send Xiph/Ogg to my Icecast, but that might be a problem of my setup (MP3-based, partly Shoutcast-compatible, and several fallbacks and internal relays), which was originally a test instance for my real servers (which I discontinued) that used liquidsoap as main input (for auto-DJing, smooth transitions, and program planning).
Anything else I could easily help testing (my old studio system still runs Ubuntu Studio 14.04 but I might install Icecast on the Linux Mint 20.1 machine for testing)?
My workflow is mainly MP3 streaming (song library is FLAC+MP3), and about 10 colleagues I have to support are streaming to Shoutcast 1.9.8/Linux stations, using these settings:
Connection: Shoutcast Master
Format: MPEG; MP3; V1; 44100 Hz; 128 kbps; Joint Stereo; Quality 0 Most; Metadata Latin1; Resample Quality Medium; Pregain 0dB.
Extra Shoutcast: [x] use ISO-8859-1 encoding for fixed metadata
Troubleshooting: [x] If connection breaks, reconnect; 5,5,5,5,5,5,5,5,5,5,5,5; [ ] Repeat [x] Quiet; [x] Discard audio data for as long as needed.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can confirm the problem with Shoutcast 2 beta 1. No connection possible. If I choose to suppress metadata, the connection succeeds but people can't connect to the server.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Are you willing to try downgrading libshout-idjc? All you need to do is install the old version as normal (don't forget to do the ldconfig). I assume you are using git, so do a git pull to make sure everything is up to date.
Next, grab the patch I've attached. It just makes 2 small changes to configure.ac. Apply the patch:
gitapplypath/to/idjc-configure.patch
And then build IDJC as normal. You will need to do the bootstrap and configure. With the patch you can build IDJC using either libshout-idjc version. I don't know what problems that could happen, but I've tested with icecast and it works fine. MP3 and Latin1 don't cause the stream to disconnect. This will help confirm if it really is a problem with the new libshout-idjc.
I tested on my other system and switching to libshout-idjc 2.4.2 fixes the problem, at least when using Icecast. I'd test against a Shoutcast 1.9.8 server, but I can't seem to find legit download of Shoutcast for linux. If someone has a tar.gz I'd be happy to set it up on my local server for further testing.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for that! I found that libshout-idjc 2.4.4 also has metadata issues with 1.9.8, but when suppressing metadata I can connect. I next reverted IDJC to using libshout-idjc 2.4.2 and sending metadata (latin1) works. So my conclusion is that they broke something in libshout between 2.4.2 and 2.4.4. Interesting side note, when connecting using 2.4.4 I always see a password error. With 2.4.2 I do not see that error (in the shoutcast server log)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hm. Seems several people are working on libshout-idjc now. I wonder why they apparently removed 2.4.5 again. (My original tests were with 2.4.5.) So my next test will be with 2.4.2 I guess.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
libshout-idjc 2.4.4 is now available. I've updated my instructions. I tested with MP3V1 (latin-1 encoding) and it works fine. You will need to get the latest git IDJC, and build it after installing libshout-idjc-2.4.4.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
EDIT: The official IDJC installation instructions now work for LM 20.1. You should follow those instructions.
I installed the lastest master on a Linux Mint 20.1 system that has never had IDJC installed on it before. Here's the details (This should also work on Ubuntu and Mint 20, but untested).
First, install dependencies. I chose to use jackd2 instead of jackd:
EDIT 5/17/2021:
The makefile expects that python == python3. On a new system this will not be true. python no longer exists by default. To fix that:
Since we will be using git, we also need:
Next, get the latest version (2.4.4) of libshout-idjc. Download it from https://sourceforge.net/projects/libshoutidjc.idjc.p/files/latest/download
Important note, I've updated the instructions! 2.4.5 has bugs, so libshout-idjc was rolled back to 2.4.4
Extract and build it:
If you don't get any errors, now get the latest master via git
EDIT 5/17/2021:
The previous instructions did not have the cd .. That was causing ./bootstrap to fail. idjc cannot be checked out into the libshout-idjc directory!!!!!
and build it
If all goes well, you can now setup your jack server the normal way and test!
Now for some optional extras. First I find that having qjackctl will make your life easier. Also, if you want to add effects like reverb to the mic, compression to the music that jack-rack is great.
(leave off jack-rack and lsp-plugins-jack if you don't plan on using effects)
If you use a Prokyon/Ampache database, you will need to install some extra packages/modules. You have 2 choices, the older MySQLdb module, or the newer python3-pymysql package. They are very similar, but the python3-pymysql package does not support compression on the database connection. This probably won't matter unless you are accessing the database over a slow connection.
But... for now python3-pymysql will not work with IDJC unless you apply the patch that I submitted (or until it gets merged into master)The patch has been merged into masterFor python3-pymysql
For MySQLdb. Pick the correct package depending on your database.
Fire up IDJC and you should now be able to connect to your database.
Finally, if you want IDJC to be able to talk to an IRC server
And that's it! You should be up and running with IDJC on Python 3. Please post any comments so I can improve this HOWTO!
EDIT 5/17/2021
Moonbase had already commented on the libswscale and python3 issue (in the next post). I had noticed that, but thought it was an anomaly on his system. I then forgot about it... I should have updated these instructions way back then.... Thanks to Moonbase for pointing those issues out!
Last edit: Brian Millham 2021-05-17
Thank you for that. Mint 20.2 here. Your method worked unlike the official build one where I was stuck at the last ./configure with a conditional thing to "define", and I could therefore not make the "make" command despite having the the Makefile files.
Now my problem is, after running IDJC 0.9.2 and "logging in" a profile, nothing opens and I get a system notification:
"IDJC Failed to open /usr/lib/idjc/idjc.so Cannot continue"
Any clue what I could do to solve that?
What is the output of
ldd -r /usr/lib/idjc/idjc.so
This usually reveals the problem.
Here is the output:
Last edit: Clément Radio 2021-12-21
I just pushed a fix to the git repository. Hopefully that solves the problem.
It worked, thank you.
This time tried on Debian 11 (LMDE 5) and got this after
$ ~/Downloads/idjc-0.9.3$ ./configure CFLAGS="-O2" --prefix=/usr --libdir=/usr/lib64
:
Is it a package I couldn't get? There's a lot of packages that do not exist here in Debian. It's lighter, more stable, but there's no Ubuntu comfort.
Scroll to the top of this page and you should see a link to the libshout-idjc sub-project.
I downloaded and followed the instructions from https://idjc.sourceforge.io/install_build.html, I tried all the links to the libshout-idjc, still got the same issue in the terminal. Here it seems the problem is shout-idjc, that I weirdly don't have in libshout-idjc or something.
Thanks for making this, Brian. I mainly followed the instructions on the website http://idjc.sourceforge.net/install_build.html and found they lack some needed libs etc. My current procedure is (for 0.9.1_development):
Note
libswscale-dev
,libvorbis-dev
andlibogg-dev
were missing from the original instructions.libshout-idjc
from https://sourceforge.net/projects/libshoutidjc.idjc.p/files/libshout-idjc-2.4.5.tar.gz/download/:Important pitfalls
shout-idjc
(or was itidjc-shout
?) not found in make step:ldconfig
step above.--libdir=/usr/lib64
on config line above.python
not found when doing make install:python-is-python3
not installed.py-compile
will setPYTHON=python
and fail.py-compile
, find:and change to:
More pitfalls
Retry popups follow, but never stop—the counter stays at "1"
Older IDJC versions (0.8.16 & 0.8.19_development; on Ubuntu 14.04, Linux Mint 17.3 & 19.3) can stream to the same server and port just fine. I reckon something got messed up with all the new connection settings, or does libshout-idjc now only work with Shoutcast 2.x servers?
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
I will update the missing dependencies that you pointed out. I don't know how I missed libogg-dev (libvorbis-dev is in my instructions). I don't know when I installed it, but I found that libswscale-dev was already on my system, and I had installed it in the past. I have no idea why.... Maybe when I installed MakeMKV (it's mainly a file server and DVD/BD/UHD ripper system)
My combination here doesn’t work with Latin1 or UTF-8, and with "Suppress" only sometimes. My standard setting for Linux DNAS 1.9.8 is Latin1 (plus Latin-1 setting in "Extra Shoutcast"). Problem is, most German stream providers still mainly offer Shoutcast 1.9.8, and stations don’t switch. (I’m only a guest show host on that station, it is not mine.) So I think 1.9.8 support must stay for some more years. Sigh.
Icecast (which I use on my servers) did also not work, on a real quick try, so I assume something must be broken in libshout-idjc 2.4.5 and/or IDJC 0.9.1_development. But this was only a quick shot using a local Icecast 2.3.3.
I've tested against Icecast 2.4.4 and it works fine, so I'm not sure that the issue is. What parameters are you using for the stream?
It's amazing that the providers are still using such an outdated version of Shoutcast.
Moonbase, I'm looking into this problem, and have found where I can sometimes not connect to Icecast, or get disconnects when metadata is being sent. If you would, can you test something for me? Try with the stream format as Xiph/Ogg and see if that fixes the problem with Icecast (won't work for Shoutcast).
I found the problem I downgraded to libshout-idjc 2.4.2 and can stream using MPG3, including Latin for the Metadata. When I first started the conversion, I was using 2.4.2 and later switched to 2.4.5. At that time I was using Vorbis instead of MPG3 for testing, so didn't notice the problem with 2.4.5. It's not hard to go back to 2.4.2, but you do have to edit the configure.ac file. I can supply a patch if you'd like. Also, the latest push requires gettext 0.21 and that's not available yet in the Mint/Ubuntu repositories. I again just hacked configure.ac to get around that. I will file a bug report.
I wonder. There must have been a reason for libshout-idjc 2.4.5 …
Couldn’t ad hoc send Xiph/Ogg to my Icecast, but that might be a problem of my setup (MP3-based, partly Shoutcast-compatible, and several fallbacks and internal relays), which was originally a test instance for my real servers (which I discontinued) that used liquidsoap as main input (for auto-DJing, smooth transitions, and program planning).
Anything else I could easily help testing (my old studio system still runs Ubuntu Studio 14.04 but I might install Icecast on the Linux Mint 20.1 machine for testing)?
My workflow is mainly MP3 streaming (song library is FLAC+MP3), and about 10 colleagues I have to support are streaming to Shoutcast 1.9.8/Linux stations, using these settings:
Connection: Shoutcast Master
Format: MPEG; MP3; V1; 44100 Hz; 128 kbps; Joint Stereo; Quality 0 Most; Metadata Latin1; Resample Quality Medium; Pregain 0dB.
Extra Shoutcast: [x] use ISO-8859-1 encoding for fixed metadata
Troubleshooting: [x] If connection breaks, reconnect; 5,5,5,5,5,5,5,5,5,5,5,5; [ ] Repeat [x] Quiet; [x] Discard audio data for as long as needed.
I can confirm the problem with Shoutcast 2 beta 1. No connection possible. If I choose to suppress metadata, the connection succeeds but people can't connect to the server.
Are you willing to try downgrading libshout-idjc? All you need to do is install the old version as normal (don't forget to do the ldconfig). I assume you are using git, so do a
git pull
to make sure everything is up to date.Next, grab the patch I've attached. It just makes 2 small changes to configure.ac. Apply the patch:
And then build IDJC as normal. You will need to do the bootstrap and configure. With the patch you can build IDJC using either libshout-idjc version. I don't know what problems that could happen, but I've tested with icecast and it works fine. MP3 and Latin1 don't cause the stream to disconnect. This will help confirm if it really is a problem with the new libshout-idjc.
I tested on my other system and switching to libshout-idjc 2.4.2 fixes the problem, at least when using Icecast. I'd test against a Shoutcast 1.9.8 server, but I can't seem to find legit download of Shoutcast for linux. If someone has a tar.gz I'd be happy to set it up on my local server for further testing.
Couldn’t find sc_serv 1.9.8 on winamp.com anymore but it seems LCHost keep a copy at http://mirror.lchost.net/download.nullsoft.com/shoutcast/tools/sc_serv_1.9.8_Linux.tar.gz. Found this in an old CentOS 6 installation instruction, and it seems to run on Linux Mint 20.1.
I’ll chime in the next days with a libshout-idjc 2.4.2/2.4.4 test.
Last edit: Moonbase 2021-02-14
Thanks for that! I found that libshout-idjc 2.4.4 also has metadata issues with 1.9.8, but when suppressing metadata I can connect. I next reverted IDJC to using libshout-idjc 2.4.2 and sending metadata (latin1) works. So my conclusion is that they broke something in libshout between 2.4.2 and 2.4.4. Interesting side note, when connecting using 2.4.4 I always see a password error. With 2.4.2 I do not see that error (in the shoutcast server log)
Hm. Seems several people are working on libshout-idjc now. I wonder why they apparently removed 2.4.5 again. (My original tests were with 2.4.5.) So my next test will be with 2.4.2 I guess.
libshout-idjc 2.4.4 is now available. I've updated my instructions. I tested with MP3V1 (latin-1 encoding) and it works fine. You will need to get the latest git IDJC, and build it after installing libshout-idjc-2.4.4.
I can confirm that IDJC 0.9.1 works with libshout-idjc 2.4.4 while connecting to Shoutcast 2 beta 1. AAC and metadata enabled. Great work guys!