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

Add more Waveform analysis examples and class documentation #26

Open
kevinstadler opened this issue Mar 18, 2019 · 1 comment

Comments

@kevinstadler
Copy link
Collaborator

@kevinstadler kevinstadler commented Mar 18, 2019

With the addition of the Waveform analysis class (see #21 and #22) it would be nice to add another example or two with the same simply waveform visualisation but of different inputs, for example an "OscillatorWaveform" example that's parallel to the "OscillatorSpectrum' one, and also an "AudioInputWaveform" one parallel to the existing "AudioInput" one.

In order for the new class' documentation to show up on the website, the corresponding .xml files also still need to be added to https://github.com/processing/processing-docs/tree/master/content/api_en/LIB_sound

@kevinstadler kevinstadler pinned this issue Mar 18, 2019
@kevinstadler kevinstadler changed the title Add more Waveform analysis examples and class documentation to processing-docs Add more Waveform analysis examples and class documentation Mar 18, 2019
@mhamilt

This comment has been minimized.

Copy link

@mhamilt mhamilt commented Nov 8, 2019

I'm not to familiar with the architecture of processing-docs, but is this just a case of pulling in a file Waveform.xml with the content

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>

<name>Waveform</name>

<category>Sound</category>

<subcategory>Analyzer</subcategory>

<usage>Application</usage>

<example>
<image></image>
<code><![CDATA[
import processing.sound.*;

SoundFile sample;
Waveform waveform;

int samples = 100;

public void setup()
{
  size(640, 360);
  background(255);

  sample = new SoundFile(this, "beat.aiff");
  sample.loop();

  waveform = new Waveform(this, samples);
  waveform.input(sample);
}

public void draw()
{
  background(0);
  stroke(255);
  strokeWeight(2);
  noFill();


  waveform.analyze();

  beginShape();
  for(int i = 0; i < samples; i++)
  {
    vertex(
      map(i, 0, samples, 0, width),
      map(waveform.data[i], -1, 1, 0, height)
    );
  }
  endShape();
}
]]></code>
</example>

<description><![CDATA[
  This is a Waveform analyzer. It returns the waveform of the of an audio stream the moment it is queried with the analyze() method.
]]></description>

<syntax>
</syntax>

<parameters>

</parameters>

<method>
<mname>input()</mname>
<mdescription>Define the audio input for the analyzer</mdescription>
</method>

<method>
<mname>analyze()</mname>
<mdescription>Gets the content of the current audiobuffer from the input source, writes it
 into this Waveform's `data` array, and returns it.</mdescription>
</method>

<method>
<mname>stop()</mname>
<mdescription>Stop the analyzer</mdescription>
</method>

<method>
<mname>data</mname>
<mdescription>`float[]` of sample amplitudes between `-1` and `1`</mdescription>
</method>

<constructor>
Waveform(<c>parent</c>)
</constructor>

<cparameter>
<clabel>parent</clabel>
<cdescription>PApplet: typically use "this"</cdescription>
</cparameter>

<returns></returns>

<related>
</related>

<availability>1.0</availability>

<type>Object</type>

<partof>Library</partof>

</root>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.