Skip to content

Commit f5ee773

Browse files
pasted contents of wiki todo list
1 parent 57dfcde commit f5ee773

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

todo.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,90 @@ p5.sound to do list
8383
- 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)
8484
- when a soundFile is reversed, reverse currentTime as well for accurate playback position
8585
- add an 'onended' function to SoundFile.bufferSourceNode that toggles _playing to false when done playing
86+
87+
AFTER HERE, COPIED FROM WIKI PAGE ON 2023-02-18
88+
89+
# p5.js-sound to do list
90+
91+
### 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!
92+
93+
94+
- 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.
95+
96+
97+
- p5.Amplitude normalize method should be dynamic. It can accept a parameter that determins how fast it decays.
98+
99+
100+
- Figure out a way to keep track of connections between objects. From there, .disconnect() can accept a specific object rather than disconnecting all output.
101+
102+
103+
- Make sure all methods that should be modular can accept a Number, AudioParam, p5.Env, p5.Oscillator or p5.Signal as input.
104+
105+
106+
- 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?
107+
108+
109+
- 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.
110+
111+
112+
- Improve p5.Pulse (PWM)
113+
114+
115+
- 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.
116+
* Peak Detect https://github.com/therewasaguy/p5.sound/issues/12
117+
* Beat Detect -- [here's an example](http://tech.beatport.com/2014/web-audio/beat-detection-using-web-audio/) handled by an offline audio context
118+
* Pitch detect -- [here's an example](https://webaudiodemos.appspot.com/pitchdetect/index.html).
119+
120+
121+
- 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:
122+
* Creating and working w/ lyric files (LRC) or other timestamped data
123+
* Synthesizing musical patterns (i.e. with p5.Part) and mapping these to visuals
124+
* Using the p5.dom library to add a drag-and-drop area for mp3s (examples currently use custom dragfile.js)
125+
* Loading music to p5.SoundFile from external API’s
126+
127+
128+
- Build a prototype for a p5.Synth.
129+
* Pubilsh a spec for how synths should behave that enables people to add/share their own instruments.
130+
* Figure out how to handle voice allocation.
131+
* Including some nice sounding [custom oscillator periodicwaves](http://webaudio.github.io/web-audio-api/#the-periodicwave-interface)
132+
133+
134+
- Build out current effects and develop new ones.
135+
* Publish a spec so that people can easily share/add custom effects
136+
* How best to apply an effect like p5.Reverb to all sound in the sketch? Perhaps p5.soundOut gets a wet/dry effects bus.
137+
138+
139+
- Mixer and Wet/Dry
140+
141+
142+
- 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.
143+
144+
145+
- Write tests and benchmark performance.
146+
147+
148+
- Find and optimize areas of slow performance.
149+
150+
151+
- Custom callbacks for error in getUserMedia when it is not available (i.e. in Safari)
152+
153+
- Documentation:
154+
* Fix [pause page](http://p5js.org/reference/#/p5.SoundFile/pause)
155+
* Make sure there are no looping sounds in the reference examples.
156+
* Lower amplitude on all examples
157+
* Improve documentation and examples when you see anything that is unclear.
158+
159+
160+
- Update p5.FFT API to reflect [changes in the Processing Sound FFT API](https://github.com/processing/processing-docs/issues/221)
161+
162+
- Add option to p5.FFT that returns data in decibels (from Float32Array)
163+
164+
- p5.Env should be able to connect to multiple
165+
- p5.Env takes no action on triggerRelease unless currently playing
166+
167+
- Add a logarithmic scaling option for p5.FFT
168+
- p5.SoundFile.getPeaks should be able to return stereo peaks. Like [this](https://github.com/olosmusic/olos-soundfile/blob/master/olos-soundfile.html#L379)
169+
- 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)
170+
- 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)
171+
- when a soundFile is reversed, reverse currentTime as well for accurate playback position
172+
- add an 'onended' function to SoundFile.bufferSourceNode that toggles _playing to false when done playing

0 commit comments

Comments
 (0)