modusa 0.3.75__tar.gz → 0.3.76__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. {modusa-0.3.75 → modusa-0.3.76}/PKG-INFO +1 -1
  2. {modusa-0.3.75 → modusa-0.3.76}/pyproject.toml +1 -1
  3. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/__init__.py +1 -1
  4. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/__init__.py +1 -0
  5. modusa-0.3.76/src/modusa/tools/audio_saver.py +30 -0
  6. {modusa-0.3.75 → modusa-0.3.76}/LICENSE.md +0 -0
  7. {modusa-0.3.75 → modusa-0.3.76}/README.md +0 -0
  8. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/.DS_Store +0 -0
  9. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/config.py +0 -0
  10. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/decorators.py +0 -0
  11. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/generate_docs_source.py +0 -0
  12. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/generate_template.py +0 -0
  13. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/list_authors.py +0 -0
  14. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/list_plugins.py +0 -0
  15. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/main.py +0 -0
  16. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/templates/generator.py +0 -0
  17. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/templates/io.py +0 -0
  18. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/templates/model.py +0 -0
  19. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/templates/plugin.py +0 -0
  20. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/templates/test.py +0 -0
  21. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/devtools/templates/tool.py +0 -0
  22. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/fonts/NotoSansDevanagari-Regular.ttf +0 -0
  23. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/__init__.py +0 -0
  24. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/audio.py +0 -0
  25. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/audio_waveforms.py +0 -0
  26. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/base.py +0 -0
  27. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/ftds.py +0 -0
  28. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/s1d.py +0 -0
  29. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/s2d.py +0 -0
  30. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/s_ax.py +0 -0
  31. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/t_ax.py +0 -0
  32. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/generators/tds.py +0 -0
  33. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/__init__.py +0 -0
  34. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/__pycache__/signal1D.cpython-312.pyc.4443461152 +0 -0
  35. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/audio.py +0 -0
  36. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/base.py +0 -0
  37. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/data.py +0 -0
  38. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/ftds.py +0 -0
  39. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/s1d.py +0 -0
  40. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/s2d.py +0 -0
  41. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/s_ax.py +0 -0
  42. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/t_ax.py +0 -0
  43. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/models/tds.py +0 -0
  44. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/plugins/__init__.py +0 -0
  45. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/plugins/base.py +0 -0
  46. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/_plotter_old.py +0 -0
  47. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/ann_loader.py +0 -0
  48. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/audio_converter.py +0 -0
  49. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/audio_loader.py +0 -0
  50. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/audio_player.py +0 -0
  51. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/audio_recorder.py +0 -0
  52. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/base.py +0 -0
  53. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/math_ops.py +0 -0
  54. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/plotter.py +0 -0
  55. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/tools/youtube_downloader.py +0 -0
  56. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/utils/.DS_Store +0 -0
  57. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/utils/__init__.py +0 -0
  58. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/utils/config.py +0 -0
  59. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/utils/excp.py +0 -0
  60. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/utils/logger.py +0 -0
  61. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/utils/np_func_cat.py +0 -0
  62. {modusa-0.3.75 → modusa-0.3.76}/src/modusa/utils/plot.py +0 -0
  63. {modusa-0.3.75 → modusa-0.3.76}/tests/__init__.py +0 -0
  64. {modusa-0.3.75 → modusa-0.3.76}/tests/data/song1.mp3 +0 -0
  65. {modusa-0.3.75 → modusa-0.3.76}/tests/data/song1.wav +0 -0
  66. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/audio_waveform.py +0 -0
  67. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_audio.py +0 -0
  68. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_ftds.py +0 -0
  69. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_s1d.py +0 -0
  70. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_s2d.py +0 -0
  71. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_s_ax.py +0 -0
  72. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_signal.py +0 -0
  73. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_signal_generator.py +0 -0
  74. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_t_ax.py +0 -0
  75. {modusa-0.3.75 → modusa-0.3.76}/tests/test_generators/test_tds.py +0 -0
  76. {modusa-0.3.75 → modusa-0.3.76}/tests/test_io/audio_player.py +0 -0
  77. {modusa-0.3.75 → modusa-0.3.76}/tests/test_io/plotter.py +0 -0
  78. {modusa-0.3.75 → modusa-0.3.76}/tests/test_models/test_data.py +0 -0
  79. {modusa-0.3.75 → modusa-0.3.76}/tests/test_models/test_t_ax.py +0 -0
  80. {modusa-0.3.75 → modusa-0.3.76}/tests/test_plugins/youtube_audio_loader.py +0 -0
  81. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/frequency_domain_signal.py +0 -0
  82. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/spectrogram.py +0 -0
  83. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/test_axis.py +0 -0
  84. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/test_feature_time_domain_signal.py +0 -0
  85. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/test_frequency_time_domain_signal.py +0 -0
  86. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/test_signal1D.py +0 -0
  87. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/test_signal2D.py +0 -0
  88. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/test_time_domain_signal.py +0 -0
  89. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/test_u_ax.py +0 -0
  90. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/test_window_signal.py +0 -0
  91. {modusa-0.3.75 → modusa-0.3.76}/tests/test_signals/time_domain_signal.py +0 -0
  92. {modusa-0.3.75 → modusa-0.3.76}/tests/test_tools/test_audio_converter.py +0 -0
  93. {modusa-0.3.75 → modusa-0.3.76}/tests/test_tools/test_fourier_tranform.py +0 -0
  94. {modusa-0.3.75 → modusa-0.3.76}/tests/test_tools/test_math_ops.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modusa
3
- Version: 0.3.75
3
+ Version: 0.3.76
4
4
  Summary: A modular signal analysis python library.
5
5
  Author-Email: Ankit Anand <ankit0.anand0@gmail.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "modusa"
3
- version = "0.3.75"
3
+ version = "0.3.76"
4
4
  description = "A modular signal analysis python library."
5
5
  authors = [
6
6
  { name = "Ankit Anand", email = "ankit0.anand0@gmail.com" },
@@ -4,6 +4,6 @@ from modusa.utils import excp, config
4
4
  from modusa.tools import plot_dist, fig
5
5
  #=====
6
6
 
7
- from modusa.tools import play, convert, record
7
+ from modusa.tools import play, convert, record, save
8
8
  from modusa.tools import download
9
9
  from modusa.tools import load, load_ann
@@ -4,6 +4,7 @@ from .audio_player import play
4
4
  from .audio_converter import convert
5
5
  from .youtube_downloader import download
6
6
  from .audio_loader import load
7
+ from .audio_saver import save
7
8
  from .ann_loader import load_ann
8
9
  from .audio_recorder import record
9
10
 
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env python3
2
+
3
+ #---------------------------------
4
+ # Author: Ankit Anand
5
+ # Date: 13/09/25
6
+ # Email: ankit0.anand0@gmail.com
7
+ #---------------------------------
8
+
9
+
10
+ def save(y, sr, out_path):
11
+ """
12
+ Saves an array as an audio file.
13
+
14
+ Parameters
15
+ ----------
16
+ y: ndarray
17
+ - Audio signal array.
18
+ sr: number [> 0]
19
+ - Sampling rate of the audio signal.
20
+ out_path: str
21
+ - Output path of the audio file.
22
+
23
+ Returns
24
+ -------
25
+ None
26
+ """
27
+
28
+ import soundfile as sf
29
+
30
+ sf.write(file=out_path, data=y, samplerate=sr)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes