Skip to content

Commit

Permalink
fix inconsistant Pure Data spelling
Browse files Browse the repository at this point in the history
  • Loading branch information
tremblap committed Jul 14, 2024
1 parent d5f0b7c commit 128d9f3
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 19 deletions.
4 changes: 2 additions & 2 deletions src/routes/(content)/installation/+page.svx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ layout: contentindex
<img src="/img/sc-logo.svg" alt="SuperCollider Logo" />
</a>
<a href="/installation/pd">
<h2>PureData</h2>
<img src="/img/pd-logo.png" alt="PureData Logo" />
<h2>Pure Data</h2>
<img src="/img/pd-logo.png" alt="Pure Data Logo" />
</a>
</div>
</div>
Expand Down
24 changes: 12 additions & 12 deletions src/routes/(content)/learn/batch-processing/+page.svx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ When working with machine learning and machine listening, we often need to proce

## Batch Processing Code Examples

This section will demonstrate with code examples a number of ways in which batch processing can be implemented in Max, SuperCollider and PureData with the FluCoMa toolkit and show how our interfaces can interlock with the existing ones in your creative coding environment (CCE) of choice. The explanation of particular objects and processes will be _in_ the patches and scripts themselves.
This section will demonstrate with code examples a number of ways in which batch processing can be implemented in Max, SuperCollider and Pure Data with the FluCoMa toolkit and show how our interfaces can interlock with the existing ones in your creative coding environment (CCE) of choice. The explanation of particular objects and processes will be _in_ the patches and scripts themselves.

### Analysis of Segments

Expand All @@ -44,7 +44,7 @@ This section will demonstrate with code examples a number of ways in which batch
</TabPanel>

<TabPanel> <!-- Pure Data -->
<a href='/examples/batch/batch-slicing.pd' download>Download PureData Patch</a>
<a href='/examples/batch/batch-slicing.pd' download>Download Pure Data Patch</a>
</TabPanel>

<TabPanel> <!-- SC -->
Expand All @@ -69,7 +69,7 @@ The step-by-step workflow is as follows:
<Tabs>
<TabList>
<Tab>Max</Tab>
<Tab>PureData</Tab>
<Tab>Pure Data</Tab>
<Tab>SuperCollider</Tab>
<Tab>Command Line</Tab>
</TabList>
Expand All @@ -78,9 +78,9 @@ The step-by-step workflow is as follows:
</TabPanel>

<TabPanel> <!-- Pure Data -->
<a href='/examples/batch/batch-decomposition.pd' download>Download PureData Patch</a>
<a href='/examples/batch/batch-decomposition.pd' download>Download Pure Data Patch</a>
<Admonition type='danger'>
<p>This requires PureData version 0.52-1 or greater because it uses the <code>file</code> object.</p>
<p>This requires Pure Data version 0.52-1 or greater because it uses the <code>file</code> object.</p>
</Admonition>
</TabPanel>

Expand Down Expand Up @@ -125,7 +125,7 @@ The step-by-step workflow is as follows:
<Tabs>
<TabList>
<Tab>Max</Tab>
<Tab>PureData</Tab>
<Tab>Pure Data</Tab>
<Tab>SuperCollider</Tab>
</TabList>
<TabPanel> <!-- Max -->
Expand All @@ -137,10 +137,10 @@ The step-by-step workflow is as follows:

<TabPanel> <!-- Pure Data -->
<div class='links'>
<a href='/examples/batch/batch-slicing-threads.pd' download>Download Non-blocking Segment Analysis PureData Patch </a>
<a href='/examples/batch/batch-decomposition-threads.pd' download>Download Non-blocking Decomposition PureData Patch</a>
<a href='/examples/batch/batch-slicing-threads.pd' download>Download Non-blocking Segment Analysis Pure Data Patch </a>
<a href='/examples/batch/batch-decomposition-threads.pd' download>Download Non-blocking Decomposition Pure Data Patch</a>
<Admonition type='danger'>
<p>The Non-blocking decomposition patch requires PureData version 0.52-1 or greater because it uses the <code>file</code> object.</p>
<p>The Non-blocking decomposition patch requires Pure Data version 0.52-1 or greater because it uses the <code>file</code> object.</p>
</Admonition>
</div>
</TabPanel>
Expand All @@ -153,14 +153,14 @@ The step-by-step workflow is as follows:
</TabPanel>
</Tabs>

In the two examples above you may have noticed that whenever these intensive batch processes are started it has the potential to _freeze_ or _hang_ Max and PureData. SuperCollider doesn't suffer the exact same issue because the language will continue to function even while the server is processing. However, it is easier to get into trouble in SuperCollider by launching lots of threads and potentially jamming up the server. To work around these limitations, FluCoMa objects can operate in their own threads that can run in parallel to other processes. This is sometimes referred to as _asynchronous_ or _non-blocking_ programming.
In the two examples above you may have noticed that whenever these intensive batch processes are started it has the potential to _freeze_ or _hang_ Max and Pure Data. SuperCollider doesn't suffer the exact same issue because the language will continue to function even while the server is processing. However, it is easier to get into trouble in SuperCollider by launching lots of threads and potentially jamming up the server. To work around these limitations, FluCoMa objects can operate in their own threads that can run in parallel to other processes. This is sometimes referred to as _asynchronous_ or _non-blocking_ programming.

The benefit of making one's code asynchronous is that processes can be triggered and won't block or be blocked by something else. This is a massive boon in a number of scenarios, albeit at the introduction of complexity in how we might expect processes to start, finish and interact with each other. In any CCE, creating threads isn't a simple gateway to faster batch processing: once you add too many, then the scheduling overhead starts to kill performance. This is particularly prevalent when the situation is characterised by many small jobs. In situations like these it can be more expensive to spawn a new thread to do the processing, rather than just getting on with the processing synchronously.

The examples above illustrate how using `process()` and `wait` in SuperCollider and `@blocking 0` and `-blocking 0` in PureData can allow us to trigger processes and _await_ the results of those processes.
The examples above illustrate how using `process()` and `wait` in SuperCollider and `@blocking 0` and `-blocking 0` in Pure Data can allow us to trigger processes and _await_ the results of those processes.

## Discussion
Without even addressing FluCoMa objects directly, it is relevant to remind ourselves of what forms batch processing already exists in Max, PureData and SuperCollider. Let's first take a look at the humble Max list and how it is useful. We'll start by making a small patch that adds two numbers together.
Without even addressing FluCoMa objects directly, it is relevant to remind ourselves of what forms batch processing already exists in Max, Pure Data and SuperCollider. Let's first take a look at the humble Max list and how it is useful. We'll start by making a small patch that adds two numbers together.

<Image
src='/examples/batch/add.png'
Expand Down
4 changes: 2 additions & 2 deletions src/routes/(content)/learn/refining-pitch-analysis/+page.svx
Original file line number Diff line number Diff line change
Expand Up @@ -120,11 +120,11 @@ The way that data evolves over time is not usually representative of how we list

<Admonition type=pointer>
<p>
You can download a patch or script that shows how to realise this entire process and compare it for yourself in Max, SuperCollider and PureData.
You can download a patch or script that shows how to realise this entire process and compare it for yourself in Max, SuperCollider and Pure Data.
</p>
<p class='downloads'>
<a href='/learn/refining-pitch-analysis/patch.maxpat' download='refining pitch analysis.maxpat'>Max</a>
<!-- <a href='/learn/refining-pitch-analysis/patch.pd' download='refining pitch analysis.pd'>PureData</a> -->
<!-- <a href='/learn/refining-pitch-analysis/patch.pd' download='refining pitch analysis.pd'>Pure Data</a> -->
<a href='/learn/refining-pitch-analysis/script.scd' download='refining pitch analysis.scd'>SuperCollider</a>
</p>
</Admonition>
Expand Down
6 changes: 3 additions & 3 deletions src/routes/(content)/learn/smoothing-data/+page.svx
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ Why is this useful? Well, smoothing can often provide a straightforward improvem
<MFCCSmooth />

<Admonition type=pointer>
<p> You can download patches and scripts which perform moving average smoothing on descriptor data using <a href='/reference/stats'>Stats</a> in Max, SuperCollider and PureData. </p>
<p> You can download patches and scripts which perform moving average smoothing on descriptor data using <a href='/reference/stats'>Stats</a> in Max, SuperCollider and Pure Data. </p>
<p class='downloads'>
<a href='/learn/smoothing-data/mfcc-smoothing.maxpat' download='smoothing.maxpat'>Max</a>
<a href='/learn/smoothing-data/mfcc-smoothing.pd' download='smoothing.pd'>PureData</a>
<a href='/learn/smoothing-data/mfcc-smoothing.pd' download='smoothing.pd'>Pure Data</a>
<a href='/learn/smoothing-data/mfcc-smoothing.scd' download='smoothing.scd'>SuperCollider</a>
</p>
</Admonition>
Expand All @@ -50,7 +50,7 @@ A powerful way of analysing sounds is to combine different time windows of analy

<!-- <Admonition type=pointer>
<p>
Download patches and scripts which perform multiple time scale analysis using <a href='/reference/stats'>Stats</a> in Max, SuperCollider and PureData.
Download patches and scripts which perform multiple time scale analysis using <a href='/reference/stats'>Stats</a> in Max, SuperCollider and Pure Data.

</p>
</Admonition> -->
Expand Down

0 comments on commit 128d9f3

Please sign in to comment.