jProductionCritic |
---|
Overview
jProductionCritic is an open-source educational framework for automatically detecting technical recording, editing and mixing problems in audio files. It is intended to be used as a learning and proofreading tool by students and amateur producers, and can also assist teachers as a timesaving tool when grading recordings.
A number of novel error detection algorithms are implemented by jProductionCritic. Problems detected include edit errors, clipping, noise infiltration, poor use of dynamics, poor track balancing, and many others. The error detection algorithms are highly configurable, in order to meet the varying aesthetics of different musical genres (e.g. Baroque vs. noise music). Effective general-purpose default settings were developed based on experiments with a variety of student pieces, and these settings were then validated using a reserved set of student pieces. The settings for each error checking algorithm may be accessed and modified via the jProductionCritic configuration file. Multiple such configuration files may be saved and applied to different kinds of music if desired.
jProductionCritic is also designed to serve as an extensible framework to which new error detection modules can be easily plugged in. In addition, it can be easily integrated with other jMIR applications, or used entirely independently if desired. Like the rest of jMIR, jProductionCritic is open-source and available for free. It is implemented in Java in order to maximize cross-platform utilization.
jProductionCritic may be used via either a command line interface or a GUI. The software also has a well-documented API in order to facilitate the use of jProductionCritic as a library incorporated into other software. The results of error processing may be viewed directly via the jProductionCritic GUI, or may be saved in a variety of formats.
Basic Motivation
Improved functionality, better user interfaces and decreasing costs have made audio production more and more accessible in recent years. This has helped to cause an explosion of content created in home studios, ranging from amateur mashups to recordings by professional musicians. While this has certainly resulted in a great deal of interesting music, it has also led to error-prone technical work on the part of overconfident amateur producers who lack the professional training that was previously necessary to be involved in production at all.
This problem is part of the motivation behind the jProductionCritic software, which automatically detects technical production errors, especially those relating to editing and mixing. It can help students and amateur producers check their work for unnoticed errors, much as one might use a grammar checker when writing prose. This is beneficial from an educational perspective, as it teaches users to notice problems that they might not otherwise have known to look for. This in effect trains them to improve their listening skills, which are arguably a producer’s greatest asset, and pushes them to learn how to avoid or correct the detected problems, thus improving not only their current work, but also the skills that they will be able to apply in the future.
Such error checking software is also useful to those teaching audio production, as it can greatly facilitate grading. While it would certainly be ill-advised to rely exclusively on automated marking, as expert humans are needed to fully evaluate the difficult-to-quantify aesthetics involved in the art of production, simply automating the painstaking task of enumerating and time-stamping basic technical errors can be a great time saver.
Finally, error checking software could even be of some use to professional audio engineers as a final verification tool, just as professional writers make use of spell checkers. It is not unheard of to find technical errors in professional work, often due to rushed production schedules and the high costs of studio time.
Aside from such practical benefits, developing algorithms for detecting production errors can also have important research value. Not only is there currently a surprising dearth of production-oriented research in the music information retrieval research community specifically, but those tools that do exist in the general audio world tend to be closed-source black boxes or based on disappointingly naive algorithms. This presents an exciting research opportunity, particularly considering the importance of production from both commercial and artistic perspectives. jProductionCritic has therefore been designed not only as a ready-to-use application, but also as a modular framework for developing and deploying new error detection and analysis algorithms in the future.
Overview of Design Objectives
The first main design objective of jProductionCritic is that it be useful and accessible to music students, amateur producers and teachers, all of whom may have little or no experience with software development. To this end, jProductionCritic is distributed with a manual in order to make it as easy to learn as possible. Its basic interface (either command line or GUI) is also designed to be minimalistic and direct so that users can avoid being distracted by anything superfluous. Users simply need to specify an audio file or batch of files to check and where reports are to be saved, and the software automatically takes care of the rest.
Of course, it is also important that the software be highly configurable for those who desire flexibility. There is therefore a separate extensive configuration file that advanced users can modify in order to control which errors are checked for, what error thresholds are used for each error, and so on. It is thus possible to customize jProductionCritic for certain styles of music (e.g. metal vs. jazz), or to simply use the provided general-purpose default settings without worrying about the details.
jProductionCritic processes final mixes in the form of single mono or stereo files rather than DAW projects with tracks still separated out. Although this does make certain errors much harder to detect, it also ensures that no new unchecked errors are incorporated during final mixing and mastering. This also makes it possible to process any standard audio recording with jProductionCritic, and avoids tying it to any particular DAW framework.
Various types of error reports can be generated by jProductionCritic for each audio file. The first overall type of report is simply an enumeration of the errors that were detected, annotated with time stamps indicating either an instantaneous time or time range, as appropriate. Errors are also marked as being mild, moderate or severe. This kind or report can either be generated directly for in-program display to the user, or in saved text or HTML formats. The second overall type of report consists of Audacity Label Tracks, which are metadata tracks that Audacity displays alongside audio and MIDI tracks. This can be very useful for visually demonstrating to users where errors occur in a waveform or spectrogram. Audacity was chosen in particular because it is free and thus accessible to all users, whether or not they used it to prepare the audio being checked for errors. The third overall type of error report consists of error annotations in Weka ARFF or ACE XML, two file formats related to machine learning that are used by the MIR community. Although not directly applicable to the educational context targeted by jProductionCritic, these reports could be helpful to MIR researchers who might want to use the output of jProductionCritic in research involving machine learning. These formats can also be useful when performing experimental validations.
jProductionCritic is implemented in Java, in order to help make it as cross-platform and accessible as possible. This avoids forcing users to buy proprietary environments such as Matlab, and avoids the installation and linking problems that one can encounter with languages like C++.
The second main design objective of jProductionCritic is that it serve as a framework under which new error detection algorithms can be developed and deployed, and not only as a ready-to-use application. This is an important priority in encouraging future MIR research and development focusing on audio production. A strong emphasis was therefore put on designing jProductionCritic using a modular and highly extensible architecture to which new error checking algorithms can be easily added as plug-ins, with virtually no changes needed to the overall jProductionCritic processing infrastructure. Special attention was also paid to extensively documenting the code. As with all jMIR components, jProductionCritic is free and open-source.
Screen Shots
Manual
Many more details on jProductionCritic are available in the jProductionCritic Manual.
Related Publications
McKay, C. 2013. jProductionCritic: An educational tool for detecting technical errors in audio mixes. Proceedings of the International Society for Music Information Retrieval Conference. 71–6.
Questions and Comments