Adding Midi
This commit is contained in:
parent
7bcdbbf038
commit
75a3a414bf
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
node_modules
|
||||
midifiles
|
||||
.env
|
||||
package-lock.json
|
||||
|
124
commands/Utilities/midi.js
Normal file
124
commands/Utilities/midi.js
Normal file
@ -0,0 +1,124 @@
|
||||
exports.run = async (bot, message, args, functions) => {
|
||||
let argscmd = message.content.split(" ").slice(1);
|
||||
let urlcmd = argscmd[0];
|
||||
|
||||
if (!urlcmd) return message.reply("Please give me a MIDI URL or command");
|
||||
|
||||
|
||||
var fs = require('fs');
|
||||
const synth = require('synth-js');
|
||||
var nrc = require('node-run-cmd');
|
||||
|
||||
var download = require('download-file')
|
||||
|
||||
var url = urlcmd
|
||||
if (url != "stop") {
|
||||
var name = Math.floor(Math.random() * 999999);
|
||||
var callback = function(exitCodes) {
|
||||
console.log('Called Back - Converting....');
|
||||
|
||||
let midiBuffer = fs.readFileSync('./midifiles/' + name + ".mid");
|
||||
// convert midi buffer to wav buffer
|
||||
let wavBuffer = synth.midiToWav(midiBuffer).toBuffer();
|
||||
|
||||
fs.writeFileSync('/var/www/html/midi/' + name + ".wav", wavBuffer, {
|
||||
encoding: 'binary'
|
||||
});
|
||||
if (message.member.voice.channel) {
|
||||
|
||||
message.member.voice.channel.join()
|
||||
.then(connection => { // Connection is an instance of VoiceConnection
|
||||
console.log('Sending and Playing');
|
||||
const date = require('date-and-time');
|
||||
const now = new Date();
|
||||
message.channel.send({
|
||||
"embed": {
|
||||
"color": 2899536,
|
||||
"footer": {
|
||||
"text": date.format(now, 'MM/DD/YYYY hh:mm:ss')
|
||||
},
|
||||
"fields": [
|
||||
|
||||
{
|
||||
"name": "Midi Sound Generator",
|
||||
"value": "Here is the sound file: \n https://midi.codingvm.codes/" + name + ".wav \n It should also be playing within the voice channel" ,
|
||||
"inline": true
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
const dispatcher = connection.play('/var/www/html/midi/' + name + ".wav");
|
||||
dispatcher.on("end", end => {
|
||||
message.member.voice.channel.leave();
|
||||
});
|
||||
|
||||
dispatcher.on('error', e => {
|
||||
// Catch any errors that may arise
|
||||
return message.reply(e);
|
||||
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
.catch(console.log);
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
const date = require('date-and-time');
|
||||
const now = new Date();
|
||||
message.channel.send({
|
||||
"embed": {
|
||||
"color": 2899536,
|
||||
"footer": {
|
||||
"text": date.format(now, 'MM/DD/YYYY hh:mm:ss')
|
||||
},
|
||||
"fields": [
|
||||
|
||||
{
|
||||
"name": "Midi Sound Generator",
|
||||
"value": "Here is the sound file: \n https://midi.codingvm.codes/" + name + ".wav \n If you join voice, I can also play it when finished." ,
|
||||
"inline": true
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
message.reply('Please wait, Converting your file...');
|
||||
nrc.run('wget ' + url + ' -O ./midifiles/' + name + '.mid', {
|
||||
onDone: callback
|
||||
});
|
||||
|
||||
console.log('wget ' + url + ' -O ./midifiles/' + name + '.mid');
|
||||
}
|
||||
|
||||
if (url == "stop") {
|
||||
message.reply('I have stopped...');
|
||||
console.log('Stopping...');
|
||||
message.member.voice.channel.leave();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
exports.conf = {
|
||||
enabled: true,
|
||||
guildOnly: false,
|
||||
aliases: [''],
|
||||
permLevel: "User"
|
||||
};
|
||||
|
||||
exports.help = {
|
||||
name: "midi",
|
||||
category: "Troll",
|
||||
description: "",
|
||||
usage: "midi"
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user