diff --git a/lab1/PT_Part2_Music_Generation.ipynb b/lab1/PT_Part2_Music_Generation.ipynb
new file mode 100644
index 0000000..2f17bbb
--- /dev/null
+++ b/lab1/PT_Part2_Music_Generation.ipynb
@@ -0,0 +1,1316 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "uoJsVjtCMunI"
+ },
+ "source": [
+ "
\n",
+ "\n",
+ "# Copyright Information"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "bUik05YqMyCH"
+ },
+ "outputs": [],
+ "source": [
+ "# Copyright 2025 MIT Introduction to Deep Learning. All Rights Reserved.\n",
+ "#\n",
+ "# Licensed under the MIT License. You may not use this file except in compliance\n",
+ "# with the License. Use and/or modification of this code outside of MIT Introduction\n",
+ "# to Deep Learning must reference:\n",
+ "#\n",
+ "# © MIT Introduction to Deep Learning\n",
+ "# http://introtodeeplearning.com\n",
+ "#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "O-97SDET3JG-"
+ },
+ "source": [
+ "# Lab 1: Intro to PyTorch and Music Generation with RNNs\n",
+ "\n",
+ "# Part 2: Music Generation with RNNs\n",
+ "\n",
+ "In this portion of the lab, we will explore building a Recurrent Neural Network (RNN) for music generation using PyTorch. We will train a model to learn the patterns in raw sheet music in [ABC notation](https://en.wikipedia.org/wiki/ABC_notation) and then use this model to generate new music."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "rsvlBQYCrE4I"
+ },
+ "source": [
+ "## 2.1 Dependencies\n",
+ "First, let's download the course repository, install dependencies, and import the relevant packages we'll need for this lab.\n",
+ "\n",
+ "We will be using [Comet ML](https://www.comet.com/docs/v2/) to track our model development and training runs. First, sign up for a Comet account [at this link](https://www.comet.com/signup?utm_source=mit_dl&utm_medium=partner&utm_content=github\n",
+ ") (you can use your Google or Github account). You will need to generate a new personal API Key, which you can find either in the first 'Get Started with Comet' page, under your account settings, or by pressing the '?' in the top right corner and then 'Quickstart Guide'. Enter this API key as the global variable `COMET_API_KEY`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "id": "riVZCVK65QTH"
+ },
+ "outputs": [],
+ "source": [
+ "!pip install comet_ml > /dev/null 2>&1\n",
+ "import comet_ml\n",
+ "# TODO: ENTER YOUR API KEY HERE!! instructions above\n",
+ "COMET_API_KEY = \"Gmvp2bm8867mDU4tHOgzlyRnU\"\n",
+ "\n",
+ "# Import PyTorch and other relevant libraries\n",
+ "import torch\n",
+ "import torch.nn as nn\n",
+ "import torch.optim as optim\n",
+ "\n",
+ "# Download and import the MIT Introduction to Deep Learning package\n",
+ "!pip install mitdeeplearning --quiet\n",
+ "import mitdeeplearning as mdl\n",
+ "\n",
+ "# Import all remaining packages\n",
+ "import numpy as np\n",
+ "import os\n",
+ "import time\n",
+ "import functools\n",
+ "from IPython import display as ipythondisplay\n",
+ "from tqdm import tqdm\n",
+ "from scipy.io.wavfile import write\n",
+ "!apt-get install abcmidi timidity > /dev/null 2>&1\n",
+ "\n",
+ "\n",
+ "# Check that we are using a GPU, if not switch runtimes\n",
+ "# using Runtime > Change Runtime Type > GPU\n",
+ "assert torch.cuda.is_available(), \"Please enable GPU from runtime settings\"\n",
+ "assert COMET_API_KEY != \"\", \"Please insert your Comet API Key\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "_ajvp0No4qDm"
+ },
+ "source": [
+ "## 2.2 Dataset\n",
+ "\n",
+ "\n",
+ "\n",
+ "We've gathered a dataset of thousands of Irish folk songs, represented in the ABC notation. Let's download the dataset and inspect it:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "id": "P7dFnP5q3Jve",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "8dd11f48-56d4-4bb9-b7e2-378b30c2ec2c"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Found 817 songs in text\n",
+ "\n",
+ "Example song: \n",
+ "X:1\n",
+ "T:Alexander's\n",
+ "Z: id:dc-hornpipe-1\n",
+ "M:C|\n",
+ "L:1/8\n",
+ "K:D Major\n",
+ "(3ABc|dAFA DFAd|fdcd FAdf|gfge fefd|(3efe (3dcB A2 (3ABc|!\n",
+ "dAFA DFAd|fdcd FAdf|gfge fefd|(3efe dc d2:|!\n",
+ "AG|FAdA FAdA|GBdB GBdB|Acec Acec|dfaf gecA|!\n",
+ "FAdA FAdA|GBdB GBdB|Aceg fefd|(3efe dc d2:|!\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Download the dataset\n",
+ "songs = mdl.lab1.load_training_data()\n",
+ "\n",
+ "# Print one of the songs to inspect it in greater detail!\n",
+ "example_song = songs[0]\n",
+ "print(\"\\nExample song: \")\n",
+ "print(example_song)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "hKF3EHJlCAj2"
+ },
+ "source": [
+ "We can easily convert a song in ABC notation to an audio waveform and play it back. Be patient for this conversion to run, it can take some time."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "id": "11toYzhEEKDz",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 62
+ },
+ "outputId": "f350f8b9-4707-4eba-ae38-2e4780d41503"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "text/html": [
+ "\n",
+ "