[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Summary of discussion from ARO session on "Research and Teaching tools for Matlab"

Dear All,

First, if you host your code on GitHub, it is straightforward to assign your repository a DOI and thus make it more easily citeable: you can read about how to do this here.  This makes linking a published article and the code that was used in it very easy; "back-linking" is still a challenge (ie, visitors to your github page do not automatically know which papers used your code).

I can also recommend github to publish reseach code and toolkits. We try to publish most of our work there, see for instance https://github.com/spatialaudio. Using Zenodo to make the code/data citable works great.

Both of these ideas really rely on an open-source approach to research computing.  I consider my code and its development history a necessary "trust-but-verify" component of my work, so it seems natural to have it publicly available at time of publication.  While that opinion is not universal, tools like the Jupyter Notebook, which is "a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text.", provide researchers with a fast and easy way to share results quickly and provide a fast verification step.  In this way, researchers can keep pace with the rapid progress of a competitive research field, without fully releasing their code until it's ready, while still giving their peers a deeper look into their results than can normally happen with, for example, static figures in a publication.

We are moving from MATLAB to Python to make things more accessible by relying only on Open Source Software. For instance by porting the Sound Field Synthesis Toolbox from MATLAB to Python https://github.com/sfstoolbox/sfs-python. Besides being open-source, Python is a nice programing language that offers a bunch of benefits over MATLAB. More or less all tools required for audio signal processing are already available.

The Jupyter Notebook is a great tool for research and teaching. I used it for instance for the lecture notes to my course on Digital Signal Processing, see http://nbviewer.jupyter.org/github/spatialaudio/digital-signal-processing-lecture/blob/master/index.ipynb. You can combine text with LaTeX style math and (Python) Code. There are various ways to host the notebooks on the net without having the need of an local installation. You can create interactive figures, mix different programming languages, etc. And you can further export the notebooks to many other formats.