Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get basic audio graph compilation working #10

Closed
maximecb opened this issue Jun 24, 2021 · 3 comments
Closed

Get basic audio graph compilation working #10

maximecb opened this issue Jun 24, 2021 · 3 comments
Assignees

Comments

@maximecb
Copy link
Owner

I want to get to the point where we can connect a Noise node to an AudioOut and hear some noise. Then I'll work on getting knobs to work along with some basic oscillators. Then after that we can work our way up to more complex nodes like sequencers.

Sequencers are going to require data to flow both ways between the UI and the audio thread. The user will be able to click to turn individual notes/steps on and off. However, the timing logic will be controlled from the audio thread, so the sequencer will need to be able to set its current step from the audio thread.

There are also other nodes like Scope which will need to send data back from the audio thread to the UI thread. We might be able to help the performance of that by limiting updates to once every 50ms and keeping the updates fairly granular. There are also dedicated ArrayBuffers IIRC that can be used to send data back without allocating. I'm hoping we won't have to use that because it would add complexity, but we'll just have to see how everything performs once this is more advanced 🤔

@maximecb maximecb self-assigned this Jun 24, 2021
@maximecb
Copy link
Owner Author

Alright, this is working, we are producing audio! :D

I commented out the nodes we don't support yet so they don't show up in the UI. So far we have knobs, const, sawtooth, sine wave, audioout and add/mul/div/sub.

Next I will work on getting delay nodes working, because they gave some special tricky bits. Namely delays make it possible to create loops in the audio graph, so they need to be broken up into two nodes.

After that, I will probably look at MonoSeq because it's one of the most useful nodes if you want to create any kind of melody. It also has tricky bits because the output signals and the timing of it are entirely controlled by the audio thread, but the UI thread controls which pattern is playing and which notes, and these two complex components have to remain in sync.

@maximecb
Copy link
Owner Author

maximecb commented Jul 2, 2021

I got the node parameters dialog working at a basic level so we can set knob min/max values and node names. We probably need a better solution for validating the inputs of the form eventually, but it works. Delay nodes are working too.

I will start to look at MonoSeq now. I think it's the most complex node but also the most useful.

@maximecb
Copy link
Owner Author

The MonoSeq, in its most basic form, is working. It's missing things like being able to transpose patterns during playback and being able to extend and switch patterns, but it plays and highlight the current step. Oh yeah! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant