Comments (10)
would you be able to use fl studio or mixcraft midi outputs to put into moppy directly[?]
Yup! You might need to get a utility to act as a virtual MIDI In/Out, but you would be able to do that.
from moppy2.
thanks for this, just in time for my (in progress) midi drum robot, and midi dot matrix printer builds :)
from moppy2.
Hey, so, I have a question for you if you're interested in this feature. The MIDI In is no problem, it basically just replaces or adds to the sequencer we're already using. For MIDI Out there are two options:
- MIDI events are converted to MoppyMessages, run through the mapping scripts like normal, and then get converted back into MIDI events on output. MIDI Out would essentially show up as "device" connected to the computer. This would let you send only certain channels / notes to the MIDI Out, but would throw away any MIDI events not convertible to MoppyMessages (control change, &c.).
- MIDI events are piped directly from MIDI In (or a MIDI file) right out to MIDI Out. This means that all the MIDI events will get sent to the MIDI Out port so if you wanted only some channels played you'd have to do the filtering on the receiving end, but you'd get every single MIDI event in case you needed them.
Both options would allow you to sync MIDI devices to the Floppy Drives, it's more a question of if you need all the events and where you're going to do the channel filtering. Technically it's also possible to do both and figure out a way to encapsulate arbitrary MIDI event data into special MoppyMessages for routing and unbox them on their way to MIDI Out, but that's a bit more complicated.
Does either option sound more useful for what you're planning?
from moppy2.
for midi out, option 2 sounds the best i think.
my drum robot is built to recieve raw midi, then it listens for data on channel 10, octave 2, and hits corresponding drums (i will have to edit the midi files to align the drums with my setup, but it should work in theory)
i plan to do the same for the printer, hopefully i can listen for data for a midi channel (the same way as the drum robot) then split (using yet another arduino) to the 24 dot-matrix pins
this way i get 24 note polyphony on only 1 midi channel leaving the rest for other instruments- might be more efficient than trying to do more than 16 channels :)
i don't know if i need all the other events, but they might be useful for people using synths and stuff
from moppy2.
Alrighty, a MIDI-passthrough option it is. Shouldn't be too terrible once I get to it; I'll update/close the issue when there's progress
And obviously I'm fairly biased here ;) , but if you haven't already implemented the dot matrix MIDI parsing bit, you could add new MoppyInstrument class in the Arduino library (i.e. a sibling of FloppyDrives.cpp named something like DotMatrix.cpp) to leverage the MIDI routing and parsing that's already available there.
from moppy2.
excellent, thanks π
unfortunately i'm completely allergic to writing code, but i have the hardware mostly complete, going to bash my head against the keyboard this week and see if i can get something working
i will look into using an instrument class, but i feel a steep steep learning curve ahead, so it might be a while before i have any progress on the printer. drums are almost working, so i will do them first i think
from moppy2.
I agree my Tesla controller searches for the Chanel and can play two devices on the one board, so the multiple channels would be useful. Also would you be able to use fl studio or mixcraft midi outputs to put into moppy directly. I tend to have to constantly move back and forth editing midi files when they have direct outputs.
from moppy2.
I also agree with 2 since it's the most 'complete' option and offers more freedom, even if it's at some expense of ease of use.
Also, heads up, you might want to be careful about pitch adjustment in the live source. Also, adding support for the mod wheel to do something cool might be interesting, say, controlling the number of outputs to use?
from moppy2.
Pitch bending is supported currently, and configured in MoppyInstrument.h to 200cents at full deflection by default.
Mod wheel support could definitely be added by creating a new MoppyMessage type to contain the events. I haven't come across a compelling use case yet, but I've been intentionally leaving that door open.
from moppy2.
Alrighty, just added a commit that adds:
- MIDI In: Messages from this MIDI device will behave the same as if they'd come from the sequencer (i.e. be sent through the mappers and on to the floppy drives, etc.)
- MIDI Out: Messages from the sequencer and any selected MIDI In device will be piped straight through to this device (by passing any mapping, etc.)
Haven't built a release yet so you'll have to build your own from source-- if that's an issue for anyone here let me know and I'll make a release specifically for MIDI support. Otherwise, definitely let me know how it works for you and please open a new issue for any problems you run into.
from moppy2.
Related Issues (20)
- Alternative power supply and drive not stepping. HOT 3
- Question on code HOT 1
- Maintained HOT 21
- Description of the device HOT 2
- DAW Midi Stop
- Pinout for 74HC595 using ESP8266 HOT 2
- ...Android π HOT 4
- Windows Java Runtime Error HOT 2
- MoppyGUI wont connect to arduino HOT 2
- Floppy drive doesn't play music or startup tone HOT 13
- Compilation error: 'TIMER_RESOLUTION' was not declared in this scope HOT 7
- Nothing happens HOT 1
- code not compilation HOT 4
- Notes per channels HOT 1
- MoppyControlGUI.bat crashes HOT 10
- Default Sub-Address Script is Wrong
- Π€Π»ΠΎΠΏΠΏΠΈ HOT 1
- ControlGUI sends mdi data to serial, board serial led indicates data comes but the floppy motor doesn't move HOT 10
- Startup Sound should default to true HOT 1
- ESP32 support HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from moppy2.