Discover algorithms musically with TuneSort. It transforms sorting steps into harmonious tunes, making learning algorithms engaging and intuitive.
- Algorithm Visualisation: See how different sorting algorithms organize data in real-time.
- Musical Interpretation: Each step of the sort is translated into a musical note, creating a melody as the algorithm works through the data.
- Adjustable Speed: Control the speed of sorting, allowing for a detailed understanding of each step or a quicker overview.
- Shuffle and Sort: Users can shuffle the dataset and watch as it gets sorted back into order, providing an interactive learning experience.
- Start/Stop Functionality: Gives users control over the sorting process, allowing them to start or pause the sorting at any time.
- Starting the Application: Open the application in your browser to see the default visualisation setup.
- Shuffling Data: Click the 'Shuffle' button to randomise the data set.
- Adjusting Speed: Use the provided slider to adjust the sorting speed to your preference.
- Sorting Data: Click the 'Play' button to start the sorting algorithm. You'll hear the corresponding notes as each item is sorted.
- Pausing the Sort: Click the 'Stop' button at any time to pause the sorting process.
To set up TuneSort on your local machine:
- Clone the Repository
git clone https://github.com/JakebGutierrez/tune-sort
This command will clone the repository to your local machine.
-
Install Dependencies
Navigate to the cloned directory and run:
npm install
This will install all the necessary dependencies for TuneSort.
-
Start the Application
Once the dependencies are installed, you can start the application with:
npm run dev
This command will start the application and run it on your local server.
- Access TuneSort
- Open your web browser and go to http://localhost:5173.
- You should now be able to access and use TuneSort on your local machine.
- React.js
- Vite
- Tone.js
- CSS
-
Additional Sorting Algorithms: Expand the range with more sorting algorithms for varied visual and auditory experiences.
-
Diverse Musical Scales: Introduce a variety of musical scales, enriching the auditory experience of each sorting process.
-
Enhanced Algorithm Statistics: Offer in-depth statistics like time complexity for each algorithm, providing more educational insights.
-
Customisable Sound Options: Allow customisation of sounds for different sorting actions, enhancing user engagement.
-
Jazz Mode: Create a feature where algorithms can 'improvise' over jazz tracks for a unique blend of sorting and musical creativity.
-
Sorting Completion Indicator: Implement visual and auditory cues to indicate the completion of sorting, like a green sweep through the sorted data.
-
Live Key Changes: Enable live key changes during sorting for a dynamic, involved musical experience.
This project is open source and available under the MIT License.
Contributions to TuneSort are welcome and appreciated. If you're interested in contributing, please follow these steps:
- Fork the Repository: Create your own fork of the repo.
- Create a Branch: For each new feature or bug fix, create a new branch based on the
main
branch. - Make Changes: Implement your changes or improvements in your branch.
- Test Your Changes: Ensure your changes do not break any existing functionalities.
- Submit a Pull Request: Open a pull request from your branch to the
main
branch of the original repo. Include a clear description of your changes.
Please note that by contributing, you agree that your contributions will be licensed under its MIT License.