Comments (4)
To further expand upon this, I thought about this more as a developer and less as a musician. I think a couple of things need to happen.
Make steps on sequencer
We should be able to do something like this:
<Sequencer
steps=[
[0, 127, "c1"]
]
>
<Instrument/>
</Sequencer>
And further:
<Sequencer
steps=[
[0, 127, "c1"]
]
>
<MIDIOut channel={8}/>
</Sequencer>
Make instruments
So single oscillator synth tags are basically worthless unless you're making chiptune or something. We need to compose them into patches. Something like:
<Instrument >
<Synth type="sine"/>
<Synth type="sawtooth"/>
</Instrument>
Further, this lib shouldn't always loop. There should be a way to design a patch via MIDI in. Imagine this:
<Instrument midiInputChannel={2} >
<Synth type="sine"/>
<Synth type="sawtooth"/>
</Instrument>
Where you could play your patches with an external keyboard and have the sound design hot reload!
Arrangement
Arrangements could be top level tags, sequencers for sequencers if you will. Sequencers that are nested would not loop, but instead use a repeat prop to build arrangement bars:
<Arrangement repeat={2} >
<Sequencer repeat={1} bars={4}/>
<Sequencer repeat={4} bars={1}/>
</Arrangement>
These could be used to compose full length songs! Or at least longer loops with variety.
from react-music.
Progress posted here https://github.com/FormidableLabs/react-music/tree/1.0.0
Let me know if I'm crazy
from react-music.
@kenwheeler Somewhat related question - do you think a refactoring could enable easier state changes, specifically to support re-rendering with changed child props?
My use case is that I have a button outside the react-music
world that influences how the sequencers behave (by modifying steps
appropriately when state changes).
Right now the props are only read on the initial mount, but not on consecutive rendering runs. Ideally it would keep playing at the same point in time after a state change, but a clean reset would also work.
from react-music.
Glad to see that MIDI is not forgotten. My Roland 808 talks via channel 16 with cubase via a converter. When you have anything MIDI I'll be glad to try it.
from react-music.
Related Issues (20)
- Changing sampler settings on the fly HOT 4
- Alternate time signatures & time signature/tempo changes? HOT 3
- Wrong notation for some notes HOT 1
- Contributing HOT 2
- Improve error messages HOT 5
- this.context.close is not a function HOT 8
- Demo song not working HOT 3
- play midi files? HOT 1
- Unable to run on LinuxMint HOT 1
- note-parser not working when using as a library in another project HOT 5
- Song does not play when disabling autoplay HOT 2
- Mobile support?
- React 16 support HOT 1
- Add more instruments to play in realtime
- Tunajs bypass property propType assigned as number
- Uncaught (in promise) DOMException: Unable to decode audio data HOT 1
- Is there any function available that calls when ticking for Song Component ?
- [deleted]
- Doesn't work in Chrome 71+ HOT 3
- add support for GM soundfont
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 react-music.