cis3296f24 / Section3ProjectPresentation

cis3296f24-classroom-project-presentation-ProjectsFeedbackBoard-template created by GitHub Classroom
0 stars 0 forks source link

Discord Live Music Mixer Bot #24

Open CBerg333 opened 1 month ago

CBerg333 commented 1 month ago

Project Abstract This project will be a music bot for Discord that will support automatic mashups between two tracks while generally allowing for an increasingly customized listening experience, such as audio reversal features, increased/decreased playback speed, and other effects such as flangers, gain, reverb, and high/low pass filters. It will have a functional queue system and will support tracks across several streaming services to ensure an extensive music library will be available for all music tastes.

Conceptual Design The most important class in this program will be a Player class which will wait for user input. It will frequently cite a Storage class which contains the tracks themselves, as well as a neighboring Web class dedicated to scraping the track from whichever streaming service is being requested (Soundcloud, Youtube, etc). Once the track is stored, it will be placed in the Storage queue if another track is playing, and it will be deleted as soon as the track is finished playing to save space. The storage class will operate in two loops; one will be dedicated to waiting for a track to be queued, and the other will allow users to queue for effects as a track plays. Most effects will have their own classes, however some effects (like playback speed or filtering) will be contained in the same class, assuming they accomplish essentially the same function in different directions. If the track queue loop in the Player class is quit, that will be the bot’s sign to leave the voice chat. That loop will effectively be the bot’s Main.

Background I will be citing existing Discord music players, some with effects support, such as Musico, MatchBox, and FlaviBot. This bot will expand upon this infrastructure, supporting even more effects and allowing for effect combinations, as well as an undo queue to reverse effect controls.

Required Resources The bot will be coded in Python, specifically citing three suites: Discord.py, FFmpeg, and Youtube.dl. These two collections will work in tandem so the bot can comfortably join and leave servers, leave messages in case of an error, and download, play, and apply effects to tracks.

Proof of Concept https://github.com/CBerg333/JockeyBot

yuseftohamy commented 1 month ago

Your proposal to work on the Discord music bot, introducing a mashup feature and several audio effects, can be a very interesting topic to work on. The most attractive part for me was the ideal blend of creativity and technical challenge in this project. This innovation lies in the customized audio experience and serving a unique set of features. I personally like projects that combine user input with multimedia manipulation, and this does so on a platform like Discord-exemplary to me for interaction in real-time and entertainment.

I'd like to contribute in enhancing the robustness and usability of the bot. With experience in building a shell in C with program execution and background processes, I can definitely contribute toward designing the queuing system to have the bot smoothly handle concurrent requests for both tracks and effects. I could also develop the implementation of the Web class, which scrapes tracks from various streaming services efficiently and securely. One thing that could enhance this a bit more would be the integration of recommendations driven by AI, based on user preferences. I could research and prototype this feature to allow the bot intelligently to suggest mashups or effects either from user listening history or previous choices. Also, I would recommend further adding a user interface in the Discord-if it can be interacted with by buttons or slash commands-than making tracks and their effects easier to manage.

123GetBuckets commented 1 month ago

I'm enthusiastic about this project because of the opportunity to work directly with audio and the numerous functions that can be implemented. Amongst the requirements in your description, I would like to contribute an equalizer, because when I'm listening to music I need it to sound just right. I have extensive experience working in python, specifically in the field of image and signal processing. I think that experience is relevant for working directly with the audio, if need be.