Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Fork of http://nvorbis.codeplex.com/ with some performance improvements and a streaming sample for OpenTK

branch: master

Reverted to commit 3f297aa, which means the "latest-upstream" branch …

…now points to the CodePlex version and master is the one used in FEZ v1.09.

Merge branch 'upstream/master'

Conflicts:
	NVorbis/ACache.cs
	NVorbis/NVorbis.csproj (reverted from commit 3f297aa)
latest commit 66e42f1d75
Renaud Bédard authored September 07, 2013
Octocat-spinner-32 .nuget * Switch to Nuget for dependencies October 10, 2012
Octocat-spinner-32 NAudioSupport Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 NVorbis Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 OpenTKSupport Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 TestApp Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 TestFiles Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 .gitignore * Reorganize a bit October 10, 2012
Octocat-spinner-32 COPYING Initial commit, exact clone of NVorbis v0.4 from CodePlex September 05, 2012
Octocat-spinner-32 Makefile * Add makefiles for mono October 11, 2012
Octocat-spinner-32 NVorbis.NAudioSupport.nuspec Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 NVorbis.OpenTKSupport.nuspec Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 NVorbis.nuspec Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 NVorbis.sln * Add Nuget package for OpenTKSupport October 10, 2012
Octocat-spinner-32 README Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 TODO Reverted to commit 3f297aa, which means the "latest-upstream" branch … September 07, 2013
Octocat-spinner-32 publish.cmd * More cleanup February 07, 2013
README
NVorbis
-------

NVorbis is a .Net library for decoding Xiph.org Vorbis files.  It is purely
managed code, and should run correctly in partial-trust environments.

This implementation is based on the Vorbis specification found on xiph.org.
The MDCT and Huffman codeword generator were borrowed from public domain
implementations at http://nothings.org/stb_vorbis/.

Currently the only container supported is Xiph.org Ogg.  Matroska and RTP
are planned.

To use:

- Create an instance of NVorbis.VorbisReader (pass the Ogg Vorbis filename in)
- Use these properties to gather data about the logical stream:
    - Channels
    - SampleRate
    - TotalTime		- A TimeSpan indicating the total length of the audio data
    - DecodedTime	- A TimeSpan indicating the last returned sample's timestamp
    - NominalBitrate, UpperBitrate, and LowerBitrate
        - These are the encoder's reported bitrates
    - Vendor	- The encoder's vendor string
    - Comments	- An array of comments in the file (usually tags)
- Call "int ReadSamples(float[], int, int)" to retrieve the next batch of
  samples.  It will return 0 when the logical Vorbis stream is done.


- For NAudio support:
    - Reference NVorbis.NAudioSupport.dll
    - Create an instance of NVorbis.NAudioSupport.VorbisWaveReader
    - VorbisWaveReader implements NAudio.Wave.WaveStream.

History
-------
0.1	- 08/03/2012
    * Initial Release
0.2 - 08/07/2012
    * Swapped out LGPL code for public domain implementations
    * Relicensed under Ms-PL
    * Added NAudio support project
    * Added test files & app
    * Performance improvements
0.3 - 08/08/2012
    * Fixed Page / Packet decode (packets overlapping 2 pages)
    * Fixed "no energy" packet handling
    * Fixed packet reader not merging when unsolicited packets are added
    * Added .gitignore
    * Added initial multi-stream support
    * Added statistics (see VorbisReader.Stats)
0.4 - 08/14/2012
    * Refactoring to clean up code and make room for later improvements
    * Changed lapping algorithm to be simpler
    * Switched to higher-performance clipping algorithm
    * Some cleanup
0.4.1 - 09/11/2012
    * Fixed a couple Ogg container bugs
    * Optimized memory allocations for better performance / memory usage
0.5 - 09/20/2012
    * Added seeking support
    * Changed OggPacketReader to use a doubly-linked list for the packet queue / history
    * Changed OggPacketReader.GetTotalPageCount() to count pages directly instead of making .AddPacket(...) keep a list
    * Fixed a few bugs (mostly race conditions in multi-threaded playback scenarios)
    * Added multi-stream support to VorbisWaveReader
    * Added several info properties to VorbisWaveReader
0.5.5 - 11/15/2012
    * Added OpenTK support
    * Added makefiles for Mono
    * Added constructor to NAudioSupport for already opened Stream instances
    * Made Ogg container logic thread-safe
    * Cleanup & Optimization
0.6.0 - 
    * Rework ACache to be truly thread-safe
Something went wrong with that request. Please try again.