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

Feature Wishlist on 1.0 Release #4

Open
58 of 75 tasks
MineCake147E opened this issue Jul 4, 2019 · 0 comments
Open
58 of 75 tasks

Feature Wishlist on 1.0 Release #4

MineCake147E opened this issue Jul 4, 2019 · 0 comments
Assignees
Labels
Status: Working ▶️ Work in progress

Comments

@MineCake147E
Copy link
Owner

MineCake147E commented Jul 4, 2019

This issue tracks ideas for new features and improvements for the first release of Shamisen.

New features

Architecture

  • Add an interface for Recording => 732f381
  • Add an interface for Audio Device and Audio Device Enumeration => 010435a

Primitives

  • Improve implementation of Shamisen.OffsetSByte => 4464b73
    • Implement IComparable<OffsetSByte> => 4464b73
    • Implement IEquatable<OffsetSByte> => 4464b73
    • Add MaxValue and MinValue static readonly field => 4464b73
    • Implement Parse, TryParse, and ToString => 49693e4
  • Add some types for manipulating Fixed-Point number arithmetics
    • Shamisen.Fixed8O (based on Shamisen.OffsetSByte)
    • Shamisen.Fixed16 => 49693e4
    • Shamisen.Fixed32

Codec

  • Add an interface for representing Codecs => 64252eb
  • Implement a fully-managed WAVE decoder. => 3227c35
    • RF64 Support
    • Sample formats
      • Linear PCM
        • OffsetSByte
        • short(Int16)
        • Int24
        • int(Int32)
        • long(Int64)
      • IEEE 754 Float
        • float(Single)
        • double(Double)
      • Other formats
        • A-law
        • μ-Law
  • Implement a fully-managed WAVE encoder. => fc16613
    • RF64 Support
    • Sample formats
      • Linear PCM
        • OffsetSByte
        • Int16
        • Int24
        • Int32
        • Int64
      • IEEE 754 Float
        • float(Single)
        • double(Double)

Output

  • Implement outputs for managed back-ends below:
    • AudioTrack(Xamarin.Android) => 9593125
    • CSCore(Windows) Deprecated
    • NAudio(Windows)
    • OpenTK(XPlat)
    • MonoGame DynamicSoundEffectInstance(XPlat) => b72d79e
  • Implement outputs for native back-ends below:(low priority)

Signal Processing

  • Implement a multi-threaded audio buffer. => a92ab23
  • Implement a simple Mixer.
  • Implement a simple Attenuator(Amplifier). => 8432fe0
  • Implement AdvancedMixer => Mixing Reform #11

Utilities

  • Add FastAdd that calculates an element-wise summation for Span<float>. => 63014dd
  • Add FastScalarMultiply for Span<float>. => 3165784
  • Add FastMix that adds a scaled samples to buffer, for Span<float>. => adf6e4a

Tests

  • Tests for several existing features
    • Attenuator => 4be8ecd
    • BiQuadFilter => 4be8ecd
    • SimpleMixer after overhaul

Miscellaneous

  • Documentation
  • Logo => 51e7620
  • NuGet Package

And more...

Modifications of existing features

Overhaul

Modification

  • SplineResampler
    • Resampling Quality
      • Make it working correctly again => a9f33ec
    • Performance improvement
      • Convert increment and multiply and modulo into add and modulo => 2ed171b
  • BiQuadFilter
    • Optimization
      • Localization for Format.Channels, Parameter.B, and Parameter.A => 30c3bf7
      • Loop unrolling depending on Channels
      • Improvement of Cache-Friendliness around internalStates
@MineCake147E MineCake147E added the Status: Working ▶️ Work in progress label Jul 4, 2019
@MineCake147E MineCake147E self-assigned this Jul 4, 2019
@MineCake147E MineCake147E pinned this issue Jul 4, 2019
@MineCake147E MineCake147E unpinned this issue Feb 24, 2021
@MineCake147E MineCake147E pinned this issue Feb 24, 2021
@MineCake147E MineCake147E changed the title Planned Features on 1.0 Release Feature Wishlist on 1.0 Release Jul 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Working ▶️ Work in progress
Projects
None yet
Development

No branches or pull requests

1 participant