Skip to content

To continue contributing to innovative projects in sound design and audio programming, with a focus on creative and open-source solutions.

License

Notifications You must be signed in to change notification settings

Mike014/Open-Source-Contributions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Michele Grimaldi - Portfolio

🛠️ Open Source Contributions

unDAW

  • Contributed to the unDAW project, an open-source Digital Audio Workstation (DAW) for Unreal Engine.
  • My spatial audio codes, available in the repository My-Cpp-Codes-For-UnrealEngine, were integrated into the project.
  • Focused on algorithms for improving spatial audio rendering and optimizing audio performance.

Axelrod

  • Worked on the Axelrod project, a framework for simulating strategies and tournaments in the prisoner's dilemma.
  • Key Contributions (using Tox for testing and debugging):
    • Fix test issues and optimize test execution:
      • Used Tox to identify and fix the TestOpponent import error in test_sequence_player.py.
      • Refactored test classes with __init__ constructors to resolve PytestCollectionWarning.
      • Addressed UserWarnings in test_memoryone.py and test_memorytwo.py related to default player settings, ensuring better compatibility.
      • Handled the seed reproducibility warning in test_player.py to guarantee deterministic test results.
      • Resolved the RuntimeWarning in test_zero_determinant.py caused by invalid division.
      • Optimized test execution by running tests in parallel with pytest-xdist to improve efficiency.
      • Fixed minor warnings related to test strategies and examples.
      • Refactored test_tournament.py:
        • Renamed files from stochastic_tournament to deterministic_tournament for consistency.
        • Added logic to remove existing output files before re-generating them to prevent conflicts.
        • Improved seed handling for deterministic and stochastic tournaments.
      • Updated OpponentTest class:
        • Renamed from TestOpponent for clarity and better pytest compatibility.
        • Removed the __init__ constructor and replaced it with a static strategy method.
      • Adjusted Hypothesis-based tests (test_property.py):
        • Replaced .example() with the @given decorator for better random test generation.
        • Reduced test examples (max_examples=3) to speed up execution without affecting coverage.
    • Documentation improvements:
      • Updated docs/Makefile:
        • Removed the -W flag to prevent warnings from being treated as errors during documentation builds.
        • Added comments to clarify changes and facilitate future updates.
      • Revised CHANGES.md to document fixes, improvements, and new optimizations in tests and configurations.
    • Configuration updates:
      • Enhanced tox.ini:
        • Added pytest-xdist for parallel test execution.
        • Included isort and black checks for code consistency.
        • Updated Python environment configurations to support Python 3.11 and Python 3.12.
      • Consolidated and updated dependencies in requirements.txt and docs/requirements.txt:
        • Added missing dependencies (pytest, pytest-xdist, tox, numpy, etc.).
        • Updated versions of several libraries (e.g., numpy, hypothesis, matplotlib) to ensure compatibility.
    • Performance and reliability:
      • Used Tox to debug and fix warnings related to reproducibility, including seed warnings and floating-point operations.
      • Improved test reproducibility by centralizing seed initialization and ensuring consistent random behavior across runs.
      • Enhanced test reliability by enforcing deterministic outputs in test_tournament.py.

This work was completed with Tox as the primary tool for testing, debugging, and ensuring compatibility across multiple Python environments.

LiSE

Recap of Work on the LiSE Project

First Commit

  • Created a new Python virtual environment (venv312) to ensure compatibility with Python 3.12, using the required modules.
  • Installed necessary dependencies, including msgpack, pytest, tox, black, and isort.
  • Configured tox to test the project in a specific Python environment (3.12).
  • Used pytest to run the project tests and resolved the following issues:
    • DeprecationWarnings related to the use of ast.Num and ast.Str, updating them to ensure compatibility with Python 3.14.
    • PytestUnknownMarkWarnings: Corrected or registered custom markers @pytest.mark.big and @pytest.mark.slow to avoid warnings.
  • Used Black to automatically format the project code according to PEP 8 standards.
  • Used isort to organize imports in the code files.
  • Fixed sorting errors and formatted the following files:
    • Example files (examples/*.py).
    • Main modules (LiSE/, ELiDE/).
    • Test files (tests/*.py).
  • Resolved a warning related to tarfile.py by specifying the filter argument to prepare for upcoming changes in Python 3.14.
  • Applied fixes compatible with future versions of the language to ensure backward compatibility and project scalability.
  • Properly configured the Git user:
    • Email: mikgrimaldi7@gmail.com.
    • Username: Mike014.
  • Made a significant commit with the message:

    "Fix warnings and format code, Resolved DeprecationWarnings, formatted code with Black, and cleaned up imports using isort."

  • Planned to push changes to the GitHub repository LiSE.
  • The work improved:
    • Code readability.
    • Future compatibility of the project with newer Python versions.
    • Code structure and consistency.
  • Ready to share the changes with the open-source project community.

Second Commit

Refactored code, improved documentation, and updated configuration:

  • Applied code refactoring across multiple files for consistency and readability.
  • Enhanced the Sphinx documentation:
    • Added detailed sections for Introduction, Design, and ELiDE.
    • Improved the structure and formatting of .rst files.
  • Updated and tested the project setup:
    • Improved setup.py to handle encoding and enhanced dependency management.
    • Fixed issues in eqversion.py and main.py for better compatibility and error handling.
  • Improved tox configuration to include additional checks:
    • Added isort and black commands to the tox.ini configuration.
    • Personalized pytest markers for better test categorization.
  • Incorporated pylint for static code analysis:
    • Fixed critical issues such as unused variables (W0613), undefined loop variables (W0631), and improper imports (E0401).
    • Enhanced code quality by addressing naming style inconsistencies (C0103) and missing docstrings (C0114, C0116).
    • Achieved a score improvement from 6.59/10 to 7.58/10.
  • Conducted successful tests using tox:
    • 198 tests passed, 7 skipped, 8 warnings in 535.68 seconds.
  • Specific file changes:
    • eqversion.py: Fixed logic for version comparison and added better error messages.
    • main.py: Improved path handling and added fallback for missing modules.
    • setup.py: Enhanced dependency parsing and fixed encoding issues.
    • tox.ini: Enhanced test commands and added personalized markers.
  • Updated README.md with comprehensive details about configuration files, Python modules, and documentation structure.

Third Committ

Added data exploration and visualization scripts:

  • Created explore_data.py: Added a function get_tables to retrieve the names of all tables in the specified SQLite database. Included detailed docstrings for better understanding and documentation.
  • Created visualize_data.py: Added functionality to visualize the distribution of a specific column in a table from the SQLite database using matplotlib and seaborn. Included example usage to demonstrate how to use the functions to explore and visualize data from the database.
  • Example usage in visualize_data.py: Demonstrated how to connect to the database, retrieve table names, and visualize data from a specific table and column. Ensured compatibility and proper error handling for missing tables or columns. Improved project structure and documentation to facilitate data analysis and visualization tasks.

🎮 Video Games

Contributed to the development of several indie video games, working on both sound design and code implementation:

  1. Cats' Craving

    • Role: Created immersive audio and implemented gameplay logic using Unreal Engine.
  2. My Clicky Game Music

    • Role: Created dynamic music and wrote gameplay code.
  3. Xenolith

    • Role: Optimized the audio engine and implemented gameplay features.
  4. Ninja Pizza and the Lost Pineapple Sauce

    • Role: Designed sound effects, composed music, and programmed audio events in gameplay.

🎧 Key Skills

  • Audio Programming: Unreal Engine (C++, Blueprint), JUCE.
  • Sound Design: Creating sound effects and dynamic music for games and applications.
  • Backend Development: Python for optimizing workflows and resolving issues (e.g., Axelrod project).
  • Optimization and Debugging: Resolving complex issues and optimizing workflows in open-source projects.

🌟 Objectives

To continue growing in my role as a Back-End Software Developer, with expertise in Python, C++, and audio programming for video games. My goal is to contribute to innovative projects that leverage my technical skills to develop robust and efficient solutions in gaming and software development.


📫 Contact

About

To continue contributing to innovative projects in sound design and audio programming, with a focus on creative and open-source solutions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published