diff --git a/ChangeLog b/ChangeLog index bc1c8662..18850797 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +3.0.0 + +- introduced new audio codec "CELT", not compatible to old versions + +- IMA-ADPCM, MS-ADPCM removed + +- since CELT works on 48 kHz sample rate, resampling was removed + + 2.3.0 - new system sample rate of 33 kHz to improve audio quality, not compatible @@ -7,6 +16,7 @@ - added command line argument for connecting a server at software start-up + 2.2.2 - "Mute" and "Solo" check boxes for each connected client fader diff --git a/README b/README index c30409fe..34876834 100755 --- a/README +++ b/README @@ -40,28 +40,11 @@ computer to the server should not exceed 30 ms average and the network jitter should be as low as 2-5 ms (To get a low ping time on DSL connections, an extra option "DSL fast path" should be enabled by your internet provider). -Technical details -To get sufficient results, a sample rate of 24 kHz (mono channel) was chosen. -The audio compression algorithm IMA-ADPCM with very low delay is used which -results in a raw compressed audio data rate of 96 kbps. First tests showed -that an upstream of 128 kbps is too slow for using the llcon software. At -least 256 kbps upstream bandwidth is required. - The llcon software package includes both, the server and the client functionality which can be selected by using command line arguments. - -MANUAL: For starting server type ./llcon -s -Start the llcon server on a remote computer with fast internet access. Start the -llcon client on your local computer and connect your sound card with your -instrument/microphone and headphone and type in the IP address of the server. -There are levelers for adjusting the sound card (in/out) and network buffer sizes. -It seems that 2 blocks for network buffer is an optimal choice. For the sound card -buffer, try to make them as short as possible by watching the LEDs below the -levelers (they should stay green). - For test purpose it is possible to run server and client on the same computer. For this setup first start the server and then the client. Type in 127.0.0.1 for the IP address in the client software. @@ -74,11 +57,14 @@ source: - Qt cross-platform application framework: http://trolltech.com -- audio reverberation code: by Perry R. Cook and Gary P. Scavone, 1995 - 2004 - (taken from "The Synthesis ToolKit in C++ (STK)") +- The CELT ultra-low delay audio codec: http://www.celt-codec.org -- IMA-ADPCM: by Erik de Castro Lopo +- Audio reverberation code: by Perry R. Cook and Gary P. Scavone, 1995 - 2004 + (taken from "The Synthesis ToolKit in C++ (STK)") -- some parts are taken from the project "Dream: a PC-based Digital Radio Mondiale - (DRM) receiver" written by one of the llcon authors, Volker Fischer: - http://drm.sf.net +- Some parts are taken from the project "Dream: a PC-based Digital Radio Mondiale + (DRM) receiver" written by one of the llcon authors, Volker Fischer: + http://drm.sf.net + +- Some pixmaps are from Clker.com - vector clip art online, + royalty free & public domain diff --git a/configure.in b/configure.in index 5a957054..132db4e6 100755 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.50) AC_INIT(src/main.cpp) -AM_INIT_AUTOMAKE(llcon,2.3.1cvs) +AM_INIT_AUTOMAKE(llcon,3.0.0cvs) AM_CONFIG_HEADER(config.h) @@ -15,7 +15,6 @@ AC_PROG_CPP AC_PROG_INSTALL AC_SUBST(LIBTOOL_DEPS) AC_PROG_MAKE_SET -AC_CHECK_PROGS(RPMBUILD, rpmbuild, rpm) dnl Configuration Arguments diff --git a/linux/Makefile.am b/linux/Makefile.am index d2abf819..b24eeaf4 100755 --- a/linux/Makefile.am +++ b/linux/Makefile.am @@ -1,3 +1,5 @@ +#SUBDIRS = ../libs/celt/libcelt + bin_PROGRAMS = llcon llcon_SOURCES = ../src/buffer.cpp \ diff --git a/src/channel.cpp b/src/channel.cpp index ef77f030..35b53340 100755 --- a/src/channel.cpp +++ b/src/channel.cpp @@ -829,6 +829,17 @@ void CChannel::OnNetTranspPropsReceived ( CNetworkTransportProps NetworkTranspor CycleTimeVariance.Reset(); } + + // in case of a server channel, use the same network buffer + // size factor as the connected client + if ( bIsServer ) + { + + // TODO + // if size is not equal + // change size + + } } void CChannel::OnReqNetTranspProps() diff --git a/src/client.cpp b/src/client.cpp index 9ca655da..3bb7f3bb 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -302,6 +302,10 @@ void CClient::Init ( const int iPrefMonoBlockSizeSamIndexAtSndCrdSamRate ) vecbyNetwData.Init ( iCeltNumCodedBytes ); // the channel works on the audio coded block size + +// TEST right now we only support 128 samples, later 256 and 512, too +Channel.SetNetwBufSizeFactOut ( 1 ); + // Channel.SetNetwBufSizeOut ( iCeltNumCodedBytes ); } diff --git a/src/llconserverdlg.cpp b/src/llconserverdlg.cpp index ba83ab80..1de8da2b 100755 --- a/src/llconserverdlg.cpp +++ b/src/llconserverdlg.cpp @@ -116,12 +116,8 @@ void CLlconServerDlg::OnTimer() vecpListViewItems[i]->setText ( 6, "None" ); break; - case CT_IMAADPCM: - vecpListViewItems[i]->setText ( 6, "IMA-ADPCM" ); - break; - - case CT_MSADPCM: - vecpListViewItems[i]->setText ( 6, "MS-ADPCM" ); + case CT_CELT: + vecpListViewItems[i]->setText ( 6, "CELT" ); break; default: diff --git a/src/protocol.cpp b/src/protocol.cpp index a904dc57..63d93195 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -133,9 +133,7 @@ MESSAGES - "sam rate": sample rate of the audio stream - "audiocod type": audio coding type, the following types are supported: - 0: none, no audio coding applied - - 1: IMA-ADPCM - - 2: MS-ADPCM - - 3: CELT + - 1: CELT - "version": version of the audio coder, if not used this value shall be set to 0 - "audiocod arg": argument for the audio coder, if not used this value shall be set to 0 @@ -902,8 +900,6 @@ bool CProtocol::EvaluateNetwTranspPropsMes ( const CVector& vecData ) static_cast ( GetValFromStream ( vecData, iPos, 2 ) ); if ( ( iRecCodingType != CT_NONE ) && - ( iRecCodingType != CT_IMAADPCM ) && - ( iRecCodingType != CT_MSADPCM ) && ( iRecCodingType != CT_CELT ) ) { return true; diff --git a/src/res/gig.png b/src/res/gig.png index 19df1db1..970d0f48 100755 Binary files a/src/res/gig.png and b/src/res/gig.png differ diff --git a/src/util.cpp b/src/util.cpp index ef628e5c..561ee35e 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -330,11 +330,10 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) tr("llcon uses the following libraries, resources or code snippets:") + "

" "