Welcome to the Flute Physical Modelling repository! This GitHub repository contains Python code and Max patches for implementing flute physical modelling based on the work of Cook, Garton, Karjalainen, and Välimäki. The implementation allows you to simulate and synthesize the sound of a flute using physical modelling techniques.
The flute physical modelling technique aims to simulate the behavior and sound of a flute by modeling the physical components and interactions involved. This repository provides you with the necessary code to explore flute physical modelling using both Python and Max.
- Smith, Julius O. "Physical modeling using digital waveguides." Computer music journal 16.4 (1992): 74-91.
- Karjakainen, M. "Transmission-line modeling and real-time synthesis of string and wind instruments." Proceedings of 1991 ICMC (1991): 293-296.
- Cook, Perry R., et al. "PHYSICAL MODELING AND SIGNAL PROCESSING." (1992).
- Valimaki, V., et al. "A real-time DSP implementation of a flute model." Acoustics, Speech, and Signal Processing, IEEE International Conference on. Vol. 2. IEEE Computer Society, 1992.
- Välimäki, Vesa, Matti Karjalainen, and Timo Laakso. "Modeling of woodwind bores with finger holes." In International Computer Music Conference ICMC´ 93, Tokyo, Japan, Sept. 10-15, 1993, pp. 56-63. Int. Computer Music Association, 1993.
To use the code in this repository, follow the steps below:
-
Clone the repository to your local machine using the following command:
git clone https://github.com/nbrc/flute-physical-modelling.git
-
Make sure you have the required dependencies installed. The Python code is provided as Jupyter notebooks, so you need to have Jupyter Notebook or JupyterLab installed on your system. Additionally, you will need Max/MSP software to run the Max patches.
-
Install the Python dependencies by running the following command:
pip install -r requirements.txt
This repository provides two different ways to explore and utilize the flute physical modelling:
-
Open the Jupyter Notebook or JupyterLab environment on your system.
-
Navigate to the cloned repository directory.
-
Open the provided Jupyter notebooks in the
python
directory to explore and run the Python code.
-
Launch Max/MSP software on your system.
-
Navigate to the
max
directory and open the Max patches provided. -
Follow the instructions and explore the different Max patches to simulate and synthesize the sound of a flute using physical modelling.
Feel free to choose the approach that suits your needs or explore both for a comprehensive understanding of flute physical modelling.
The repository has the following structure:
python/
: Contains Jupyter notebooks implementing flute physical modelling in Python.max/
: Contains Max patches for simulating and synthesizing the sound of a flute.graphs/
: Contains block graphs illustrating the models' structure and interactions.
Feel free to explore and modify the code in the respective directories.
Contributions to this repository are welcome! If you have any improvements or new features to add, please follow these steps:
-
Fork the repository.
-
Create a new branch for your feature or improvement.
-
Make your changes and commit them with descriptive messages.
-
Push your changes to your forked repository.
-
Submit a pull request, explaining your changes and their benefits.
This project is licensed under the MIT License, which applies to the specific code and resources created by the repository owner. However, please note that the original work of Smith, Cook, Garton, Karjalainen, and Välimäki, including their code and any associated licenses, retains its own separate licensing.
The licenses and terms of use for the original work by Smith, Cook, Garton, Karjalainen, and Välimäki apply to their respective contributions. Any use, modification, or distribution of their work should comply with the licenses and terms specified by the original authors.
Please be sure to review and respect the licenses and terms of the original work when using or modifying their code. The license specified in this repository applies solely to the code and resources created by the repository owner.
For more information about the specific licenses and terms of the original work, refer to the respective sources and files provided by Cook, Karjalainen, and Välimäki.
Please note that this repository is provided as-is and contributors make no warranties or guarantees regarding its functionality. Use it at your own risk.
For more information, refer to the LICENSE file.
If you have any questions or concerns regarding licensing, please consult with the appropriate legal advisors.