Open therebelrobot opened 8 years ago
Do you get any errors in the Javascript console of your browser? You need to use the latests version of Google Chrome to make sure the Web Midi API is available. I don't check right now if this API is supported in the browser you are using. So that might play a role
So here's the console error:
Maybe I'm just not understanding the MIDI API well enough. Does this application require hardware to be connected to use? The research I'm seeing on the web API makes it seem like that. I don't have any specific digital music peripherals currently, so if that's a requirement I may just be out of luck :/
I'm pretty sure that just means there is no place for the Web Midi API to send the data out to. You could add a virtual midi bus. That's what I did. I used these steps. https://www.ableton.com/en/help/article/using-virtual-MIDI-buses-live/
On windows you need Loop Midi for this. If you still cant get it to work after setting up a midi bus just report back with your progress :)
Kk. I'm getting closer. I have the virtual MIDI port set up now (I'm on Mac), and now when I press play, it gives me a 500 server error from Meteor, with the following showing up as the browser response:
Error: ENOENT, no such file or directory '/Users/therebelrobot/git/personal/langorhythm/.midifiles/genBuffer.mid' at Object.fs.openSync (fs.js:439:18) at Object.fs.readFileSync (fs.js:290:15) at [object Object].route.action (app/routes.js:8:27) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1) at packages/meteor/dynamics_nodejs.js:121:1 at [object Object].urlencodedParser (/Users/therebelrobot/.meteor/packages/iron_router/.1.0.9.h50v2o++os+web.browser+web.cordova/npm/node_modules/body-parser/lib/types/urlencoded.js:84:40) at packages/iron:router/lib/router.js:277:1 at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) at [object Object].hookWithOptions (packages/iron:router/lib/router.js:276:1)
and the following showing up in the meteor terminal:
=> App running at: http://localhost:3000/
I20160218-09:28:22.342(-8)? Exception while invoking method 'generateMidiFile' Error: /Users/jwktje/Development/Meteor/langorhythm/.midifiles/ does not exists
I20160218-09:28:22.343(-8)? at [object Object].Meteor.methods.generateMidiFile (app/server/server.js:157:19)
I20160218-09:28:22.343(-8)? at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1)
I20160218-09:28:22.343(-8)? at packages/ddp/livedata_server.js:648:1
I20160218-09:28:22.343(-8)? at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
I20160218-09:28:22.343(-8)? at packages/ddp/livedata_server.js:647:1
I20160218-09:28:22.343(-8)? at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
I20160218-09:28:22.344(-8)? at [object Object]._.extend.protocol_handlers.method (packages/ddp/livedata_server.js:646:1)
I20160218-09:28:22.344(-8)? at packages/ddp/livedata_server.js:546:1
W20160218-09:28:22.405(-8)? (STDERR) Error: ENOENT, no such file or directory '/Users/therebelrobot/git/personal/langorhythm/.midifiles/genBuffer.mid'
W20160218-09:28:22.405(-8)? (STDERR) at Object.fs.openSync (fs.js:439:18)
W20160218-09:28:22.405(-8)? (STDERR) at Object.fs.readFileSync (fs.js:290:15)
W20160218-09:28:22.405(-8)? (STDERR) at [object Object].route.action (app/routes.js:8:27)
W20160218-09:28:22.405(-8)? (STDERR) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1)
W20160218-09:28:22.405(-8)? (STDERR) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
W20160218-09:28:22.405(-8)? (STDERR) at packages/meteor/dynamics_nodejs.js:121:1
W20160218-09:28:22.406(-8)? (STDERR) at [object Object].urlencodedParser (/Users/therebelrobot/.meteor/packages/iron_router/.1.0.9.h50v2o++os+web.browser+web.cordova/npm/node_modules/body-parser/lib/types/urlencoded.js:84:40)
W20160218-09:28:22.406(-8)? (STDERR) at packages/iron:router/lib/router.js:277:1
W20160218-09:28:22.406(-8)? (STDERR) at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
W20160218-09:28:22.406(-8)? (STDERR) at [object Object].hookWithOptions (packages/iron:router/lib/router.js:276:1)
The only file present in langorhythm/.midifiles/
, from what I can tell is theTest.mid
. Is there another midi file I'm missing? (I cloned the repo and am working in master
)
Also, that error stack references /Users/jwktje/Development/Meteor/langorhythm
, which doesn't exist in my system. Is that the path it's trying to access?
I have the same problem, although im running Linux. It cant find the midi file :/ exactly same error message as Rebel. And your last comment Rebel, I think you have to go into the server.js and change the destination to your own.
Good catch on that path. PR submitted for that.
Merged it! Thanks for the fix. I'm quite busy so I appreciate the help.
Edit: Also, let me know if your issue is resolved by this so I can close the issue :)
So that PR solved the second weird thing I saw in the call stack, the path not matching. Even after that update, though, I'm getting the issue of it failing on midi file generation. Here's the current error call stack:
=> App running at: http://localhost:3000/
I20160219-08:49:47.460(-8)? Exception while invoking method 'generateMidiFile' Error: /Users/therebelrobot/git/personal/langorhythm/.meteor/local/build/programs/.midifiles does not exists
I20160219-08:49:47.461(-8)? at [object Object].Meteor.methods.generateMidiFile (app/server/server.js:158:19)
I20160219-08:49:47.461(-8)? at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1)
I20160219-08:49:47.461(-8)? at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
I20160219-08:49:47.461(-8)? at packages/ddp/livedata_server.js:648:1
I20160219-08:49:47.461(-8)? at packages/ddp/livedata_server.js:647:1
I20160219-08:49:47.461(-8)? at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
I20160219-08:49:47.461(-8)? at [object Object]._.extend.protocol_handlers.method (packages/ddp/livedata_server.js:646:1)
I20160219-08:49:47.461(-8)? at packages/ddp/livedata_server.js:546:1
W20160219-08:49:47.541(-8)? (STDERR) Error: ENOENT, no such file or directory '/Users/therebelrobot/git/personal/langorhythm/.midifiles/genBuffer.mid'
W20160219-08:49:47.541(-8)? (STDERR) at Object.fs.openSync (fs.js:439:18)
W20160219-08:49:47.541(-8)? (STDERR) at Object.fs.readFileSync (fs.js:290:15)
W20160219-08:49:47.541(-8)? (STDERR) at [object Object].route.action (app/routes.js:8:27)
W20160219-08:49:47.541(-8)? (STDERR) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1)
W20160219-08:49:47.541(-8)? (STDERR) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
W20160219-08:49:47.542(-8)? (STDERR) at packages/meteor/dynamics_nodejs.js:121:1
W20160219-08:49:47.542(-8)? (STDERR) at [object Object].urlencodedParser (/Users/therebelrobot/.meteor/packages/iron_router/.1.0.9.h50v2o++os+web.browser+web.cordova/npm/node_modules/body-parser/lib/types/urlencoded.js:84:40)
W20160219-08:49:47.542(-8)? (STDERR) at packages/iron:router/lib/router.js:277:1
W20160219-08:49:47.542(-8)? (STDERR) at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
W20160219-08:49:47.542(-8)? (STDERR) at [object Object].hookWithOptions (packages/iron:router/lib/router.js:276:1)
And this occurs when I type text into the text box below the drop down, as shown here:
Maybe I'm just not using the fields right? None of them are labeled, so I'm kinda just shooting in the dark a bit...
Im probably wrong but i think that box is for the BPM, the box below however. If you type in that one, and then press calculate tempo, then you should get the BPM in the 2nd :)
@Cowaii tried that, no joy :/
Actually, I don't think it has very much to do with what you put in the fields. I just tried it without putting anything anywhere, and it still did the process with no errors.
And I had a similar problem (Also on Mac) but my issue was solved the moment I changed the destination to Meteor.tempDir = "/Users/GameHead/Downloads/langorhythm-master/.midifiles/"; as Cowaii and jwktje mentioned. Maybe the code you added to make it a dynamic path is leading it to the wrong destination. When you check the server.js file, does the string for Meteor.tempDir match that second error, where it says "ENOENT, no such file or directory"?
I am having these exact same problems but unlike Sycadelikm Meteor.tempDir = "/Users/2015First/Downloads/langorhythm-master/.midifiles/"; is not helping. I just get a message saying: "'Meteor.tempDir' is not recognized as an internal or external command, operable program or batch file." No audio is going to my headset and it is simply not working. It is probably the ENOENT problem but I don't know. I am running it on windows 10 64bit in chrome with the loopMIDI app running alongside.
I'm having a similar problem on debian jessie (linux) 64bit in chromium. Where in the code is the directory supposed to be created?
@Sycadelik yeah, the dynamic path is going to the wrong loaction. The path expression should be: path.resolve(path.resolve('.'), "../../../../../.midifiles/"). Now it's saving the midi file to .midifilesgenBuffer.mid instead of .midifiles/genBuffer.mid.
Hi everyone. Just letting you guys know. You van now try the web version if you have trouble running the Meteor version: http://kickthejetengine.com/langorhythm/
So I found you from an Andrew Huang video, and tried to get this up and running, though I'm running into some difficulties.
I got Meteor installed, and can successfully get the server up, but once inside the app, I'm not sure what is needed to run this. Here's the view I'm seeing:
I did receive a request for access to my "midi" devices, though I don't have any connected... Do you have any tips on getting this up and running from scratch?