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

1 回表示 (過去 30 日間)
Ian Mason
Ian Mason 2019 年 3 月 24 日
編集済み: Ian Mason 2019 年 3 月 28 日
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.

採用された回答

Kodavati Mahendra
Kodavati Mahendra 2019 年 3 月 24 日
編集済み: Kodavati Mahendra 2019 年 3 月 24 日
% 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 件のコメント
Ian Mason
Ian Mason 2019 年 3 月 26 日
UPDATE: I was using numbered music files, and importing the actaul titled songs seems to have fixed the naming error.
Ian Mason
Ian Mason 2019 年 3 月 28 日
編集済み: Ian Mason 2019 年 3 月 28 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeJust for fun についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by