I'm trying to create Random Music Player and could use help!

4 visualizaciones (últimos 30 días)
TLDR: I stream music in my dorm room 24/7 and the stations I listen to loop every 19 hours and 41 minutes, and it gets old. So I want to make a random music player with matlab.
I am using the randi function to generate a random number so that it chooses one. Now, I need it to realize that is the name of a song, grab it, and then play it.
Here is the code I have so far! Any help would be greatly appreicated as I am a beginer. (I know that I only have 12 songs so far, this is just a proof of concept for now).
r = randi(12);
%use the random number generated to select a song (all named 1.m4a or
%12.m4a or whatever)
%plug the song into the folling code that plays the song
[a, Fs] = audioread('__________.m4a');
plot(a(:,1))
p = audioplayer(a,Fs);
play(p)
%repeat process. I will eventually turn this into a fucntion that can
%smartly choose between playing another song or letting us hear from a DJ
%in the Fallout Video games, but right now I just want to get the random
%generation perfected.

Respuesta aceptada

Kodavati Mahendra
Kodavati Mahendra el 24 de Mzo. de 2019
Editada: Kodavati Mahendra el 24 de Mzo. de 2019
% clear all; close all; clc
MusicList = dir('*.m4a');
while(1)
r = randi(length(MusicList),1,1)
[a, Fs] = audioread(MusicList(r).name);
plot(a(:,1))
p = audioplayer(a,Fs);
play(p);
pause(length(a)/Fs);
end
I am not sure if I understand your question completely. Does this help?
This gets the list of .m4a files in the current directory and plays them randomly indefinitely.
  6 comentarios
Ian Mason
Ian Mason el 26 de Mzo. de 2019
UPDATE: I was using numbered music files, and importing the actaul titled songs seems to have fixed the naming error.
Ian Mason
Ian Mason el 28 de Mzo. de 2019
Editada: Ian Mason el 28 de Mzo. de 2019
Thank you for your guidence into this! If anyone else wants to try this, my code is...
%HOLD control c to stop because it won't stop on it's own
mus = dir('mus/*.m4a');
dj = dir('dj/*.m4a');
while true
rd = randi(length(dj),1,1);
[a, Fs] = audioread(strcat(dj(rd).folder,"/",dj(rd).name));
plot(a(:,1))
title(dj(rd).name(1:end-4));
p = audioplayer(a,Fs);
play(p)
pause(length(a)/Fs);
for ii=1:randi(4)+3
rR = randi(length(mus),1,1);
[a2, Fs2] = audioread(strcat(mus(rR).folder,"/",mus(rR).name));
plot(a2(:,1))
title(mus(rR).name(1:end-4));
p = audioplayer(a2,Fs2);
play(p)
pause(length(a2)/Fs2);
end
end

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by