Thanks for all the replies guys! I don't actually need the MIDI part of USB_MIDI_AUDIO_SERIAL, so I got rid of it. The reason I have to use that build flag specifically is because I'm using a modified audio library (
https://github.com/alex6679/teensy-4-usbAudio/tree/main/src) so I can use usb ports for audio transfer. For some reason, the USB features only work with USB_MIDI_AUDIO_SERIAL. With this in mind, I changed the block in usb_desc.h to:
#elif defined(USB_MIDI_AUDIO_SERIAL)
#define VENDOR_ID 0x16C0
#define PRODUCT_ID 0x048A
#define MANUFACTURER_NAME {'T','e','e','n','s','y','d','u','i','n','o'}
#define MANUFACTURER_NAME_LEN 11
#define PRODUCT_NAME {'T','e','e','n','s','y',' ','M','I','D','I','/','A','u','d','i','o'}
#define PRODUCT_NAME_LEN 17
#define EP0_SIZE 64
#define NUM_ENDPOINTS 7
#define NUM_INTERFACE 7
#define CDC_IAD_DESCRIPTOR 1 // Serial
#define CDC_STATUS_INTERFACE 0
#define CDC_DATA_INTERFACE 1
#define CDC_ACM_ENDPOINT 2
#define CDC_RX_ENDPOINT 3
#define CDC_TX_ENDPOINT 3
#define CDC_ACM_SIZE 16
#define CDC_RX_SIZE_480 512
#define CDC_TX_SIZE_480 512
#define CDC_RX_SIZE_12 64
#define CDC_TX_SIZE_12 64
#define CDC2_STATUS_INTERFACE 2 // SerialUSB1
#define CDC2_DATA_INTERFACE 3
#define CDC2_ACM_ENDPOINT 4
#define CDC2_RX_ENDPOINT 5
#define CDC2_TX_ENDPOINT 5
#define AUDIO_INTERFACE 4 // Audio (uses 3 consecutive interfaces)
#define AUDIO_TX_ENDPOINT 6
#define AUDIO_RX_ENDPOINT 6
#define AUDIO_SYNC_ENDPOINT 7
#define ENDPOINT2_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT3_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT4_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT5_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT6_CONFIG ENDPOINT_RECEIVE_ISOCHRONOUS + ENDPOINT_TRANSMIT_ISOCHRONOUS
#define ENDPOINT7_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_ISOCHRONOUS
With this setup, the USB audio features function properly, and the compiler recognizes SerialUSB1. However, when I tried using the port connected to SerialUSB1, I wasn't getting any data through. I found that I forgot to add 'while(!SerialUSB1)' after 'while(!Serial)', and I realized I could use that to diagnose if SerialUSB1 was the source of the issue. After adding that line, the program got caught, telling me it wasn't actually connecting to the port. Could this issue be related to what h4yn0nnym0u5e mentioned?
Just a something to note, besides the changes in the git repo I linked and usb_desc.h, I haven't made changes to any other file, so it could be that I'm missing something in that regard.