-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JOSS review #11
Comments
Thank you very much @james-trayford for the detailed explanation and all the time dedicated, I appreciate it a lot! I will put all of these into the agenda, all of the suggestions are very important and some of them also appear in the user testing. Only some minor comments just in case, about the sort option I think it is great! I don't remember at this moment, which type of data needs to maintain the x value unsorted, but if that problem arises we can just put a function to undo or something like that. About the "I would expect linearly varying in x to be the correct functionality" I will check that. The column names must be included just in case the file doesn't provide one, but maybe it is working badly right now. I will check it. About the inf's and NaN's values, they are important in some cases, I don't know the better way to proceed with that, my first intuition was to do a survey with the possible option, and evaluate what people need in that cases; about the soft capabilities, I'm thinking using tickmarks to differentiate them from cero, the warning message that you suggest, some section into the configurations; this only some first thoughts. The GUI requirements and sound production gave me headaches from the beginning. We talked about it in the Audible Universe meeting I think. One option that probably works is to allow the user to deactivate the graph and sound synchronization. I will work on this topic and post here if I have some news! or I'll open a new issue for a specific exchange. |
Great, thanks for the explanations! Yeah, some of these questions seem more complicated than others, and I appreciate not all the suggestions may be feasible. In case it wasn't clear, I don't consider addressing all these issues as necessary for the actual JOSS publication, with those specific points addressed in the review thread comment: openjournals/joss-reviews#5819 (comment) |
Some of the technical issues arrising from my review for JOSS journal (openjournals/joss-reviews#5819)
Suggested direct code changes pertaining to these can be found in Pull Request #10. These are code changes that seemed small or simple enough for me as a newcomer to the sonoUno source code, though some comments below refer to more involved changes.
To reiterate what I said in the review thread, I enjoyed exploring
sonoUno
and it's functionality, and think it represents a valuable tool in providing accessible sonification of 1D data (in the pitch-mapping tradition) for research applications. I congratulate the developers on their work and hope that the comments below and attached pull request are constructive towards the future development of the code.Functionality Issues & Comments
sonoUno.data_import
are identical apart from their names and__init__
docstrings. Can one be removed? if these are placeholders for two classes that will diverge later, could consider using class inheritance to minimise repeated code and make the source code more readable.decrease.txt
example, we hear a decreasing pitch as expected. When swapping axes however, hear an increasing pitch which is incorrect (y decreases with x as x decreases with y) - this is also because the playback order of data points just goes by the row order rather than actual abcissa value.sonoUno/data_import/data_import.py
, rather than using them as column names? could also generate these strings when needed from column indexes alone. mixing numeric and string entries could lead to confusion down the line I think.numpy.isfinite
function.Performance
I thought it would be worth also adding some thoughts about code performance that could help the code. Something found while experimenting with the code is that the speed difference between GUI playback and exported audio appears to be because GUI playback is limited by the CPU performance of the user. This can be seen for example that at max tempo GUI player is significantly faster when the graphing is turned off ("Data Display" unchecked). This can be seen in the below performance graph, made by adding timing statements to print the interval between each
_sonificationloop_event
- we see that with graphing on the playback is typically ~ 200 ms while of it is closer to 100 ms.It may be worth considering a max tempo that can reasonably be achieved by a user's computer in the GUI (e.g. ~200ms in my case a 2020 macbook pro) ,so that saved audio and GUI playback audio are more similar. This would also mean that the note spacings are more regular as when pushed to the tempo limit, note spacings can vary by large factors (just due to how long the computer take to process the loop step at a given time).
For larger data sets it seems it may be desirable to have faster iteration through the data points (e.g. to ~50 ms as mentioned above - this would reduce reproduction time of the full example SDSS spectrum from ~12 m 50 s in GUI to ~3m 12 s) I think there may be ways to improve performance further in the
_sonificationloop_event
to speed things up (e.g. checking NaNs ahead of time, etc.) that may be worth looking into in future.The text was updated successfully, but these errors were encountered: