Commit graph

1241 commits

Author SHA1 Message Date
Peter L Jones
331de68e86 Refactor, refactor, refactor 2019-05-20 21:06:09 +01:00
Peter L Jones
387a34132c Minor fixes 2019-05-19 14:01:30 +01:00
Peter L Jones
50f69ec7e4 SVG history graph 2019-05-19 12:20:34 +01:00
Volker Fischer
fa0f122638 fixed warnings shown in QtCreator 2019-05-17 22:55:46 +02:00
Volker Fischer
6f12d8395a remove PROTMESSID_OPUS_SUPPORTED since it is not required anymore 2019-05-17 22:16:19 +02:00
Volker Fischer
6466a4aaf7 cleanup some 'COMPATIBILITY OLD VERSION, TO BE REMOVED' 2019-05-17 22:06:48 +02:00
Peter L Jones
e3025e5492 Fix wave file header lengths 2019-04-21 22:13:07 +01:00
Volker Fischer
1d2a240eec fix some texts 2019-04-13 12:52:44 +02:00
Volker Fischer
0d9c98f9be mention pljones in the About dialog and README 2019-04-12 19:01:21 +02:00
Volker Fischer
b1874d193f small fixes 2019-04-12 18:55:43 +02:00
Volker Fischer
a6a10d537e take old code again 2019-04-12 18:49:49 +02:00
Volker Fischer
aa036a08e3 small fixes 2019-04-12 18:48:20 +02:00
Volker Fischer
4a86ccda4f I fear a memory leak -> better solution required... 2019-04-12 18:48:06 +02:00
Volker Fischer
53fb06b137 "compress" the keyPressEvent a bit :-) 2019-04-12 18:42:05 +02:00
Volker Fischer
3348056253 move ConsoleWriterFactory implementation in util.cpp 2019-04-12 18:24:35 +02:00
Volker Fischer
feaea570f2 use the application pointer directly without the need of the define 2019-04-12 18:12:22 +02:00
Volker Fischer
05a0ac60a6 fixed warnings 2019-04-12 18:04:28 +02:00
Volker Fischer
8367ecc64f remove -T command line argument since it was only intended for debugging (see pull request from pljones). 2019-04-12 18:02:26 +02:00
Volker Fischer
30b5833d3d - remove unnecessary command line argument (if directory is given, the recording is enabled automatically
- jamrecorder is not a pointer in the class but an object now
- only call jamrecorder functions if it is enabled
2019-04-11 22:25:36 +02:00
Volker Fischer
0dbef268a3 added GPL headers 2019-04-10 20:00:54 +02:00
Peter L Jones
005a506b0d
Merge branch 'master' into feature/pljones-audio-stream-saving 2019-04-03 18:14:49 +01:00
Peter L Jones
8c1deffda7 Add recording support with Reaper Project generation
Includes the following changes

* Initial .gitignore
Administrative

* Fix up warning message
* Not all Windows file systems are case insensitive
Bugfixes

* (Qt5) Use QCoreApplication for headless
Possible solution to get the application to run as a headless server but it loses the nice history graph, so not ideal.

* Avoid ESC closing chat
Because ESC shouldn't close the chat window. Or the main app window.

* Add console logging support for Windows
Whilst looking for the headless support, I found this idea for Windows logging.  New improved version.  This makes far fewer changes.

----

* Add recording support with Reaper Project generation
The main feature!
    * New -r option to enable recording of PCM files and conversion to Reaper RPP with WAV files
    * New -R option to set the directory in which to create recording sessions
    You need to specify the -R option, there's no default... so I guess -r and -R could be combined.
    * New -T option to convert a session directory with PCM files into a Reaper RPP with WAV files
    You can use -T on "failed" sessions, if the -r option captures the PCMs but the RPP converter doesn't run for some reaon. (It was useful during development, maybe less so once things seem stable.)

The recorder is implemented as a new thread with queuing from the main "real time" server thread.

When a new client connects or if its audio format changes (e.g. mono to stereo), a new RIFF WAVE file is started.  Each frame of decompressed audio for each client written out as LPCM to the file.  When the client disconnects, the RIFF WAVE headers are updated to reflect the file length.

Once all clients disconnect, the session is considered ended and a Reaper RPP file is written.
2019-04-03 18:12:45 +01:00
Volker Fischer
e8096e48f0 2018 -> 2019 2019-03-24 09:30:30 +01:00
Volker Fischer
3609332754 use the given MIDI channel number of filtering input MIDI messages (channel number 0 means that we listen to all channels) 2019-01-22 16:11:41 +00:00
Volker Fischer
2a73d6878e fix for Behringer X-Touch 2019-01-21 15:59:25 +00:00
Volker Fischer
4e1b39236d implement MIDI controller parsing (first version, not yet tested) 2019-01-19 08:19:31 +00:00
Volker Fischer
9434a208ce first MIDI controller implementation: TD-20 Hi-Hat control can set fader level of first audio channel 2019-01-12 15:29:45 +00:00
Volker Fischer
d36cd17815 preparation for MIDI controller audio fader level support 2019-01-12 14:32:41 +00:00
Volker Fischer
91642b0c2e use integer for the fader level message 2019-01-12 12:59:16 +00:00
Volker Fischer
ea24503fdc preparation for MIDI controller audio fader level support 2019-01-12 12:45:08 +00:00
Volker Fischer
29332269c9 support native Jack support under Windows using the CONFIG switch "jackonwindows" 2018-03-22 20:50:05 +00:00
Volker Fischer
5c3bc50764 fixed a compiler warning 2018-03-22 20:47:08 +00:00
Volker Fischer
aaa766a659 make sure we do not get a too long horizontal scroll bar 2018-03-20 17:10:25 +00:00
Volker Fischer
8bfdc7347a 2017 -> 2018 2018-03-09 21:13:02 +00:00
Volker Fischer
a75670944a possible fix for a crash on MacOS High Sierra (reported in the Jamulus forum) 2018-03-08 20:03:07 +00:00
Volker Fischer
6c8362ea3a fix compiplation error on MacOS 2018-02-25 08:50:58 +00:00
Volker Fischer
b0d37c86e7 2016 -> 2017 2017-08-11 21:08:54 +00:00
Volker Fischer
492ae88fb2 new Qt URL 2017-05-25 20:06:59 +00:00
Volker Fischer
9c1ddbba64 added support for jackonmac 2016-07-31 08:02:32 +00:00
Volker Fischer
fd69efb060 bug fix with the history graph plotting (an invalid point was added to the graph) 2016-03-06 10:39:59 +00:00
Volker Fischer
403bf81f2a removed some unnecessary code 2016-03-06 10:09:41 +00:00
Volker Fischer
600d5f6832 fixed bug: #25 No client list in connection dialog for server which is full 2016-03-05 13:38:31 +00:00
Volker Fischer
5096e3208a added some more help text 2016-02-20 19:16:51 +00:00
Volker Fischer
1b29d8034c show server name in the server list in bold font if it is a permanent server 2016-02-15 17:35:49 +00:00
Volker Fischer
4e497d3f99 remove old CELT library 2016-02-14 16:19:14 +00:00
Volker Fischer
be63533c82 automatic server setting for permanent server flag in the protocol 2016-02-09 16:09:59 +00:00
Volker Fischer
9ab7164d05 the Musicians value in the server list shows a warning if the server is full 2016-02-09 15:05:06 +00:00
Volker Fischer
8e33e34350 fixed the issue #19 Issues with the ping time measurement 2016-02-07 14:02:30 +00:00
Volker Fischer
4dd24a9173 avoid buffer length of one for the auto jitter buffer detection 2016-01-30 18:22:19 +00:00
Volker Fischer
f66db79b8b store more fader levels in the ini file 2016-01-06 09:16:32 +00:00
Volker Fischer
bf89e072eb update the copyright text 2015-12-31 13:22:18 +00:00
Volker Fischer
ca73117279 update the copyright 2015-12-31 13:14:09 +00:00
Volker Fischer
60a3f82912 show the number of connected clients in the MacOS task bar 2015-12-18 20:17:31 +00:00
Volker Fischer
2866e40a03 show an icon and some more text for the clients in the server list 2015-12-10 15:52:29 +00:00
Volker Fischer
2ad6eb1600 finished: show the names of the connected clients in the server list 2015-12-09 17:11:16 +00:00
Volker Fischer
932e802eb6 fixes 2015-12-09 16:34:21 +00:00
Volker Fischer
33c6e77c68 on request show the names of the connected clients in the server list 2015-12-09 15:50:30 +00:00
Volker Fischer
5d693d8ea4 on request show the names of the connected clients in the server list 2015-12-06 17:51:06 +00:00
Volker Fischer
89c22f685b small fixes in the comments 2015-12-06 15:20:40 +00:00
Volker Fischer
826866fe3e increase the maximum number of sound card channels supported by Jamulus 2015-11-25 15:55:05 +00:00
Volker Fischer
7ace26f23e added a new client fader level setting 2015-11-25 15:52:00 +00:00
Volker Fischer
1aa990b262 update in the comments 2015-11-22 17:56:42 +00:00
Volker Fischer
62af55929f more debug output 2015-11-20 12:09:16 +00:00
Volker Fischer
3d647400db add support for channel selection for MacOS 2015-11-19 19:36:47 +00:00
Volker Fischer
e674b21c0c nogui option is also supported for the client 2015-10-24 14:34:05 +00:00
Volker Fischer
b63a625ffa changed the default central server URL 2015-10-18 19:07:43 +00:00
Volker Fischer
b5bae73ab3 added support for server disconnection 2015-10-17 15:37:58 +00:00
Volker Fischer
c17413afe3 revert back to original URL 2015-10-10 09:41:58 +00:00
Volker Fischer
e3675e1b40 changed central server URL to jamulus.no-ip.org 2015-10-10 06:45:30 +00:00
Volker Fischer
12889fbea5 fixed a buffer overrun problem in the Mac audio interface if the sound card has a lot of input and output channels 2015-07-05 12:00:54 +00:00
Volker Fischer
a46ea26cd8 support client operation without using a GUI frontend 2015-03-25 20:29:52 +00:00
Volker Fischer
79c83a4c13 another improvement of auto jitter buffer detection in very bad network conditions 2015-03-21 11:48:27 +00:00
Volker Fischer
0691ed7910 lowered green and yellow LED threshold for the overall delay 2015-03-21 11:46:25 +00:00
Volker Fischer
bb4402ed98 allow that the automatic jitter buffer size detection can use a size of 1 2015-03-20 16:21:33 +00:00
Volker Fischer
c9b92728fa support older QT versions 2015-03-16 16:17:31 +00:00
Volker Fischer
4b43210eb8 If the actual ASIO buffer delay is not one of the 128, 256 or 512 samples, you do not see the number in the GUI. Add a info text on what buffer size is actually used. 2015-03-15 06:59:30 +00:00
Volker Fischer
16f170c030 improvement of auto jitter buffer detection in bad network conditions 2015-03-14 16:54:36 +00:00
Volker Fischer
af4e972bfd update in comments 2015-03-14 07:08:15 +00:00
Volker Fischer
8321fc1e25 adjust the weighting factor for overall delay calculation of the jitter buffers 2015-03-13 21:36:12 +00:00
Volker Fischer
8f3637d4a4 adjust the limit for the green LED 2015-03-13 21:29:14 +00:00
Volker Fischer
d924380262 fix overall delay calculation 2015-03-13 21:18:09 +00:00
Volker Fischer
115d9cefe0 added a TODO comment 2015-03-13 21:14:41 +00:00
Volker Fischer
04634e4195 added debug code for measuring the timer jitter 2015-03-13 17:15:48 +00:00
Volker Fischer
403d3820bf added class CTimingMeas 2015-03-13 17:10:30 +00:00
Volker Fischer
583a61081b added test code for debugging the soundcard timing jitter 2015-03-13 17:09:49 +00:00
Volker Fischer
4de2d7ac44 fixed a compiler warning 2015-02-15 08:44:49 +00:00
Volker Fischer
33e5a07cf7 change all 2014 to 2015 2015-02-04 18:17:23 +00:00
Volker Fischer
a26fc768bf fixed alignment problems in the dialog 2015-02-04 18:12:50 +00:00
Volker Fischer
f4820f6c0f changed the color of the skill level beginner 2015-02-04 18:11:58 +00:00
Volker Fischer
8c3773442e added colors for the skill level 2015-02-04 16:08:13 +00:00
Volker Fischer
ff901be7fa define the GUI RGB colors for each skill level 2015-02-04 16:07:21 +00:00
Volker Fischer
941d9132d0 added new instrument picture for "Guitar+Vocal" 2015-02-04 07:06:56 +00:00
Volker Fischer
01d087e416 added new instrument category 2015-02-04 07:02:40 +00:00
Volker Fischer
5a04e91835 fix for Qt4 2015-02-04 06:59:28 +00:00
Volker Fischer
31766ceab2 rename button of profile dialog from OK to Close and remove Default property 2015-01-31 10:04:59 +00:00
Volker Fischer
c9c1f78c3f removed fader tag edit, country and instrument buttons (since this is done in the profile dialog now) 2015-01-31 10:04:15 +00:00
Volker Fischer
e02947ba97 set fader tag background color depending on the skill level 2015-01-31 08:58:19 +00:00
Volker Fischer
09cbb9d2ab profile window management 2015-01-31 08:18:17 +00:00
Volker Fischer
928cf8196e profile window scales better 2015-01-31 08:16:30 +00:00
Volker Fischer
bae2672ff2 added variables for storing the window position of the profile window 2015-01-31 08:15:56 +00:00
Volker Fischer
1ed74b44e2 store some profile settings and also the window position of the profile window 2015-01-31 08:14:52 +00:00
Volker Fischer
88eed0d627 implementation of a musician profile dialog 2015-01-30 20:58:49 +00:00
Volker Fischer
a62ca5d064 added a tool tip of the complete musician profile on the fader tag label 2015-01-30 20:53:43 +00:00
Volker Fischer
71856d5488 the two optional pictures should be above each other, the text is next to the pictures 2015-01-25 09:57:13 +00:00
Volker Fischer
cad2da0d2a - a minimum size for the fader label text must be given, otherwise it could be too small which is not desired
- decrease the spacing between the icon buttons since the horizontal space is limited
2015-01-25 09:54:20 +00:00
Volker Fischer
183d651801 removed some very small countries from the country flag list to make the popup menu smaller 2015-01-24 18:54:39 +00:00
Volker Fischer
5a3693f6ae the compatible code to old Qt versions did not work, therefore we now use a table which definitely works for all Qt versions 2015-01-24 18:11:28 +00:00
Volker Fischer
b4f81ffaf1 added support for older QT versions 2015-01-24 17:05:21 +00:00
Volker Fischer
290f121e3c support for a country flag icon on the fader tag 2015-01-24 15:47:32 +00:00
Volker Fischer
5c909dc176 support for a country flag icon on the fader tag 2015-01-24 15:38:39 +00:00
Volker Fischer
1d21bb84b1 added support for country flag icon 2015-01-23 21:38:24 +00:00
Volker Fischer
bc17803f15 added acknowledgement for the country flags 2015-01-23 21:35:49 +00:00
Volker Fischer
837749cc6c fixed path to flags 2015-01-23 21:34:55 +00:00
Volker Fischer
9c7aab4fd3 added country flags 2015-01-23 20:14:13 +00:00
Volker Fischer
5df4991542 added country flag pictures 2015-01-23 20:06:39 +00:00
Volker Fischer
72c5f4cc63 a licence agreement dialog can be requested by the server 2015-01-23 19:43:18 +00:00
Volker Fischer
a6cd448ca9 update of the help text 2015-01-23 19:34:10 +00:00
Volker Fischer
815098a41d added new PROTMESSID_LICENCE_REQUIRED message 2015-01-18 21:23:47 +00:00
Volker Fischer
f56d59fdeb added server licence type enum 2015-01-18 21:20:41 +00:00
Volker Fischer
ecfc92207f added licence dialog 2015-01-17 16:53:54 +00:00
Volker Fischer
26ccd51546 make sure the OPUS encoder/decoder function is only called if the audio compression type is actually set to OPUS codec 2014-07-28 17:46:54 +00:00
Volker Fischer
7f96942b62 bug fix 2014-07-26 10:31:27 +00:00
Volker Fischer
7615e2a996 This file was provided by Christopher Meng, thanks! 2014-07-26 06:29:30 +00:00
Volker Fischer
7918416054 added configurations "CONFIG+=opus_shared_lib" for using OPUS as a shared lib and "CONFIG+=nocelt" to disable legacy support for the old CELT library 2014-07-26 06:07:50 +00:00
Volker Fischer
afa2f0e812 added configurations "CONFIG+=opus_shared_lib" for using OPUS as a shared lib and "CONFIG+=nocelt" to disable legacy support for the old CELT library 2014-07-26 05:58:01 +00:00
Volker Fischer
9438ff535b fixed a typo 2014-07-15 19:22:08 +00:00
Volker Fischer
e9c431cda9 fixed a compiler warning on the newest Mac XCode compiler: The init function of the buffer class was set to virtual but the derived function had a different number of funciton parameters. So the intention was actually NOT to be virtual. Therefore I removed the virtual from the functions and the warning is gone now. 2014-06-15 19:33:27 +00:00
Volker Fischer
6b1541b622 bug fix: on Mac with newest Qt version the ping time was always 0 2014-06-12 19:28:39 +00:00
Volker Fischer
461650d4e2 increase the default used number channels for server 2014-03-11 19:39:44 +00:00
Volker Fischer
f92b363df9 fix tab order 2014-02-25 21:10:40 +00:00
Volker Fischer
3b94fb9382 since we only have one settings dialog, it is nonsense to write "General Settings" but we should write just "Settings" 2014-02-25 15:50:09 +00:00
Volker Fischer
598017e47f Remove the connection LED because it is not actually required. If the connection is successful, the mixer fader appears and shows the connection. If the connection fails, no fader is visible or the fader disappears after a while. In both cases it is clearly seen that the connection is lost and therefore the connection LED is not required. 2014-02-25 15:38:11 +00:00
Volker Fischer
e85b0f93ed remove "--disableleds" command line argument since disabling LEDs is not required anymore because we now have a separate socket thread and therefore a stable audio connection even in case the LEDs are used 2014-02-25 14:58:54 +00:00
Volker Fischer
5b2d256bc2 removed the "open chat on new message" mechanism since nobody actually uses this, now simply the window automatically opens on a new message if it is not already open, otherwise do nothing 2014-02-25 14:38:12 +00:00
Volker Fischer
121a0b4d69 small fix: put combo boxes in another layout so that it looks nicer 2014-02-24 20:23:19 +00:00
Volker Fischer
292cf13a21 finished #43 Hybrid Mono/Stereo mode 2014-02-24 19:51:57 +00:00
Volker Fischer
c8f0a376ab added support for the mon-in/stereo-out mode in the signal processing class (client.cpp) 2014-02-23 20:55:42 +00:00
Volker Fischer
5811b1f9d4 preparations for "mono in/stereo out" mode 2014-02-23 20:01:17 +00:00
Volker Fischer
4dca2d1c93 fix for #17 Default central server flag seems not to work in server GUI 2014-02-23 18:17:46 +00:00
Volker Fischer
17b5bb6dd9 introduce macro ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING for enabling the version and OS query in the client (for debugging reasons) 2014-02-23 09:46:25 +00:00
Volker Fischer
5cfdf988d4 fix a compiler warning 2014-02-21 21:33:25 +00:00
Volker Fischer
de667b66a6 fix compilation error on Linux 2014-02-21 21:29:33 +00:00
Volker Fischer
388664e48e support for querying the server version and OS type for debugging purpose (not in the regular version available) 2014-02-21 21:25:26 +00:00
Volker Fischer
d080c568a3 bug fix 2014-02-21 21:16:45 +00:00
Volker Fischer
4fbe460041 fix shutdown issue on Mac OS 2014-02-18 19:36:09 +00:00
Volker Fischer
3f61c348f7 small fix for Windows 2014-02-17 18:34:39 +00:00
Volker Fischer
14c8df9ee4 fix for shutdown on Linux (an error message was shown on shutdown) 2014-02-17 18:24:32 +00:00
Volker Fischer
e004ed6964 small improvement for the mutexes 2014-02-16 20:04:22 +00:00
Volker Fischer
9e4dbd861a bug fix 2014-02-16 09:28:34 +00:00
Volker Fischer
d214f9976d bug fix for the shutdown of the server 2014-02-16 09:01:08 +00:00