Ce ´lina Roda

Ioannis Nicolis

Isabelle Momas
email: isabelle.momas@parisdescartes.fr

Chantal Guihenneuc

New Insights into Handling Missing Values in Environmental Epidemiological Studies

Missing data are unavoidable in environmental epidemiologic surveys. The aim of this study was to compare methods for handling large amounts of missing values: omission of missing values, single and multiple imputations (through linear regression or partial least squares regression), and a fully Bayesian approach. These methods were applied to the PARIS birth cohort, where indoor domestic pollutant measurements were performed in a random sample of babies' dwellings. A simulation study was conducted to assess performances of different approaches with a high proportion of missing values (from 50% to 95%). Different simulation scenarios were carried out, controlling the true value of the association (odds ratio of 1.0, 1.2, and 1.4), and varying the health outcome prevalence. When a large amount of data is missing, omitting these missing data reduced statistical power and inflated standard errors, which affected the significance of the association. Single imputation underestimated the variability, and considerably increased risk of type I error. All approaches were conservative, except the Bayesian joint model. In the case of a common health outcome, the fully Bayesian approach is the most efficient approach (low root mean square error, reasonable type I error, and high statistical power). Nevertheless for a less prevalent event, the type I error is increased and the statistical power is reduced. The estimated posterior distribution of the OR is useful to refine the conclusion. Among the methods handling missing values, no approach is absolutely the best but when usual approaches (e.g. single imputation) are not sufficient, joint modelling approach of missing process and health association is more efficient when large amounts of data are missing.

Introduction

In epidemiological studies, accurate estimate of exposure is very important for assessment of health risk. However missing data are often unavoidable, resulting from loss to follow-up in longitudinal studies, or non-responses in questionnaires. In large scale studies, certain strategies have been developed reducing the high cost of environmental measurements, e.g. collecting exposure surrogates for all subjects generally by questionnaires, and performing exact personal or environmental measurements only in subsamples of population [START_REF] Vach | Missing data in epidemiologic studies[END_REF]; most of the time these subsamples are small due to economic and logistic reasons (high cost, noise, bulk samplers…). For instance, in the National health and nutrition examination survey (NHANES), personal exposure to volatile organic compounds was assessed in a subsample of 851 adults, i.e. 8.5% of the population study [START_REF] Jia | Distributions of personal VOC exposures: a population-based analysis[END_REF]. Furthermore, even these specific studies can suffer from missing data due to measuring instrument failure, routine maintenance of monitors, and human error. Whatever the reasons for incomplete data, it can be a significant obstacle for researchers.

Most statistical software omits records with missing values by default, and analysis is conducted on a subset with the available data. This approach is commonly used for handling missing data, but can lead to loss of statistical power which can be problematic in environmental surveys where associations between environmental factors and health outcome are generally weak. Furthermore, the results of the complete cases analyses are imprecise, given that part of the data is not considered.

An alternative is to use measurements issued from subsamples to build predictive models and then, apply them to the whole population. Among these imputation techniques, single imputation approach is the most common and easily conducted as standard methodology [START_REF] Fusco | Air pollution and hospital admissions for respiratory conditions in Rome, Italy[END_REF], it involves a single estimated value for each missing value. It can be applied directly without loss of power due to the sample size being brought back to its original size. However, single imputation ignores the uncertainty of estimation due to the imputation.

Consequently, in 1987, Rubin proposed multiple imputation [START_REF] Rubin | Multiple imputation for nonresponse in surveys[END_REF], where each missing value is imputed by multiple simulated data leading to multiple ''completed datasets''. Each generated dataset is analyzed by standard methodology and the results combined, enabling the uncertainty attached to missing data to be assessed. Whilst several authors have declared multiple imputation their method of choice [START_REF] Barzi | Imputations of missing values in practice: results from imputations of serum cholesterol in 28 cohort studies[END_REF][START_REF] Schafer | Analysis of incomplete multivariate data[END_REF], a recent review has suggested that its use is still quite rare: less than 2% of papers published in epidemiology journals have used multiple imputation and often omitting important details of the methodology used [START_REF] Klebanoff | Use of multiple imputation in the epidemiologic literature[END_REF].

Another more recent alternative for dealing with missing data is to jointly model through a Bayesian approach the missing process and the association between health outcome and covariates [START_REF] Carrigan | Compensating for Missing Data from Longitudinal Studies Using WinBUGS[END_REF][START_REF] Gryparis | Measurement error caused by spatial misalignment in environmental epidemiology[END_REF]. This kind of models is a part of more general approaches referred to hierarchical Bayesian modelling [START_REF] Gelman | Bayesian Data Analysis[END_REF] which combines several sub-models. In our case, there are two sub-models where the first one connects missing exposure and predictive factors, and the second one assesses the association between health outcome and covariates including missing exposure. These two sub-models could be implemented separately but the estimated exposure by the first sub-model would be used in the second sub-model of disease as if it had been measured without uncertainty. Through the Bayesian modelling, the sub-models are integrated together allowing to take into account all uncertainty.

The aim of this paper is to examine performances of several approaches for handling large amounts of missing data in environmental epidemiological surveys when the data are missing completely at random (MCAR) using both a case study and a simulation study. Omitting missing values, imputation techniques (single and multiple imputation) and fully Bayesian approach are considered.

Materials and Methods

In order to compare results from methods for handling missing values, a real dataset was used. In the PARIS (Pollution and Asthma Risk: an Infant Study) cohort, measurements were performed and pollutant levels, such as formaldehyde levels, are available in a subset of the population, but missing for infants not involved in the environmental investigation [START_REF] Roda | Formaldehyde Exposure and Lower Respiratory Infections in Infants: Findings from the PARIS Cohort Study[END_REF].

Data

The cohort enrolled 3 840 full-term healthy babies, recruited between February 2003 and June 2006. The study protocol is described elsewhere [START_REF] Clarisse | The Paris prospective birth cohort study: which design and who participates?[END_REF]. At birth, an interview with the mother was conducted to collect data about the history of allergic conditions in both parents. Gender, parity, anthropometric parameters of the child, maternal history of pregnancy and delivery were also registered from newborn's and mother's medical records. Parents regularly documented health outcomes in mailed questionnaires. The health outcomes of interest were defined by the occurrence of lower respiratory infection (LRI) and a dry night cough (DNC) during the first twelve months of life [START_REF] Roda | Formaldehyde Exposure and Lower Respiratory Infections in Infants: Findings from the PARIS Cohort Study[END_REF][START_REF] Roda | Environmental triggers of nocturnal dry cough in infancy: New insights about chronic domestic exposure to formaldehyde in the PARIS birth cohort[END_REF].

Concerning environmental and lifestyle data, a trained interviewer interviewed parents by phone during maternity leave to describe in detail home characteristics (construction date, number of occupants, home surface area, heating and cooking appliances, presence of mechanical ventilation and double glazing, wall and floor coverings and signs of dampness) and family living conditions (duration of breastfeeding, information on day-care attendance, keeping of pets, aeration, smoking, use of air fresheners, do-ityourself (DIY)). Any changes were assessed by mailed questionnaires at each time points.

Aldehyde air sampling measurements were performed in a random sample of 196 babies'dwellings using a passive sampler [START_REF] Dassonville | Assessment and predictor determination of indoor aldehyde levels in Paris newborn babies' homes[END_REF]. Predictive factors of formaldehyde levels were previously identified: sources (presence and age of wall coating, wood-pressed products for flooring or varnished parquet floor, and particle board furniture), parameters of aeration and air stuffiness (length of window opening, presence of mechanical ventilation and double glazing), and home characteristics (construction date, housing area, and number of occupants) [START_REF] Roda | Formaldehyde Exposure and Lower Respiratory Infections in Infants: Findings from the PARIS Cohort Study[END_REF].

This study was approved by the National Ethics Committee (permissions 031153 and 051289), and parents of participating infants gave their written informed consent. Data are stored in the Paris council, within its Social, Childhood and Health Direction (DASES). All data were anonymized before statistical analysis.

Association between formaldehyde, including missing values, and health outcomes in the PARIS cohort

In the context of the study of formaldehyde exposure impact (variable including missing values) on LRI (a relative common health outcome in infancy) or DNC (a less prevalent event), results from methods for handling missing values were compared. All infants who move during the first year of life and those with no data on health outcome were excluded from the analyses.

Unmeasured formaldehyde values are assumed MCAR [START_REF] Rubin | Inference and missing data[END_REF] since families where measurements were carried out were selected at random, values are missing by design. The methods for dealing with missing data that we considered were: omitting missing data, imputation methodologies, and a fully Bayesian approach. For the first one, as its name implies, only cases with available information are considered, with cases with missing data being discarded. Concerning the imputation approach, missing data are imputed from the available information. Whatever the choice between single or multiple, an imputation model has to be established. Two approaches imputing missing formaldehyde values were examined, the linear regression model (LM), and the partial least squares (PLS) model. PLS regression is particularly suited when there are more predictors variables than observations, and contrary to LM, it allows multicolinearity between variables [START_REF] Tenenhaus | La re ´gression PLS: the ´orie et pratique[END_REF]. PLS method is based on the reduction of predictor variables dimension by using techniques near principal component analysis. As recommended in the literature, the imputation model includes variables that are used in subsequent analyses such as the outcome [START_REF] Gilks | Markov Chain Monte Carlo in Practice[END_REF][START_REF] Carpenter | Example Analyses Using WinBUGS 1[END_REF]. Therefore, the imputation model included formaldehyde predictive factors and LRI or DNC. The predicted formaldehyde mean was used in the single imputation. Note that other approaches exist for single imputation where, for instance, the missing value is replaced by local or adaptative estimate [START_REF] Bo | LSimpute: accurate estimation of missing values in microarray data with least squares methods[END_REF][START_REF] Brock | Which missing value imputation method to use in expression profiles: a comparative study and two selection schemes[END_REF][START_REF] Kim | Missing value estimation for DNA microarray gene expression data: local least squares imputation[END_REF] and not by the global mean. Whatever the chosen technique, the missing value is always replaced by a single value underestimating the variability due to this estimation. As the health outcomes are binary variables, the association between formaldehyde levels and LRI or DNC was then examined using logistic regression whatever the imputed model approach.

In the multiple imputation approach, several imputations are generated for given missing data. As previously described by Little and Rubin [START_REF] Little | Statistical analysis with missing data[END_REF], ''m completed datasets'' were firstly created by filling in the missing values through the imputation model: missing formaldehyde values were imputed randomly from an approximate predictive distribution based on the fitted regression. For example in the case of LM, regression coefficients were sampled from their multivariate Gaussian distribution obtained on observed data and then missing formaldehyde values were replaced by their corresponding predicted values. This procedure was repeated m times. Here 10 000 imputed datasets were fitted. The completed datasets were analyzed separately, the association between formaldehyde levels (observed and imputed) and health was examined using logistic regression, and the results of all datasets were then combined, applying Rubin's rules, to yield final inference on the parameters of interest. The variance for the combined parameter estimates included between and within imputation variation.

Finally, a fully Bayesian model was implemented, as suggested by Carpenter and Kenward [START_REF] Carpenter | Example Analyses Using WinBUGS 1[END_REF]. Two sub-models were fitted jointly using Markov Chain Monte Carlo methods [START_REF] Gilks | Markov Chain Monte Carlo in Practice[END_REF]. The first one modelled the association between health indicator and exposure, and the second one modelled the relation between missing and observed exposure measurements including covariates supposed to be linked to exposure. Such joint modelling has advantages as mutually enhanced estimates precision of two submodels parameters, extending multiple imputation methodology. The algorithm was run for 10 000 iterations with 1000 iterations discarded for burn-in. Inspection of posterior time series plots for the parameters as well as autocorrelation plots indicated that the model mixed well. For each model, posterior mean of OR with 95% credibility interval (95% Cr) is shown for the formaldehyde exposure. Note that since the PLS approach is not based on a probability model, Bayesian modelling cannot be used.

Simulation study

Facing missing data, the choice of approach is crucial in terms of the conclusion, particularly when there is a high proportion of missing data (near 94% in our case), and weak associations. Comparisons between approaches have to be based on the quality of estimates, and on the ability to conclude or not a significant association. Simulation studies with characteristics near those of real data but controlling the true value of OR without omitting the case of no association (OR = 1.0) were therefore conducted. Two cases were considered: one frequent outcome similar to LRI (named ''event 1''), and a second case close to DNC (''event 2''). Sample sizes are similar to in real data sets (n = 2 551 for event 1 and n = 2 342 for event 2).

Datasets were simulated from the following steps: ln

E , N(X Q; s 2 Id) and Y i , B(p i ) with logit(p i )=a + b E i + c Z i , b =l n
OR true and i = 1, …, n, and where formaldehyde factors are denoted by X, exposure variable by E, covariates by Z and health indicator by Y. Exposure variable (corresponding to formaldehyde in real dataset) was simulated on a logarithmic scale from a linear model with formaldehyde predictors obtained from real data [START_REF] Roda | Formaldehyde Exposure and Lower Respiratory Infections in Infants: Findings from the PARIS Cohort Study[END_REF], and coefficients Q were equal to those estimated in this study. Then, the health indicator was simulated from a logistic model with the resulting formaldehyde levels and covariates from real data (coefficients c associated with covariates were those estimated on real data as well as the residual variance s 2 ). Formaldehyde predictors and covariates are given in Table S1.

Three different OR true (and then three b true =lnOR true ) between formaldehyde and event 1 or event 2 were considered: 1.0, 1.2, and 1.4. Missing values for formaldehyde were assigned at random. A case of 95% missing values was considered. To assess the robustness of our conclusions, simulations with different missing values percentages (85%, 75% and 50%) were also conducted. For each scenario, a total of 100 datasets were generated. This number of simulations is required to obtain an estimate of the regression coefficient associated with formaldehyde exposure within 10% of its true value when missing values are omitted in the real data. Indeed, the equation given by Burton et al. [START_REF] Burton | The design of simulation studies in medical statistics[END_REF]

~1,i f 1 = [CI( d OR i OR i )~1 and 1 1= [CI( c ORi ORi)
~0, otherwise) i.e. of confidence or credibility interval of OR excluding 1 was also calculated. This criterion assesses risk of type I error when OR true = 1, and statistical power when OR true was different from 1.

Confidence intervals for RMSE were based on a Gaussian approximation using the empirical standard deviation of the MSE, and confidence intervals for the PS were based on the Clopper-Pearson ''exact'' confidence intervals [START_REF] Clopper | The use of confidence or fiducial limits illustrated in the case of the binomial[END_REF] avoiding the Gaussian approximation. As the question is basically if formaldehyde exposure increased LRI and DNC risk according to previous studies in literature, the one-sided approach was chosen. Statistical analyses were conducted using R 2.14.0 [START_REF]R: A language and environment for statistical computing[END_REF] and WinBUGS software [START_REF] Lunn | WinBUGS-A Bayesian modelling framework: Concepts, structure, and extensibility[END_REF].

Results

Results on real data

In this study, 2 551 infants of the PARIS birth cohort were completely observed, independently of health outcomes and formaldehyde levels, and pollutant levels were available for 142 of them. Most of infants lived in apartments. Nearly 30% of buildings were built after 1975, and two-thirds were equipped with double glazing. Around half of babies had wood-pressed products for flooring or varnished parquet floor in their bedroom. Recent (less than one year old) particle board furniture was present in 49.8% dwellings. About half of infants (46.9%) had at least one LRI during their first year of life and the prevalence of DNC was 14.9%.

OR estimates between LRI or DNC occurrence and formaldehyde exposure levels are given in Table 1. The single imputation techniques (LM or PLS) clearly induced high estimates of association compared to all other approaches. The estimated OR with fully Bayesian approach was similar to that obtained with multiple imputation particularly for LRI, but lower than that with PLS imputation. However, intervals were different leading to a significant association with Bayesian modelling for LRI and nearly significant for DNC but not significant with both multiple imputation.

Simulations results

From the 100 simulated datasets, the resulting mean prevalence of event 1 was 29.6% (range: 18.4%-41.3%) and of event 2 was 12.3% (range: 6.8%-18.5%). Table 2 shows RMSE and PS assessed on simulated data when no data are missing. Results were quasi similar for all approaches. As RMSE depends on OR true and on prevalence of event, it increased between events 1 and 2 and slightly with OR true . Concerning event 1, frequentist and Bayesian approaches always concluded a significant association when OR true = 1.4 while when OR true = 1.2, statistic power was near 60%. For an infrequent event as event 2, statistical power decreased being near 85% when OR true = 1.4 and near 40% when OR true = 1.2. When OR true = 1.0, PS had to be equal to 5%, which was the case for the two approaches even if there was a slight increase for the less frequent event. These results can be considered as reference results as no data are missing.

Table 3 provides results of the RMSE on replicates with 95% of missing values. RMSE values ranged from 0.18 to 0.83 for event 1, and from 0.09 to 1.06 for event 2. For each event, RMSE slightly increased with OR. RMSE values were always lower in multiple imputation than in single imputation, whatever the imputation model (LM or PLS). Single imputation led to huge RMSE reflecting poor qualities of estimates. All results were confirmed with proportion of missing values of 75% and 85% (Table S2).

Figure S1 shows boxplots of beta estimates obtained from Bayesian approach, from 100 simulations for the three different values of OR true . When OR true is equal to 1.0, the range of estimates increased with the proportion of missing values and with the decrease of event prevalence. These results were also observed when OR true = 1.2 and OR true = 1.4. Moreover, an underestimation of beta so of OR) was obtained when OR true = 1.4.

When OR true is equal to 1, real risk of type I error is assessed by PS while the theoretical one was fixed at 5% (Table S3). For event 1 with 95% of missing data, single imputation led to very high risks (23% [15.2, 32.5] and 21% [13.5, 30.3] for LM and PLS, respectively). If missing proportion is 75% or 85%, huge risks of type I error were again found for single imputation. For event 2, PS considerably increased for single imputation, 35% [25.7, 45.2] and 42% [32.2, 52.3] for LM and PLS, respectively. This increase was confirmed with 75% and 85% of missing values. Multiple imputation led to always conservative results explained by large confidence intervals of OR obtained with this approach whether for event 1 or 2. Bayesian approach led to increase risk of type I error. For event 1, this increase seems reasonable because 5% is always in the confidence interval (7% [2.9, 13.9] with 95% missing values). For the infrequent event 2, risk of type I error increases and excluding 5% from confidence intervals when 85% and 95% of data are missing (e.g. 16% [9.4, 24.7] with 95% missing values).

Figure 1 presents PS when OR true is greater than 1 and 95% of missing values for two events and for all approaches, excluding single imputation which had given a weak quality on estimates and overestimated risk of type I error. As expected, statistical power increased with OR true and decreased for infrequent event. Weak performances were obtained for multiple linear and PLS imputation. This figure clearly shows highest PS for Bayesian model near reference power on complete data (Table 1) especially for event 1, all other approaches giving a null or quasi null power for OR true = 1.2 and OR true = 1.4, respectively. Figure S2 presents PS when OR true is greater than 1 for 85% and 75% of missing values. Highest PS were clearly obtained for Bayesian model.

And with 50% of missing data, statistical power increased remaining the best for Bayesian approach especially for infrequent event (near 80% by Bayesian approach against 53% by LM multiple imputation when OR true = 1.4).

Discussion

This paper addresses the crucial question of how to handle large amounts of missing data in environmental epidemiological surveys. Till now, as far as we know, very few teams have compared performances of approaches handling missing values with a proportion of missingness above 75% [START_REF] Scheffer | Dealing with Missing Data[END_REF][START_REF] Lee | Recovery of information from multiple imputation: a simulation study[END_REF]. To solve this question, we used both real and simulated data to determine the most appropriate approach when there is a large amount of missing data. Results on RMSE and PS showed poor performances with single imputation. Fully Bayesian approach seems better, followed by imputation approaches, which in turn gave better results than omitting missing observations.

As expected, we found that omitting missing values is less efficient than single and multiple imputations. Even if it is the easiest approach for handling missing values, it should be used only in presence of less than 5% of missing values [START_REF] Rubin | Multiple imputation for nonresponse in surveys[END_REF] because it should induce a significant loss of statistical power: unrealistic when the health outcome is infrequent and problematic in environmental studies where pollutants have often a weak impact.

Another common approach for handling missing values is to impute them before any analysis which is commonly used in environmental epidemiological studies to estimate exposure levels for all study members. An increase in power is the substantial benefit of this alternative over omitting missing values. Nevertheless, the specification of the imputation model is an important step. As previously demonstrated, if the imputation model is not properly specified the imputation approach could introduce a bias which is not present in omitting missing values when missingness is MCAR [START_REF] Lee | Recovery of information from multiple imputation: a simulation study[END_REF]. It has been observed that including many relevant variables in the imputation model tends to make the missing at random assumption more plausible [START_REF] Steyerberg | Clinical prediction models: A practical approach to development[END_REF], even if computational problems could occur such as multicollinearity and a large number of predictors might provide instable estimates. Previous authors showed the importance of including the health outcome because regression coefficients came close to the truth [START_REF] Moons | Using the outcome for imputation of missing predictor values was preferred[END_REF][START_REF] Sterne | Multiple imputation for missing data in epidemiological and clinical research: potential and pitfalls[END_REF]. Note that inclusion of the health outcome implies that the imputation procedure has to be renewed for each new health outcome. Single imputation is easy to implement, but the major disadvantage is the overestimation of association between exposure and health outcome increasing with the strength of the association. As explained by Rubin [START_REF] Rubin | Multiple imputation for nonresponse in surveys[END_REF], this overstatement is certainly due to that one imputed value cannot itself represent uncertainty about imputed value.

Conversely, multiple imputation takes into account the uncerand thus, does not underestimate the variance of estimates. But this approach is conservative. In fact, as previously described in the literature [START_REF] Moons | Using the outcome for imputation of missing predictor values was preferred[END_REF], large imprecision of OR estimates was observed, thus yielding to no significant associations. Moreover, concerning the choice of the number of imputations, it has been suggested [START_REF] Rubin | Multiple imputation for nonresponse in surveys[END_REF], that less than 10 imputed datasets are useful compared with an infinite number of imputations. However, when the percentage of missing values is huge, more than 10 imputations may be needed and the number of imputed data should approximate the number of observations with missing data, as previously suggested [START_REF] Bodner | What improves with increased missing data imputations?[END_REF]. Although 2 000 imputations could have been sufficient in this study, we fitted 10 000 imputed datasets as a precaution even if it was time consuming. Bayesian joint modelling appears to be less conservative with a statistical power near 75% for event 1 (near 55% for the infrequent event 2) when OR true = 1.4 with 95% of missing data. Nevertheless, it is important to notice that risk of type I error tends to increase, slightly for event 1 (near 7%) and much more for the infrequent event 2 (near 16%). Even if the RMSE is always smaller for the Bayesian approach compared to the other approaches and indicates a better performance in terms of estimates, boxplots of the beta estimates from 100 simulations under OR true = 1.0 clearly show that the range of estimates increases with decrease of event prevalence and with increase in the missing values proportion. This result is confirmed when OR is greater than one but a bias appears when OR true increases. Thus, caution should be taken when interpreting results for an infrequent event with high proportion of missing values. In addition, the use of empirical approaches (e.g. bootstrap, Monte Carlo study) could be useful to assess the real risk of type I error.

For infrequent events (for instance with prevalence less than 10%) and high proportion of missing values, statistical power remains too weak. Bayesian approach offers the possibility to obtain easily estimated posterior distribution of OR which could be a useful tool to refine conclusions. Posterior probability of OR being smaller than 1 can indeed be deduced and such probability between 5% and 10% could be considered weak enough to conclude an ''almost significant'' association. This strategy would lead to three possible conclusions: ''not significant'', ''significant'' or ''almost significant''. Thus, for event 2, the classical approach yields 46 non significant associations when OR true = 1.4, but among them, 7 would be declared as ''almost significant''. It is noteworthy that the proportion of non significant associations now labeled ''almost significant'' increases with OR true from 8.8% (OR true = 1.2) to 15.2% (OR true = 1.4). If the type I error is assessed only among associations not declared ''almost significant'', it remains stable (16% and 17.8% for classical and this new strategy, respectively).

In conclusion, among the methods dealing with missing data, no approach is absolutely better than the others in all circumstances. In the presence of high proportions of missing values, using only complete data yields to a significant loss of statistical power. Single imputation underestimates the variance, thus overestimating the association between environmental factor and health outcome. Multiple imputation, due to overcoverage, is too conservative and unable to show significant associations. When the health outcome is frequent, joint modelling seems to be more efficient than other approaches, combining low RMSE, limited increase of risk of type I error, and high statistical power. The simulation study is useful for explaining the disparity of associations found in the real data, for example for LRI (Table 1) corresponding to a frequent event. Indeed, the characteristics of each method highlighted by the simulation study are found in the real case, i.e. bias using simple imputation, lack of power using multiple imputation, and significant association using Bayesian approach. The conclusion of a significant association between formaldehyde exposure and LRI is strengthened. With regards to the infrequent event, DNC, only a tendency of an association is observed. No approach gives completely satisfactory results when the health outcome is infrequent and the proportion of missing values is high. Though the Bayesian modelling has the best power and precision of estimates, this comes at a cost of inflated risk of type I error. However, estimated posterior distribution of OR would be helpful to refine the conclusion by introducing a new category of ''almost significant association'' when probability of OR less than 1 is between 5% and 10%. Concerning inflation of risk of type I error, correcting methodology as bootstrap could be implemented. This would lead certainly to very huge computer time as MCMC iterative algorithm would be used on each bootstrapped sample. An alternative approach to MCMC in repeated Bayesian estimations such as ''Importance Sampling'' could be envisaged [START_REF] Gajda | Use in practice of importance sampling for repeated MCMC for Poisson models[END_REF].

Supporting Information

Figure 1 .

 1 Figure 1. Proportions of significant associations based on 100 replicates, for each approach dealing with 95% missing values. doi:10.1371/journal.pone.0104254.g001

Figure

  Figure S1 Boxplots of b (b =l nO R ) estimates under Bayesian approach from 100 simulated datasets for the three different values of true OR dealing with no missing values, 75%, 85% and 95% of missing values. (PDF) Figure S2 Proportions of significant associations based on 100 replicates, for each approach dealing with 85%, and 75% of missing values. (PDF)

  for the number of simulations B is B~Z The quality of estimates for the different approaches was assessed by the root mean square error of beta coefficients (RMSE,

					i~1,:::,m ðÞ and CI 95% (RMSE)~ffi ffiffiffiffiffiffiffiffiffiffiffiffiffiffi ffi MSE inf p ÂÃ ; ffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi ffi MSE sup p MSE inf ~MSE{1:96 b sd sd(MSE) ffiffiffi m p and MSE sup ~MSEz1:96 where
					b sd sd(MSE) ffiffiffi m p	and MSE~RMSE 2 ). The proportion of ''significant''
					associations (PS, PS~1 m	P m i~1	1	1= [CI( c ORi ORi)	where 1 1= [CI( c ORi ORi)
		1{ a 2 d	s	2	here d is
	the specified level of accuracy of the estimate of interest
	''accepted'', s, the standard error for the parameter of interest
	RMSE~ffi 1 ffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi m s P m ( b b i b i {b true ) 2	where b b i b i is estimated b on i th dataset
	i~1

and, Z 1-a/2 , the (1-a/2) quantile of the standard normal distribution. When B = 100, a = 0.05 and s 2 = 0.26 (estimated variance on real data set), d is equal to 10%.

Table 1 .

 1 Associations between environmental risk factor a including missing values, and health outcomes, by different methods handling missing values (OR [95% CI or 95% Cr]). Environmental factor: formaldehyde exposure, expressed in mg/m 3 , (for one unit increase in the logarithmic scale), and health outcome: lower respiratory infection (LRI) or dry nigh cough (DNC). Association was adjusted for gender, socio-economic status, siblings, parental history of asthma, breastfeeding, daycare attendance, pre/postnatal tobacco smoke exposure, sign(s) of dampness, and presence of pets at home. Association was adjusted for gender, socio-economic status, parental history of allergy, breastfeeding, pre/postnatal tobacco smoke exposure, gas heating, cockroaches, infant's mattress age, family events, and number of episodes of lower respiratory infections. d : PLS imputation with two components. doi:10.1371/journal.pone.0104254.t001

	LRI b	DNC c

a : b : c :

Table 2 .

 2 Root mean square error, and proportion of ''significant'' association with 95% confidence or credibility interval, on 100 replicates with no missing values.

			OR = 1.0		OR = 1.2		OR = 1.4
			event 1	event 2	event 1	event 2	event 1	event 2
	RMSE	Frequentist	0.10 [0.09, 0.11]	0.17 [0.15, 0.19]	0.10 [0.09, 0.11]	0.12 [0.11, 0.13]	0.09 [0.08, 0.10]	0.12 [0.11, 0.13]
		Bayesian	0.10 [0.10, 0.11]	0.17 [0.15, 0.19]	0.10 [0.08, 0.11]	0.12 [0.10, 0.14]	0.09 [0.08, 0.11]	0.12 [0.11, 0.14]
	PS	Frequentist	5 [1.6, 11.3]	8 [3.5, 15.2]	59 [48.7, 68.7]	40 [30.3, 50.2]	100	83 [74.2, 89.8]
		Bayesian	4 [1.1, 9.9]	7 [2.9, 13.9]	61 [50.7, 70.6]	39 [29.4, 49.3]	100	86 [77.6, 92.1]
	Abbreviations: RMSE, root mean square error; OR, odds ratio; PS, proportion of ''significant'' association.
	Sample size for each simulated dataset: event 1 N = 2 551/event 2 N = 2 342.
	doi:10.1371/journal.pone.0104254.t002.

Table 3 .

 3 Root mean square error of beta coefficients with 95% confidence interval based on 100 replicates with 95% of missing values.

			OR = 1.0		OR = 1.2		OR = 1.4
			event 1	event 2	event 1	event 2	event 1	event 2
	Na omitted		0.33 [0.29, 0.36]	0.11 [0.10, 0.12]	0.22 [0.20, 0.24]	0.09 [0.08, 0.10]	0.18 [0.17, 0.20]	0.17 [0.15, 0.18]
	Single imputation	LM	0.46 [0.42, 0.50]	1.06 [0.95, 1.16]	0.57 [0.52, 0.61]	0.96 [0.89, 1.03]	0.70 [0.66, 0.74]	1.02 [0.95, 1.09]
		PLS	0.58 [0.47, 0.67]	0.89 [0.75, 1.01]	0.63 [0.52, 0.73]	0.81 [0.70, 0.91]	0.83 [0.71, 0.94]	0.99 [0.82, 1.13]
	Multiple imputation	LM	0.30 [0.27, 0.32]	0.33 [0.30, 0.36]	0.29 [0.26, 0.32]	0.29 [0.26, 0.32]	0.30 [0.27, 0.33]	0.29 [0.26, 0.31]
		PLS	0.48 [0.40, 0.56]	0.75 [0.62, 0.85]	0.49 [0.41, 0.56]	0.66 [0.57, 0.74]	0.65 [0.57, 0.73]	0.76 [0.65, 0.86]
	Bayesian approach		0.18 [0.16, 0.20]	0.26 [0.23, 0.29]	0.18 [0.16, 0.20]	0.24 [0.20, 0.27]	0.19 [0.17, 0.22]	0.24 [0.21, 0.26]
	Abbreviations: LM, linear model; OR, odds ratio; PLS, partial least squares.
	Sample size for each simulated dataset: event 1 N = 2 551/event 2 N = 2 342.
	doi:10.1371/journal.pone.0104254.t003

  Table S1 Predictive factors of formaldehyde exposure and covariates used for adjustment in the model relating formaldehyde exposure and health indicator. (DOC) Table S2 Root mean square error of beta coefficients with 95% confidence interval based on 100 replicates with 85%, and 75% of missing values. (DOC) Table S3 Proportions of significant associations with 95% confidence interval based on 100 replicates with 95%, 85% and 75% of missing values when OR true =1. (DOC)

PLOS ONE | www.plosone.org

September 2014 | Volume 9 | Issue 9 | e104254

PLOS ONE | www.plosone.org

September | Volume 9 | Issue 9 | e104254

Acknowledgments

The authors wish to thank the families for their participation and the administrative staff for their involvement in the PARIS study. The authors would like to thank the editor and the referees for helpful suggestions that lead to significant improvements.

The PARIS cohort is supported by the Paris council, within its Social, Childhood and Health Direction (DASES). The environmental investigation of the cohort received financial support from the French National Agency for Food, Environment, and Occupational health Safety (Anses) and the French Institute for Public Health Surveillance (InVS). Ce ´lina Roda received a doctoral grant from the French Environment and Energy Management Agency (ADEME) and the French Scientific and Technical Construction Center (CSTB). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.

Author Contributions


Anders Vinjar
email: anders.vinjar@bek.no

Jean Bresson
email: jean.bresson@ircam.fr

OpenMusic on Linux

Keywords: OpenMusic, Computer-Aided Composition (CAC), Linux, Common Lisp, Visual Programming, JACK

We present a recent port of the OpenMusic computer-aided composition environment to Linux. The text gives a brief presentation of OpenMusic and typical use-cases of the environment. We also present a short history of its development, and mention previous attempts at porting it to Linux. The main technical challenges involved with developing the current Linux port are discussed, as well as solutions to these. We end the paper by outlining some possible areas for future work.

Introduction

OpenMusic (OM) is an environment for computer-aided music composition designed as a domain-specific visual programming language. 1 It allows composers to write and run programs to transform or generate data, with interactive access to the input or output musical structures.

Before 2013 OM was developed and distributed on OS X and Windows platforms only, despite various attempts at porting the environment to Linux. In this paper we present a new, fully functional port of OM to Linux.

In Section 2 we will introduce the OpenMusic environment, first form a general point of view, and then discuss some particular aspects such as the user interface and the external dependencies of the environment. We also give a quick history of the development of OM, and previous attempts at porting the environment to Linux.

Section 3 describes our current implementation choices and the state of the Linux port. We conclude with a number of perspectives and areas for future work.

OpenMusic

2.1 A visual programming environment for computer-aided composition OM is a visual programming environment dedicated to music processing and composition [START_REF] Assayag | Computer Assisted Composition at IRCAM: From PatchWork to OpenMusic[END_REF]. It implements the main features of the Common Lisp language (abstraction, higher-order functions, recursion, iterations etc., see [START_REF] Bresson | Visual Lisp/CLOS Programming in Open-Music[END_REF]),2 as well as object-oriented programming [START_REF] Agon | OM: A Graphical Extension of CLOS using the MOP[END_REF]] and constraints programming [START_REF] Rueda | Integrating Constraint Program-ming in Visual Musical Composition Languages[END_REF].

OM is primarily an environment for work in computer-aided composition (CAC). It is also used for musicological tasks like analysis, modeling or statistics, as well as pedagogical work in composition studies or music theory [START_REF] Bresson | OpenMusic -Visual Programming Environment for Music Composition, Analysis and Research[END_REF]. The environment comes with a rich set of tools and libraries aimed at composition, analysis, DSP and other musical/extra-musical domains.

The aim of a CAC application is to aid the user in typical composition tasks like generating, representing and manipulating musical material in adequate ways, handling musical form as material develops towards a finished piece of music. Contemporary composition is a rather ill-defined activity, 3 and a good CAC tool is one with abilities to adapt well to human artistic processes, whatever those may be. Indeed, composers seldom follow strict plans for too long. More common is perhaps making up a class of material, generate versions on that, develop this again further towards some more complex structures, go back to change some-thing in an earlier stage, to arrive at yet another set of variants, and so on.

Interactive (visual) programming languages are well suited environments for composers to work efficiently and creatively with computers. The graphical environment in OM provides an interactive patch-based, data-flow approach, making it easy and intuitive to get going. Figure 1 shows a basic patch window generating a series of chords. OMs dynamic environment supports the kinds of interactive work-flows often preferred by composers, by allowing the user to evaluate and store output at arbitrary stages in the program-flow, and easy stash away variants for any kind of musical material or data.

OM is also a full-blown environment for Lisp-programming, with access to the expected REPL4 , special editors for Lisp code, crossreferencing and look up in source-code, and interactive help-system. These tools provide an environment for composers and programmers to develop new ideas and specialized creative work-flows, using graphical programming, textual programming, or any combination of these. In OM there is no particular separation between a function defined as an abstraction in a patch box or one defined by evaluating Lisp code: both are accessible as graphical objects in the user-interface.

Reports of some composition tasks and approaches carried out with OpenMusic are available in [Agon et al., 2006[Agon et al., 2008]].

User Interface

As a visual programming environment, OM is highly concerned with graphical user interfaces (GUI). To a large extent, this aspect determines the choices of platforms and frameworks that may be used for development.

While programming in OM, the user inserts and manipulates graphical objects in patch windows, dragging connection-lines between inlets and outlets of boxes, and thus establishing the data-flow of a musical program. These graphical objects may represent simple operators, abstractions or sub-patches, or more complex data like lists, arrays, break-point functions etc.

As part of the graphical programming environment, OM provides advanced editors for visualization and manipulation of data such as musical scores, break-point functions, audio waveforms and some other data types. Figure 2 shows the sound -editor, and Figure 3 shows editors for various other kinds of musical data. OM also has a programmable graphical timeline editor termed the "Maquette", where everything else which lives in OM -functions, musical data, connections -can be placed and manipulated, either manually or as a result of evaluating some code.

Development history -Previous

ports and platforms OpenMusic is a descendant of the Patchwork environment [START_REF] Laurson | Patchwork, a Graphic Language in PreForm[END_REF], one of the pioneering visual programming systems dedicated to computer-aided composition.

The first release (C. Agon and G. Assayag, IRCAM) was built in 1998 on Mac OS using Digitools' Macintosh Common Lisp (MCL). The graphical programming system was designed as a full meta-programming framework, implementing functional programming concepts and interactions, on a strong base of objectoriented programming and CLOS (Common Lisp Object System [START_REF] Gabriel | CLOS: Integration Object-oriented and Functional Programming[END_REF]). OM also introduced a number of new concepts concerning for instance handling and manipulation of objects, or unified representation of time structures.

In 2003, OM 4 was ported to OS X, and a first Linux port [START_REF] Sarria | OpenMusic for Linux and MacOS X[END_REF] was carried out at IRCAM in the framework of the AGNULA European project [START_REF] Déchelle | The AG-NULA project. Free software developments at IRCAM[END_REF]], using CMUCL5 and Gtk+6 .

Released in 2005, OM 5 [START_REF] Bresson | OpenMusic 5: A Cross-Platform Release of the Computer-Assisted Composition Environment[END_REF]] was a multi-platform version of OM developed on Mac (using MCL) and on Windows (using Allegro CL7 ). The OM 5 sources were clearly divided into a platform-independent kernel built on top of an abstract graphical/systemdependent API inspired by the MCL toolkit (MCL and ACL versions of this API were then implemented and loaded depending on the targeted platform).

A second port of OM on Linux was initiated in 2006 based on the OM 5 sources, using SBCL8 and a new implementation of the OM API for Gtk+ and CLG9 (Common Lisp GTK bindings). Unfortunately this project was never carried to its end.

In 2006, Digitools announced discontinuation of MCL development and support on Mac, due to the switch to Intel processors. The Lisp-Works environment was chosen as a replacement, providing a reliable IDE with a common cross-platform API (CAPI) compatible with the main graphic toolkits for Mac, Windows and Linux, as well as some other OS-es.

In 2008 OM 6 based on LispWorks was released for OS X and Windows.

External dependencies

OM is dependent on audio I/O systems due to its musical orientation. It is important for composers to be able to load audio or MIDI files, and convert/process the contained data in the visual programming framework. Playback and rendering of generated musical material (score/MIDI or audio) is an essential feature of the environment, and complex scheduling issues can arise when dealing with multiple simultaneous sources and audio/MIDI material interactively. Still, OM is not by nature a real-time environment and the audio performance requirements remain relatively moderate as compared to real-time scheduling or audio processing systems.

Low-level MIDI formatting and scheduling was traditionally supported in OM by the MidiShare10 system [START_REF] Orlarey | MidiShare : a Real Time multi-tasks software module for Midi applications[END_REF]]. The audio support, initially limited to a few functions interfacing with the Apple QuickTime library, was replaced in OM 5 by a more advanced and multi-platform audio support developed on top of the LibAudioStream11 library.

Besides MIDI for file I/O, support for exporting other score-type data is provided either by using built-in code or by using external libraries. OM can export to some much used file formats for sheet-music, like LilyPond12 and MusicXML13 . OM also features support for connections to technologies like SDIF [START_REF] Schwartz | Extensions and Applications of the SDIF Sound Description Interchange Format[END_REF] (standard format for interchange of sound description data), OpenGL (display of 3D objects in OM editors) and OSC [START_REF] Wright | Open Sound Control: An Enabling Technology for Musical Networking[END_REF] for inter-application communication, although none of these are strictly required to get the visual programming environment running.

OM communicates with external libraries via Common Lisp foreign function interfaces (FFI). OM either uses the FFI provided by the Lisp implementation, or the CFFI system [START_REF] Bielman | CFFI home page[END_REF], a common FFI wrapper compatible with several Lisp implementations.

Distribution and licensing

While the first OM releases were distributed commercially along with other IRCAM software, since OM 6.4 (2011), the compiled OM application has been available free of charge for all platforms.

The source-code has always been freely available under the GNU Public License.

All source-code and external libraries required for building OM are open-source. However, to build and save the actual distributed image a LispWorks Professional or Enterprise license is necessary at this moment.

Towards OM on Linux

Several previous efforts to port OM to Linux over the years suggest a real interest, and OMs main technological dependency (a professional ANSI Common Lisp implementation with interfaces to graphical toolkits, MIDI and audio libraries) has been available to Linux developers for long. Hence, it is legitimate to ask why these previous ports did not succeed too well?

First, the Musical Representations team developing OM at IRCAM use Mac OSX as main development platform. As a consequence, porting OM to the attempted environments (CMUCL or SBCL w. Gtk) means rewriting all the graphical dependencies using foreign toolkits or alternative APIs.

Audio and MIDI support has also been an issue in previous Linux ports. Although MidiShare worked fine with earlier Linuxversions,14 it is no longer maintained and kept compatible with newer releases of the Linux kernel. Moreover, OM MIDI dependencies were since the early releases packed together and integrated with the kernel code, making it difficult to replace.

As OM has evolved, work towards a more modular structure has been an explicit aim, at least since 2005 [START_REF] Bresson | OpenMusic 5: A Cross-Platform Release of the Computer-Assisted Composition Environment[END_REF]. Recent developments have gradually made the code more durable and resistant towards changes in compiler-implementations. This tendency both motivated and greatly helped the work with the current port, making it possible to develop alternative solutions for e.g. MIDI I/O, separated from those for the kernel, graphics or audio I/O.

3.1 OM 6.8 on Linux: Current State When starting this project, a separate Linux development-branch of the source-tree for OM 6.7 was set up, making it possible to get up to speed on Linux without halting further development on the main-branch. At a certain stage the separate Linux-branch was reintegrated with the main source-code. Further development of the application, and delivery of images, is now based on the same sourcetree for all three supported platforms -Linux, OS X, Windows -with only a few specializations, mainly in the graphics-code, to account for differences across platforms.

The present Linux development is based on OM 6.8 and LispWorks 6.1. The choice of Lisp-Works (a commercial Lisp compiler and IDE) for porting OM to Linux is entirely pragmatic: as mentioned, LispWorks provides a common API across graphical toolkits (Gtk+, Motif, Cocoa, Windows), and since this library is already used by the OM developers, only moderate adaptions to the existing OM API are required in order to get it working with Linux.

As suggested, this port of OM to Linux can be seen as the most recent in a series of steps towards making OM more modular. Solutions which work across platforms are presumably also less vulnerable to changes in compilers or toolkits in use. While developing Linuxcompatible substitutes for previous code, general and platform-independent solutions were looked for. In particular, most external dependencies have been made optional, so that OM can run without some specific features, if dependencies are not found, not loaded or not available for a specific environment or platform.

Audio and MIDI I/O: JACK

To substitute the low-level I/O systems for MIDI and audio, some alternative approaches were programmed and tested. The OM "player" system was rewritten in OM 6.7 as a modular API, making it easier to substitute or switch the default playback-engines with alternative audio or MIDI players.

MIDI messages and Standard MIDI Files can now be parsed and formatted using the Common Lisp MIDI library15 , and E. de Castro Lopo's libsndfile is used to access audio files on disk. The default playback-engines used in the Linux version of OM depend on libjack. Scheduling and real-time I/O of audio and MIDI between OM and hardware-ports (or between OM and other applications) have been programmed as a CL-based JACK16 client.

Other test-case playback-engines were also developed, for instance with SuperCollider (Audio-MIDI I/O, scheduling) using OSC communication, with a CL-based FluidSynth17 server (MIDI) controlled through Lisp-code, and with external MPlayer-processes18 (audio) controlled from a sub-shell. These clients work fairly well, and could be used as examples for users or developers wanting to plug in other playback-engines or I/O systems. An alternative audio player has been developed for instance using sox19 as part of the OM-Sox library.20

Libraries

OM comes with a number of specialized tools and libraries aimed at composition, analysis, DSP and other musical tasks. Some of these are "official" libraries: either distributed and maintained as part of the main OM package, or used to integrate OM with external tools such as Csound or some of the DSP engines available from IRCAM (SuperVP, PM2, Spat, Diphone, Chant).21 A rich set of 3rd-party libraries, maintained by individual composers or developers, are also available for download,22 together with simple how-tos for adding external libraries (see Figure 4). Libraries are written as standard Lisp code, so they generally work well with the Linux-port. However, those depending on platform-specific external tools (e.g. OM-Spat) are not very useful at the moment.

Source code and packaging

The OM source code is distributed as part of the application. 23 The environment features runtime introspection and provides an easily accessible cross-reference for all OM-specific classes and methods. Lisp code may be edited and evaluated interactively, or loaded from files, and may be used to specialize or modify built-in functionality.

To compile a fresh OM from sources, access to LispWorks is necessary. For this reason OM is always made available as a pre-built image, one for each platform-type. At the time of this writing, the Linux version is developed and maintained on a system running Fedora 19. Currently, OM is available as a RPM-package containing the image and all sources, which will install the binary and all sources in the usual places. Several users have adapted the RPM-packages to dpkg-based systems, seemingly without any serious issues, and also shared how-tos and experiences on the OpenMusic forums 24 .

Patches are usually distributed as Lisp files. These can be dynamically loaded by the user or be automatically sourced on application start by placing the files in a predefined location.

Conclusions -Future works

The first beta-release of OM-Linux was made available for download and presented at the IRCAM Forum workshops in November 2013, after having been tested and used by developers and users for some time. 25The previous Linux ports missed their potential audience and lacked support and follow up by the Linux developers and composer's community, presumably due to a number of obstacles and difficulties that we have tried to outline in this paper. Our hope is that this project will overcome most of these problems.

A working Linux-version of OM is useful for end-users, and Linux-developers may well find good ways to integrate OM with other applications through e.g. libraries, or to develop OM further. The stabilization of the GUI API may also help to lessen dependencies on LispWorks in the future for all platforms, and make alternative open-source solutions possible. In this effort, starting out from a functional version on Linux may be valuable.

Since the current code uses one common source-tree, the Linux-port is relatively robust and sustainable across changes in compilerimplementations or frameworks for graphics and I/O. It also minimizes the work involved in maintaining compatibility across platforms for the same application.

The features introduced to make the sources compile and run on Linux, as well as the new developed support e.g. for audio and MIDI are of a general kind, and potentially useful across platforms. The CL-based MIDI-library, as well as the JACK-client and callback setup for MIDI and Audio, are now possible alternatives also for OS X and Windows.

Further work will be done in the near future to integrate other CL-based composition and DSP-tools such as Common Music, or Common Lisp Music (CLM 26 ) [START_REF] Schottstaedt | Machine Tongues XVII: CLM: Music V meets Common Lisp[END_REF], and to extend the existing set of libraries connecting OM with open-source software like e.g. Super-Collider or LilyPond. While the JACK-client is currently useful, real-time robustness can still be improved, and other audio-libraries or backends may also be supported in the future.

Figure 1 :

 1 Figure 1: Graphical programming with OM.

Figure 2 :

 2 Figure 2: Editor for the OM sound object.

Figure 3 :

 3 Figure 3: OM environment: musical data and editors.

Figure 4 :

 4 Figure 4: OM: Packages library.

Functional programming and Lisp in particular has a strong background and tradition in the computer music history. It has proven to be relatively easy to learn, understand and use by composers.

"CAC is in effect making the computer carry out thought processes previously carried out in human brains" (Miller Puckette, preface to The OM Composer's Book vol. 1[START_REF] Puckette | The OM Composer's Book .1[END_REF]).

REPL = Read-Eval-Print loop.

http://www.cons.org/cmucl/

http://www.gtk.org/

http://www.franz.com/products/allegrocl/

http://www.sbcl.org/

http://sourceforge.net/projects/clg/

http://midishare.sourceforge.net/

http://libaudiostream.sourceforge.net/

http://www.lilypond.org/

http://www.musicxml.com/

MidiShare was also used in e.g. Common Music[START_REF] Taube | Common Music: A Music Composition Language in Common Lisp and CLOS[END_REF].

http://www.doc.gold.ac.uk/isms/lisp/midi/

http://jackaudio.org/

http://www.fluidsynth.org/

http://www.mplayerhq.hu/

Sound eXchange -sox.sourceforge.net/

M. Schumacher, OM-Sox : http://sourceforge.net/projects/omsox/

http://forumnet.ircam.fr/product/openmusiclibraries/

22 http://repmus.ircam.fr/openmusic/

libraries 23 http://repmus.ircam.fr/openmusic/sources

http://forumnet.ircam.fr/user-groups/

A review of this Linux port has been posted by D. Philips on LWN in November 2013, see https://lwn.net/Articles/574593/.

Acknowledgments

The authors would like to thank Trond Lossius and BEK (Bergen Center for Electronic Arts) for their support on this project. This work is also partly developed in the framework of the French ANR project with reference ANR-13-JS02-0004-01.

* This work is supported by BEK -Bergen Center for Electronic Arts.

1 http://repmus.ircam.fr/openmusic/