A typical routine in many scientific studies consists of recording data from devices and identifying which segment of data corresponds with an experimental interval. However, many current applications have been designed to obtain and save data from one single device, and synchronizing data with the markers that delimit the test phases can be difficult. To address this issue, we have developed LSRec, which is based on Lab-Streaming Layer, a C++ library that allows data synchronization. LSRec is an easy-to-use, open-source, multi-platform, recording system developed on Java that can save data from several devices at the same time, while maintaining synchronization with the experimental phase markers. It supports three explicit sync methods: the first uses one-integer-channel input Lab-Streaming Layer streams. The others use TCP/UDP socket messages and allow any existing software that generates sync markers through TCP/UDP messages to be used under the same conditions. In LSRec, the markers are saved together with input data, facilitating the process of linking data with test stages. A prerequisite for recording software is to guarantee suitable timing performance, with no data loss and an easy user interface. These features were assessed for LSRec, with no data loss detected for 20 hours (25 sessions). We evaluated performance by measuring timestamp deviations for sync marker and input data. The sync methods exhibited an average of deviations of around −34µs (which is more than acceptable, e.g., in studies involving living beings), whereas the absolute value of deviation for one-channel data was lower than 40µs. Finally, we assessed the system's usability with the technology acceptance model 3 survey (6 volunteers). Subjects saw the software as useful, and intended to use it in the future. In conclusion, LSRec is a useful tool for those who need to record data from multiple sources, and maintain synchronization with experimental phases with low delay.