Making galaxies with music and hopefully... eventually... music with galaxies.
This image brought to you by the Brown University Alma Mater.
galaxymusic is the prototype of a Python library that allows you to create visualizations of galaxies as informed by GALFIT and synchronize them with music. The library provides tools to generate animations, process images, and integrate audio to create a fun audiovisual experience.
galaxymusic is dependent on a copy of the galfitlib local to the repository as denoted by the _
preceeding it.
The main galfitlib repository is currently private but is a work in progress.
Upon its completion, this repo will be updated to correctly import it.
- Generate galaxy mosaics and animations.
- Integrate music with galaxy visualizations.
- Support for parallel processing to speed up image processing tasks.
To install galaxymusic, clone the repository and install the required dependencies:
git clone https://github.com/matthewportman/galaxymusic.git
cd galaxymusic
pip install -r requirements.txt
galaxymusic
also needs ffmpeg
to generate the final mosaic video.
To create a galaxy mosaic, open the galaxy_music.ipynb
notebook in a jupyter
installation of your choice. Modify the hyperparameter music_filename
to select
the music file you would like to process. Then run the notebook to generate a galaxy
mosaic synchronized and informed by the music.
For more details, see the documentation inside galaxy_music.ipynb
.
Note, galaxymusic contains some utilization of the galfitlib library, which is not
yet ready for distribution. A local copy is included in the repository. A few of the modules
used in galaxy_music.ipynb
can be found there in the utilities/music
directory.
Any additional utility used throughout is from functionality included in the library itself.
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
This project is licensed under the GPL-3.0 license. See the LICENSE
file for more details.
For any questions or inquiries, please contact portmanm@uci.edu.
Special thanks to Matthew Hopkins for his help with the FFT/Signal Processing code and several others of the original hack day team that helped to inform the initial versions of this script.