Commit 030b9554 authored by RainRat's avatar RainRat Committed by David Reid

fix typos

parent c6d8b591
...@@ -183,7 +183,7 @@ v0.11.7 - 2022-02-06 ...@@ -183,7 +183,7 @@ v0.11.7 - 2022-02-06
v0.11.6 - 2022-01-22 v0.11.6 - 2022-01-22
==================== ====================
* WASAPI: Fix a bug where the device is not stopped when an error occurrs when writing to a playback device. * WASAPI: Fix a bug where the device is not stopped when an error occurs when writing to a playback device.
* PulseAudio: Fix a rare crash due to a division by zero. * PulseAudio: Fix a rare crash due to a division by zero.
* The node graph can now be used as a node. This allows node graphs to be connected to other node graphs. * The node graph can now be used as a node. This allows node graphs to be connected to other node graphs.
* Fix a crash with high-pass and band-pass filters. * Fix a crash with high-pass and band-pass filters.
...@@ -477,7 +477,7 @@ v0.10.26 - 2020-11-24 ...@@ -477,7 +477,7 @@ v0.10.26 - 2020-11-24
v0.10.25 - 2020-11-15 v0.10.25 - 2020-11-15
- PulseAudio: Fix a bug where the stop callback isn't fired. - PulseAudio: Fix a bug where the stop callback isn't fired.
- WebAudio: Fix an error that occurs when Emscripten increases the size of it's heap. - WebAudio: Fix an error that occurs when Emscripten increases the size of its heap.
- Custom Backends: Change the onContextInit and onDeviceInit callbacks to take a parameter which is a pointer to the config that was - Custom Backends: Change the onContextInit and onDeviceInit callbacks to take a parameter which is a pointer to the config that was
passed into ma_context_init() and ma_device_init(). This replaces the deviceType parameter of onDeviceInit. passed into ma_context_init() and ma_device_init(). This replaces the deviceType parameter of onDeviceInit.
- Fix compilation warnings on older versions of GCC. - Fix compilation warnings on older versions of GCC.
......
...@@ -21,7 +21,7 @@ significant work without talking to me first. If I don't like it, it won't be me ...@@ -21,7 +21,7 @@ significant work without talking to me first. If I don't like it, it won't be me
[Discord](https://discord.gg/9vpqbjU) and [Twitter](https://twitter.com/mackron). [Discord](https://discord.gg/9vpqbjU) and [Twitter](https://twitter.com/mackron).
Always base your pull request branch on the "dev" branch. The master branch contains the latest release, which Always base your pull request branch on the "dev" branch. The master branch contains the latest release, which
means your pull request may not be including the lastest in-development changes which may result in unnecessary means your pull request may not be including the latest in-development changes which may result in unnecessary
conflicts. conflicts.
I need to review your pull requests before merging. If your pull request is non-trivial, try to break it up into I need to review your pull requests before merging. If your pull request is non-trivial, try to break it up into
...@@ -63,7 +63,7 @@ not contribute to this project. ...@@ -63,7 +63,7 @@ not contribute to this project.
Predictable Questions Predictable Questions
--------------------- ---------------------
### "Would you consider splitting out [some section of code] into it's own file?" ### "Would you consider splitting out [some section of code] into its own file?"
No, the idea is to keep everything in one place. It would be nice in specific cases to split out specific sections No, the idea is to keep everything in one place. It would be nice in specific cases to split out specific sections
of the code, such as the resampler, for example. However, this will completely violate one of the major goals of the of the code, such as the resampler, for example. However, this will completely violate one of the major goals of the
project - to have a complete audio library contained within a single file. project - to have a complete audio library contained within a single file.
......
...@@ -180,7 +180,7 @@ Documentation ...@@ -180,7 +180,7 @@ Documentation
Online documentation can be found here: https://miniaud.io/docs/ Online documentation can be found here: https://miniaud.io/docs/
Documentation can also be found at the top of [miniaudio.h](https://raw.githubusercontent.com/mackron/miniaudio/master/miniaudio.h) Documentation can also be found at the top of [miniaudio.h](https://raw.githubusercontent.com/mackron/miniaudio/master/miniaudio.h)
which is always the most up-to-date and authoritive source of information on how to use miniaudio. All other which is always the most up-to-date and authoritative source of information on how to use miniaudio. All other
documentation is generated from this in-code documentation. documentation is generated from this in-code documentation.
......
...@@ -261,7 +261,7 @@ static ma_result ma_context_get_device_info__sdl(ma_context* pContext, ma_device ...@@ -261,7 +261,7 @@ static ma_result ma_context_get_device_info__sdl(ma_context* pContext, ma_device
of the device's _actual_ ideal format. of the device's _actual_ ideal format.
Note: With Emscripten, it looks like non-zero values need to be specified for desiredSpec. Whatever is specified in Note: With Emscripten, it looks like non-zero values need to be specified for desiredSpec. Whatever is specified in
desiredSpec will be used by SDL since it uses it just does it's own format conversion internally. Therefore, from what desiredSpec will be used by SDL since it uses it just does its own format conversion internally. Therefore, from what
I can tell, there's no real way to know the device's actual format which means I'm just going to fall back to the full I can tell, there's no real way to know the device's actual format which means I'm just going to fall back to the full
range of channels and sample rates on Emscripten builds. range of channels and sample rates on Emscripten builds.
*/ */
......
/* /*
Demonstrates how to enumerate over devices. Demonstrates how to enumerate over devices.
Device enumaration requires a `ma_context` object which is initialized with `ma_context_init()`. Conceptually, the Device enumeration requires a `ma_context` object which is initialized with `ma_context_init()`. Conceptually, the
context sits above a device. You can have many devices to one context. context sits above a device. You can have many devices to one context.
If you use device enumeration, you should explicitly specify the same context you used for enumeration in the call to If you use device enumeration, you should explicitly specify the same context you used for enumeration in the call to
......
...@@ -4,7 +4,7 @@ Demonstrates one way to load multiple files and play them all back at the same t ...@@ -4,7 +4,7 @@ Demonstrates one way to load multiple files and play them all back at the same t
When mixing multiple sounds together, you should not create multiple devices. Instead you should create only a single When mixing multiple sounds together, you should not create multiple devices. Instead you should create only a single
device and then mix your sounds together which you can do by simply summing their samples together. The simplest way to device and then mix your sounds together which you can do by simply summing their samples together. The simplest way to
do this is to use floating point samples and use miniaudio's built-in clipper to handling clipping for you. (Clipping do this is to use floating point samples and use miniaudio's built-in clipper to handling clipping for you. (Clipping
is when sample are clampled to their minimum and maximum range, which for floating point is -1..1.) is when sample are clamped to their minimum and maximum range, which for floating point is -1..1.)
``` ```
Usage: simple_mixing [input file 0] [input file 1] ... [input file n] Usage: simple_mixing [input file 0] [input file 1] ... [input file n]
......
This diff is collapsed.
This diff is collapsed.
/* The channel separtor example also demonstrates how to use the combiner. */ /* The channel separator example also demonstrates how to use the combiner. */
#include "../ma_channel_separator_node/ma_channel_separator_node_example.c" #include "../ma_channel_separator_node/ma_channel_separator_node_example.c"
...@@ -27,7 +27,7 @@ A complete low-level audio solution requires the following: ...@@ -27,7 +27,7 @@ A complete low-level audio solution requires the following:
2) The ability to open and close a connection to a device. 2) The ability to open and close a connection to a device.
3) The ability to start and stop the device. 3) The ability to start and stop the device.
4) The ability to write and read audio data to/from the device. 4) The ability to write and read audio data to/from the device.
5) The ability to query the device for it's data configuration. 5) The ability to query the device for its data configuration.
6) The ability to notify the application when certain events occur, such as the device being 6) The ability to notify the application when certain events occur, such as the device being
stopped, or rerouted. stopped, or rerouted.
...@@ -131,7 +131,7 @@ is an example for how to do this: ...@@ -131,7 +131,7 @@ is an example for how to do this:
free(info); // The pointer returned by osaudio_enumerate() must be freed with free(). free(info); // The pointer returned by osaudio_enumerate() must be freed with free().
The id structure is just a 256 byte array that uniquely identifies the device. Implementations may The id structure is just a 256 byte array that uniquely identifies the device. Implementations may
have different representations for device IDs, and A 256 byte array should accomodates all have different representations for device IDs, and A 256 byte array should accommodates all
device ID representations. Implementations are required to zero-fill unused bytes. The osaudio_id_t device ID representations. Implementations are required to zero-fill unused bytes. The osaudio_id_t
structure can be copied which makes it suitable for serialization and deserialization in situations structure can be copied which makes it suitable for serialization and deserialization in situations
where you may want to save the device ID to permanent storage so it can be stored in a config file. where you may want to save the device ID to permanent storage so it can be stored in a config file.
...@@ -161,7 +161,7 @@ achieved by setting the format, channels and rate to 0. Below is an example: ...@@ -161,7 +161,7 @@ achieved by setting the format, channels and rate to 0. Below is an example:
In addition to the code above, you can explicitly call `osaudio_get_info()` to retrieve the format In addition to the code above, you can explicitly call `osaudio_get_info()` to retrieve the format
configuration. If you need to know the native configuration before opening the device, you can use configuration. If you need to know the native configuration before opening the device, you can use
enumeration. The format, channels and rate will be contined in the first item in the configs array. enumeration. The format, channels and rate will be continued in the first item in the configs array.
The examples above all use playback, but the same applies for capture. The only difference is that The examples above all use playback, but the same applies for capture. The only difference is that
the direction is set to OSAUDIO_INPUT instead of OSAUDIO_OUTPUT. the direction is set to OSAUDIO_INPUT instead of OSAUDIO_OUTPUT.
...@@ -268,7 +268,7 @@ typedef int osaudio_result_t; ...@@ -268,7 +268,7 @@ typedef int osaudio_result_t;
#define OSAUDIO_XRUN -102 /* An underrun or overrun occurred. Can be returned by osaudio_read() or osaudio_write(). */ #define OSAUDIO_XRUN -102 /* An underrun or overrun occurred. Can be returned by osaudio_read() or osaudio_write(). */
#define OSAUDIO_DEVICE_STOPPED -103 /* The device is stopped. Can be returned by osaudio_drain(). It is invalid to call osaudio_drain() on a device that is not running because otherwise it'll get stuck. */ #define OSAUDIO_DEVICE_STOPPED -103 /* The device is stopped. Can be returned by osaudio_drain(). It is invalid to call osaudio_drain() on a device that is not running because otherwise it'll get stuck. */
/* Directions. Cannot be combined. Use separate osaudio_t objects for birectional setups. */ /* Directions. Cannot be combined. Use separate osaudio_t objects for bidirectional setups. */
typedef int osaudio_direction_t; typedef int osaudio_direction_t;
#define OSAUDIO_INPUT 1 #define OSAUDIO_INPUT 1
#define OSAUDIO_OUTPUT 2 #define OSAUDIO_OUTPUT 2
...@@ -480,10 +480,10 @@ The code above is equivalent to this: ...@@ -480,10 +480,10 @@ The code above is equivalent to this:
On output the config will be filled with the actual configuration. The implementation will perform On output the config will be filled with the actual configuration. The implementation will perform
any necessary data conversion between the requested data configuration and the device's native any necessary data conversion between the requested data configuration and the device's native
configuration. If it cannot, the function will return a OSAUDIO_FORMAT_NOT_SUPPORTED error. In this configuration. If it cannot, the function will return a OSAUDIO_FORMAT_NOT_SUPPORTED error. In this
case the caller can decide to reinitialize the device to use it's native configuration and do it's case the caller can decide to reinitialize the device to use its native configuration and do its
own data conversion, or abort if it cannot do so. Use the channel map to determine the ordering of own data conversion, or abort if it cannot do so. Use the channel map to determine the ordering of
your channels. Automatic channel map conversion is not performed - that must be done manually by your channels. Automatic channel map conversion is not performed - that must be done manually by
the caller when transfering data to/from the device. the caller when transferring data to/from the device.
Close the device with osaudio_close(). Close the device with osaudio_close().
...@@ -494,7 +494,7 @@ osaudio_result_t osaudio_open(osaudio_t* audio, osaudio_config_t* config); ...@@ -494,7 +494,7 @@ osaudio_result_t osaudio_open(osaudio_t* audio, osaudio_config_t* config);
/* /*
Closes a connection to a device. Closes a connection to a device.
As soon as this function is called, the device should be considered invalid and unsuable. Do not As soon as this function is called, the device should be considered invalid and unusable. Do not
attempt to use the audio object once this function has been called. attempt to use the audio object once this function has been called.
It's invalid to call this while any other function is still running. You can use osaudio_flush() to It's invalid to call this while any other function is still running. You can use osaudio_flush() to
...@@ -593,7 +593,7 @@ There will be one item in the configs array which will contain the device's curr ...@@ -593,7 +593,7 @@ There will be one item in the configs array which will contain the device's curr
the contents of which will match that of the config that was returned by osaudio_open(). the contents of which will match that of the config that was returned by osaudio_open().
Returns NULL on failure. Do not free the returned pointer. It's up to the implementation to manage Returns NULL on failure. Do not free the returned pointer. It's up to the implementation to manage
the meory of this object. the memory of this object.
*/ */
const osaudio_info_t* osaudio_get_info(osaudio_t audio); const osaudio_info_t* osaudio_get_info(osaudio_t audio);
......
...@@ -122,7 +122,7 @@ static osaudio_result_t osaudio_determine_miniaudio_backend(ma_backend* pBackend ...@@ -122,7 +122,7 @@ static osaudio_result_t osaudio_determine_miniaudio_backend(ma_backend* pBackend
/* /*
To do this we initialize a dummy device. We allow the caller to make use of this device as an optimization. This is To do this we initialize a dummy device. We allow the caller to make use of this device as an optimization. This is
only used by osaudio_enumerate_devices() because that can make use of the context from the dummy device rather than only used by osaudio_enumerate_devices() because that can make use of the context from the dummy device rather than
having to create it's own. pDummyDevice can be null. having to create its own. pDummyDevice can be null.
*/ */
if (pDummyDevice == NULL) { if (pDummyDevice == NULL) {
pDummyDevice = &dummyDevice; pDummyDevice = &dummyDevice;
...@@ -135,7 +135,7 @@ static osaudio_result_t osaudio_determine_miniaudio_backend(ma_backend* pBackend ...@@ -135,7 +135,7 @@ static osaudio_result_t osaudio_determine_miniaudio_backend(ma_backend* pBackend
if (result != MA_SUCCESS || pDummyDevice->pContext->backend == ma_backend_null) { if (result != MA_SUCCESS || pDummyDevice->pContext->backend == ma_backend_null) {
/* Failed to open a default playback device. Try capture. */ /* Failed to open a default playback device. Try capture. */
if (result == MA_SUCCESS) { if (result == MA_SUCCESS) {
/* This means we successfully initialize a device, but it's backend is null. It could be that there's no playback devices attached. Try capture. */ /* This means we successfully initialize a device, but its backend is null. It could be that there's no playback devices attached. Try capture. */
ma_device_uninit(pDummyDevice); ma_device_uninit(pDummyDevice);
} }
...@@ -607,7 +607,7 @@ osaudio_result_t osaudio_open(osaudio_t* audio, osaudio_config_t* config) ...@@ -607,7 +607,7 @@ osaudio_result_t osaudio_open(osaudio_t* audio, osaudio_config_t* config)
} }
/* The device object needs to have a it's local info built. We can get the ID and name from miniaudio. */ /* The device object needs to have its local info built. We can get the ID and name from miniaudio. */
result = osaudio_result_from_miniaudio(ma_device_get_info(&(*audio)->device, (*audio)->device.type, &deviceInfo)); result = osaudio_result_from_miniaudio(ma_device_get_info(&(*audio)->device, (*audio)->device.type, &deviceInfo));
if (result == MA_SUCCESS) { if (result == MA_SUCCESS) {
memcpy((*audio)->info.id.data, &deviceInfo.id, sizeof((*audio)->info.id.data)); memcpy((*audio)->info.id.data, &deviceInfo.id, sizeof((*audio)->info.id.data));
...@@ -630,7 +630,7 @@ osaudio_result_t osaudio_open(osaudio_t* audio, osaudio_config_t* config) ...@@ -630,7 +630,7 @@ osaudio_result_t osaudio_open(osaudio_t* audio, osaudio_config_t* config)
return result; return result;
} }
/* Now we need a semaphore to control access to the ring buffer to to block read/write when necessary. */ /* Now we need a semaphore to control access to the ring buffer to block read/write when necessary. */
result = osaudio_result_from_miniaudio(ma_semaphore_init((config->direction == OSAUDIO_OUTPUT) ? periodCount : 0, &(*audio)->bufferSemaphore)); result = osaudio_result_from_miniaudio(ma_semaphore_init((config->direction == OSAUDIO_OUTPUT) ? periodCount : 0, &(*audio)->bufferSemaphore));
if (result != OSAUDIO_SUCCESS) { if (result != OSAUDIO_SUCCESS) {
ma_pcm_rb_uninit(&(*audio)->buffer); ma_pcm_rb_uninit(&(*audio)->buffer);
......
...@@ -5531,7 +5531,7 @@ int stb_vorbis_get_samples_float(stb_vorbis *f, int channels, float **buffer, in ...@@ -5531,7 +5531,7 @@ int stb_vorbis_get_samples_float(stb_vorbis *f, int channels, float **buffer, in
0.97 - builds under c++ (typecasting, don't use 'class' keyword) 0.97 - builds under c++ (typecasting, don't use 'class' keyword)
0.96 - somehow MY 0.95 was right, but the web one was wrong, so here's my 0.95 rereleased as 0.96, fixes a typo in the clamping code 0.96 - somehow MY 0.95 was right, but the web one was wrong, so here's my 0.95 rereleased as 0.96, fixes a typo in the clamping code
0.95 - clamping code for 16-bit functions 0.95 - clamping code for 16-bit functions
0.94 - not publically released 0.94 - not publicly released
0.93 - fixed all-zero-floor case (was decoding garbage) 0.93 - fixed all-zero-floor case (was decoding garbage)
0.92 - fixed a memory leak 0.92 - fixed a memory leak
0.91 - conditional compiles to omit parts of the API and the infrastructure to support them: STB_VORBIS_NO_PULLDATA_API, STB_VORBIS_NO_PUSHDATA_API, STB_VORBIS_NO_STDIO, STB_VORBIS_NO_INTEGER_CONVERSION 0.91 - conditional compiles to omit parts of the API and the infrastructure to support them: STB_VORBIS_NO_PULLDATA_API, STB_VORBIS_NO_PUSHDATA_API, STB_VORBIS_NO_STDIO, STB_VORBIS_NO_INTEGER_CONVERSION
......
This diff is collapsed.
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
The resource manager is used for simplifying the hassle of dealing with the loading and management The resource manager is used for simplifying the hassle of dealing with the loading and management
of your audio resources. It will reference count files so they're only loaded once and handles of your audio resources. It will reference count files so they're only loaded once and handles
streaming of large audio sources to save on memory. It can even load files asynchronously and streaming of large audio sources to save on memory. It can even load files asynchronously and
exposes it's job system so you can handle resource management jobs from your existing job exposes its job system so you can handle resource management jobs from your existing job
infrastructure. infrastructure.
</div> </div>
</td> </td>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment