You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: todo.md
-64Lines changed: 0 additions & 64 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,70 +72,6 @@ AFTER HERE, COPIED FROM WIKI PAGE ON 2023-02-18
72
72
73
73
### This is a list of things that we hope to accomplish with p5.sound. If you want to work on one of these, or discuss an idea, feel free to make a GitHub issue. Got something to add to the list? We'd love to hear it!
74
74
75
-
- Incorporate the new [Stereo Panner Node](http://webaudio.github.io/web-audio-api/#the-stereopannernode-interface), with a fallback to the existing panner for browsers that don't yet support StereoPanner.
76
-
77
-
* p5.Amplitude normalize method should be dynamic. It can accept a parameter that determins how fast it decays.
78
-
79
-
- Figure out a way to keep track of connections between objects. From there, .disconnect() can accept a specific object rather than disconnecting all output.
80
-
81
-
* Make sure all methods that should be modular can accept a Number, AudioParam, p5.Env, p5.Oscillator or p5.Signal as input.
82
-
83
-
- Log a message to the console if a user calls FFT methods like getEnergy without first calling .analyze() in either the draw loop, or in the method in which they call getEnergy. Maybe log the time that .analyze was last called, and compare it to the current time, and if it is a big gap, then log the message?
84
-
85
-
* SoundFile.playMode('untilDone') would play a sound if not already playing, but if it is already playing, it would not play again until it is done. Feel free to re-open this [Github Issue](https://github.com/therewasaguy/p5.sound/issues/5) if you want to work on this.
86
-
87
-
- Improve p5.Pulse (PWM)
88
-
89
-
* What additional features/analysis would be useful for visualization / analysis? Look into handling these with an offline audio context, and/or scripts that could analyze a file and then save the result to JSON.
- Beat Detect -- [here's an example](http://tech.beatport.com/2014/web-audio/beat-detection-using-web-audio/) handled by an offline audio context
92
-
- Pitch detect -- [here's an example](https://webaudiodemos.appspot.com/pitchdetect/index.html).
93
-
94
-
- Enhance the examples from [p5 music viz workshop repo](https://github.com/therewasaguy/p5-music-viz) and make these more accessible, perhaps as a section of p5js.org. Some useful examples to add:
95
-
- Creating and working w/ lyric files (LRC) or other timestamped data
96
-
- Synthesizing musical patterns (i.e. with p5.Part) and mapping these to visuals
97
-
- Using the p5.dom library to add a drag-and-drop area for mp3s (examples currently use custom dragfile.js)
98
-
- Loading music to p5.SoundFile from external API’s
99
-
100
-
* Build a prototype for a p5.Synth.
101
-
- Pubilsh a spec for how synths should behave that enables people to add/share their own instruments.
102
-
- Figure out how to handle voice allocation.
103
-
- Including some nice sounding [custom oscillator periodicwaves](http://webaudio.github.io/web-audio-api/#the-periodicwave-interface)
104
-
105
-
- Build out current effects and develop new ones.
106
-
- Publish a spec so that people can easily share/add custom effects
107
-
- How best to apply an effect like p5.Reverb to all sound in the sketch? Perhaps p5.soundOut gets a wet/dry effects bus.
108
-
109
-
* Mixer and Wet/Dry
110
-
111
-
- Prepare to implement the [AudioWorker](http://webaudio.github.io/web-audio-api/#the-audioworker), because ScriptProcessor will soon be depricated. We'll likely need a fallback during this transition.
112
-
113
-
* Write tests and benchmark performance.
114
-
115
-
- Find and optimize areas of slow performance.
116
-
117
-
* Custom callbacks for error in getUserMedia when it is not available (i.e. in Safari)
- Make sure there are no looping sounds in the reference examples.
122
-
- Lower amplitude on all examples
123
-
- Improve documentation and examples when you see anything that is unclear.
124
-
125
-
- Update p5.FFT API to reflect [changes in the Processing Sound FFT API](https://github.com/processing/processing-docs/issues/221)
126
-
127
-
- Add option to p5.FFT that returns data in decibels (from Float32Array)
128
-
129
-
- p5.Env should be able to connect to multiple
130
-
- p5.Env takes no action on triggerRelease unless currently playing
131
-
132
-
- Add a logarithmic scaling option for p5.FFT
133
-
- p5.SoundFile.getPeaks should be able to return stereo peaks. Like [this](https://github.com/olosmusic/olos-soundfile/blob/master/olos-soundfile.html#L379)
134
-
- Add the ability to decode audio buffer data from a FileReader and add it to a p5.SoundFile buffer, like [this](https://github.com/olosmusic/olos-soundfile/blob/master/olos-soundfile.html#L227)
135
-
- Add ability to map a soundfile playback rate to a pitch ratio, like [this](https://github.com/ericrosenbaum/MK-1/blob/gh-pages/sketch.js#L488)
136
-
- when a soundFile is reversed, reverse currentTime as well for accurate playback position
137
-
- add an 'onended' function to SoundFile.bufferSourceNode that toggles \_playing to false when done playing
138
-
139
75
# Contribute
140
76
141
77
_If you have contributions, feedback, bug reports, or ideas to share, get involved! [Join the discussion on github](https://github.com/processing/p5.js-sound/issues) to let the community know what you plan to work on (and to make sure we're not already working on it). There is plenty to do...check out the [to do list](https://github.com/processing/p5.js-sound/blob/main/todo.md)._
0 commit comments