├── .gitignore
├── CMakeLists.txt
├── Doxyfile
├── README.md
├── docs
└── html
│ ├── SIDAudioSource_8h_source.html
│ ├── SIDConfig_8h_source.html
│ ├── SIDPlayer_8h_source.html
│ ├── SIDStream_8h_source.html
│ ├── _s_i_d_audio_source_8h_source.html
│ ├── _s_i_d_config_8h_source.html
│ ├── _s_i_d_player_8h.html
│ ├── _s_i_d_player_8h_source.html
│ ├── _s_i_d_stream_8h_source.html
│ ├── annotated.html
│ ├── bc_s.png
│ ├── bc_sd.png
│ ├── bdwn.png
│ ├── classaudio__tools_1_1SIDAudioSource-members.html
│ ├── classaudio__tools_1_1SIDAudioSource.html
│ ├── classaudio__tools_1_1SIDAudioSource.png
│ ├── classaudio__tools_1_1SIDPlayer-members.html
│ ├── classaudio__tools_1_1SIDPlayer.html
│ ├── classaudio__tools_1_1SIDPlayer.png
│ ├── classaudio__tools_1_1SIDSizeSource-members.html
│ ├── classaudio__tools_1_1SIDSizeSource.html
│ ├── classaudio__tools_1_1SIDSizeSource.png
│ ├── classaudio__tools_1_1SIDStream-members.html
│ ├── classaudio__tools_1_1SIDStream.html
│ ├── classaudio__tools_1_1SIDStream.png
│ ├── classaudio__tools_1_1SIDStreamConfig-members.html
│ ├── classaudio__tools_1_1SIDStreamConfig.html
│ ├── classaudio__tools_1_1SIDStreamConfig.png
│ ├── classaudio__tools_1_1SizeSource-members.html
│ ├── classaudio__tools_1_1SizeSource.html
│ ├── classaudio__tools_1_1SizeSource.png
│ ├── classaudio__tools_1_1SizeSourceFile-members.html
│ ├── classaudio__tools_1_1SizeSourceFile.html
│ ├── classaudio__tools_1_1SizeSourceFile.png
│ ├── classaudio__tools_1_1_s_i_d_audio_source-members.html
│ ├── classaudio__tools_1_1_s_i_d_audio_source.html
│ ├── classaudio__tools_1_1_s_i_d_audio_source.png
│ ├── classaudio__tools_1_1_s_i_d_player-members.html
│ ├── classaudio__tools_1_1_s_i_d_player.html
│ ├── classaudio__tools_1_1_s_i_d_player.png
│ ├── classaudio__tools_1_1_s_i_d_size_source-members.html
│ ├── classaudio__tools_1_1_s_i_d_size_source.html
│ ├── classaudio__tools_1_1_s_i_d_size_source.png
│ ├── classaudio__tools_1_1_s_i_d_stream-members.html
│ ├── classaudio__tools_1_1_s_i_d_stream.html
│ ├── classaudio__tools_1_1_s_i_d_stream.png
│ ├── classaudio__tools_1_1_s_i_d_stream_config-members.html
│ ├── classaudio__tools_1_1_s_i_d_stream_config.html
│ ├── classaudio__tools_1_1_s_i_d_stream_config.png
│ ├── classaudio__tools_1_1_size_source-members.html
│ ├── classaudio__tools_1_1_size_source.html
│ ├── classaudio__tools_1_1_size_source.png
│ ├── classaudio__tools_1_1_size_source_file-members.html
│ ├── classaudio__tools_1_1_size_source_file.html
│ ├── classaudio__tools_1_1_size_source_file.png
│ ├── classes.html
│ ├── closed.png
│ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html
│ ├── doc.png
│ ├── docd.png
│ ├── doxygen.css
│ ├── doxygen.svg
│ ├── dynsections.js
│ ├── files.html
│ ├── folderclosed.png
│ ├── folderopen.png
│ ├── functions.html
│ ├── functions_func.html
│ ├── hierarchy.html
│ ├── index.html
│ ├── jquery.js
│ ├── md_README.html
│ ├── md__r_e_a_d_m_e.html
│ ├── menu.js
│ ├── menudata.js
│ ├── nav_f.png
│ ├── nav_fd.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── nav_hd.png
│ ├── open.png
│ ├── pages.html
│ ├── search
│ ├── all_0.html
│ ├── all_0.js
│ ├── all_1.html
│ ├── all_1.js
│ ├── all_2.html
│ ├── all_2.js
│ ├── all_3.html
│ ├── all_3.js
│ ├── all_4.html
│ ├── all_4.js
│ ├── all_5.html
│ ├── all_5.js
│ ├── all_6.html
│ ├── all_6.js
│ ├── all_7.html
│ ├── all_7.js
│ ├── all_8.html
│ ├── all_8.js
│ ├── all_9.html
│ ├── all_9.js
│ ├── all_a.html
│ ├── all_a.js
│ ├── all_b.html
│ ├── all_b.js
│ ├── all_c.html
│ ├── all_c.js
│ ├── classes_0.html
│ ├── classes_0.js
│ ├── close.svg
│ ├── files_0.js
│ ├── functions_0.html
│ ├── functions_0.js
│ ├── functions_1.html
│ ├── functions_1.js
│ ├── functions_2.html
│ ├── functions_2.js
│ ├── functions_3.html
│ ├── functions_3.js
│ ├── functions_4.html
│ ├── functions_4.js
│ ├── functions_5.html
│ ├── functions_5.js
│ ├── functions_6.html
│ ├── functions_6.js
│ ├── functions_7.html
│ ├── functions_7.js
│ ├── functions_8.html
│ ├── functions_8.js
│ ├── functions_9.html
│ ├── functions_9.js
│ ├── functions_a.html
│ ├── functions_a.js
│ ├── functions_b.html
│ ├── functions_b.js
│ ├── functions_c.html
│ ├── functions_c.js
│ ├── mag.svg
│ ├── mag_d.svg
│ ├── mag_sel.svg
│ ├── mag_seld.svg
│ ├── nomatches.html
│ ├── pages_0.html
│ ├── pages_0.js
│ ├── search.css
│ ├── search.js
│ ├── search_l.png
│ ├── search_m.png
│ ├── search_r.png
│ └── searchdata.js
│ ├── splitbar.png
│ ├── splitbard.png
│ ├── structaudio__tools_1_1SIDMetadata-members.html
│ ├── structaudio__tools_1_1SIDMetadata.html
│ ├── structaudio__tools_1_1SIDStreamConfig-members.html
│ ├── structaudio__tools_1_1SIDStreamConfig.html
│ ├── structaudio__tools_1_1SIDStreamConfig.png
│ ├── structaudio__tools_1_1SidTitle-members.html
│ ├── structaudio__tools_1_1SidTitle.html
│ ├── structaudio__tools_1_1_s_i_d_metadata-members.html
│ ├── structaudio__tools_1_1_s_i_d_metadata.html
│ ├── structaudio__tools_1_1_s_i_d_stream_config-members.html
│ ├── structaudio__tools_1_1_s_i_d_stream_config.html
│ ├── structaudio__tools_1_1_s_i_d_stream_config.png
│ ├── structaudio__tools_1_1_sid_title-members.html
│ ├── structaudio__tools_1_1_sid_title.html
│ ├── sync_off.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_ad.png
│ ├── tab_b.png
│ ├── tab_bd.png
│ ├── tab_h.png
│ ├── tab_hd.png
│ ├── tab_s.png
│ ├── tab_sd.png
│ └── tabs.css
├── examples
├── desktop-player
│ ├── CMakeLists.txt
│ └── desktop-player.ino
├── desktop-stream
│ ├── CMakeLists.txt
│ └── desktop-stream.ino
├── player-kit
│ └── player-kit.ino
├── player-sd
│ └── player-sd.ino
├── player
│ └── player.ino
└── stream
│ └── stream.ino
├── library.properties
└── src
├── SIDAudioSource.h
├── SIDConfig.h
├── SIDPlayer.h
├── SIDStream.h
├── audio
├── arkanoid.h
├── comic.h
├── commando.h
├── ik.h
├── mikie.h
├── ocean.h
├── rambo.h
├── wizball.h
└── yie.h
└── sid-api
├── libcsid.h
├── libcsidlight.cpp
├── precalc.h
└── sidmemory.h
/.gitignore:
--------------------------------------------------------------------------------
1 | data/
2 | build/
3 | *.svd
4 | debug.cfg
5 | debug_custom.json
6 | .vscode/
7 |
--------------------------------------------------------------------------------
/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 |
3 | # set the project name
4 | project(sidplayer)
5 |
6 | # lots of warnings and all warnings as errors
7 | # add_compile_options(-Wall -Wextra )
8 |
9 | set (CMAKE_CXX_STANDARD 17)
10 | set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
11 | set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG}")
12 | include(FetchContent)
13 |
14 |
15 | # Build with Audio Tool
16 | set (ADD_STD_LIB OFF CACHE INTERNAL "Turn off extended libs")
17 | set (ADD_PORTAUDIO OFF CACHE INTERNAL "Portraudio lib")
18 | set (ADD_ARDUINO_EMULATOR OFF CACHE INTERNAL "Arduino Emulator lib")
19 | FetchContent_Declare(arduino-audio-tools GIT_REPOSITORY "https://github.com/pschatzmann/arduino-audio-tools.git" GIT_TAG main )
20 | FetchContent_GetProperties(arduino-audio-tools)
21 | if(NOT arduino-audio-tools_POPULATED)
22 | FetchContent_Populate(arduino-audio-tools)
23 | add_subdirectory(${arduino-audio-tools_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/arduino-audio-tools)
24 | endif()
25 |
26 | # define source files
27 | file(GLOB_RECURSE SRC_LIST_CPP CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*.cpp" )
28 |
29 | # define libraries
30 | add_library (sidplayer STATIC ${SRC_LIST_CPP})
31 |
32 | target_compile_definitions(sidplayer PUBLIC -DIS_DESKTOP_WITH_TIME_ONLY -DEXIT_ON_STOP )
33 | target_compile_definitions(arduino-audio-tools INTERFACE -DIS_DESKTOP_WITH_TIME_ONLY -DEXIT_ON_STOP)
34 |
35 | # define location for header files
36 | target_include_directories(sidplayer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src )
37 |
38 | target_link_libraries(sidplayer arduino-audio-tools)
39 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Playing SID Files
2 |
3 | In the old days I was rather a Commodere PC guy but I know of colleagues of mine that were addicted to the Commodore 64 and knew it inside out. Here is another project that makes you feel nostalgic:
4 |
5 | __Sound Interface Device (SID)__ is a audio format used by the __Commodore 64__ and 128.
6 |
7 | To get some SID files, I can recommend The [High Voltage SID Collection (HVSC)](https://www.hvsc.c64.org/) which is a freeware hobby project that organizes Commodore 64 music into an archive for both musicians and fans alike.
8 |
9 | Unfortunately we can not feed SID files incrementally to a codec, so this does not fit with my audio codecs that are used e.g. in the AudioPlayer of the AudioTools library.
10 |
11 | Therefore this project provides a separate, dedicated __SID stream__ and a __SID player__ that can play SID from files or from in memory hex dumps __on Arduino__. The player is based on the AudioPlayer from the [Arduino Audio Tools](https://github.com/pschatzmann/arduino-audio-tools), so you can use __different audio sources and audio sinks__. The SID emulation is based on cSID light by Hermit (Mihaly Horvath), (Year 2017).
12 |
13 |
14 | ### Memory Requirements
15 |
16 | You can set the RAM implementation in the config file (SIDConfig.h): In most cases it is using __64KB fixed__. By default this memory is reserved statically. You can also select to use PSRAM instead of RAM.
17 | There is also an experimenal memory implementation that can directly use the song stored in PROGMEM and just needs around 2K of additinal RAM.
18 |
19 |
20 | ### Documentation
21 |
22 | - [Class Documentation](https://pschatzmann.github.io/SIDPlayer/docs/html/annotated.html)
23 | - [AudioTools Audio Player](https://github.com/pschatzmann/arduino-audio-tools/wiki/The-Audio-Player-Class)
24 | - [Supported Output Devices](https://pschatzmann.github.io/arduino-audio-tools/group__io.html)
25 | - [AudioTools Wiki](https://github.com/pschatzmann/arduino-audio-tools/wiki)
26 |
27 | ### Installation
28 |
29 | For Arduino you can download the library as zip and call include Library -> zip library. Or you can git clone this project into the Arduino libraries folder e.g. with
30 |
31 | ```
32 | cd ~/Documents/Arduino/libraries
33 | git clone https://github.com/pschatzmann/SIDPlayer.git
34 | ```
35 |
36 | And please do not forget to also install the [AudioTools](https://github.com/pschatzmann/arduino-audio-tools)!
37 |
--------------------------------------------------------------------------------
/docs/html/SIDConfig_8h_source.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: src/SIDConfig.h Source File
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
74 |
75 |
8 # define MAX_DATA_LEN 65536
76 |
77 |
78 |
79 |
15 # define MAX_FILE_SIZE 20000
80 |
81 |
82 |
26 #ifndef MEMORY_ALLOCATION_LOGIC
83 |
27 # define MEMORY_ALLOCATION_LOGIC 3
84 |
85 |
86 |
87 |
88 |
89 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/docs/html/_s_i_d_config_8h_source.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: src/SIDConfig.h Source File
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 |
70 |
74 |
75 |
78 |
79 |
80 |
81 |
82 |
8 # define MAX_DATA_LEN 65536
83 |
84 |
85 |
86 |
15 # define MAX_FILE_SIZE 20000
87 |
88 |
89 |
26 #ifndef MEMORY_ALLOCATION_LOGIC
90 |
27 # define MEMORY_ALLOCATION_LOGIC 3
91 |
92 |
93 |
94 |
95 |
96 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/docs/html/_s_i_d_player_8h.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: src/SIDPlayer.h File Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 |
70 |
74 |
75 |
80 |
81 |
82 |
A simple abstraction to underlying sid/6502 logic.
83 | More...
84 |
#include "AudioTools.h"
85 | #include "SIDAudioSource.h"
86 | #include "SIDStream.h"
87 | #include "SIDConfig.h"
88 |
89 |
Go to the source code of this file.
90 |
91 |
93 | class audio_tools::SIDPlayer
94 | SID player which is based on the AudioPlayer from the AudioTools project and the SidPlayer provided by Gunnar Larsen. The SID emulation is based on cSID light by Hermit (Mihaly Horvath), (Year 2017). More...
95 |
96 |
97 |
98 |
A simple abstraction to underlying sid/6502 logic.
99 |
Author Gunnar Larsen
100 |
Version 0.1
101 |
Date 2023-02-23
102 |
103 |
104 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/docs/html/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/bc_s.png
--------------------------------------------------------------------------------
/docs/html/bc_sd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/bc_sd.png
--------------------------------------------------------------------------------
/docs/html/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/bdwn.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SIDAudioSource.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDAudioSource.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SIDPlayer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDPlayer.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SIDSizeSource-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
This is the complete list of members for audio_tools::SIDSizeSource , including all inherited members.
74 |
79 |
80 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SIDSizeSource.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDSizeSource.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SIDStream.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDStream.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SIDStreamConfig-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
This is the complete list of members for audio_tools::SIDStreamConfig , including all inherited members.
74 |
78 |
79 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SIDStreamConfig.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: audio_tools::SIDStreamConfig Class Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
74 |
75 |
77 |
78 |
79 |
80 |
81 |
82 |
84 |
85 | int sid_model = 6581
86 |
87 |
88 |
The documentation for this class was generated from the following file:
91 |
92 |
93 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SIDStreamConfig.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDStreamConfig.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SizeSource-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
This is the complete list of members for audio_tools::SizeSource , including all inherited members.
74 |
77 |
78 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SizeSource.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SizeSource.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SizeSourceFile-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
This is the complete list of members for audio_tools::SizeSourceFile , including all inherited members.
74 |
79 |
80 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1SizeSourceFile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SizeSourceFile.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_s_i_d_audio_source.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_audio_source.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_s_i_d_player.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_player.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_s_i_d_size_source-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 |
70 |
74 |
75 |
78 |
79 |
80 |
This is the complete list of members for audio_tools::SIDSizeSource , including all inherited members.
81 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_s_i_d_size_source.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_size_source.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_s_i_d_stream.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_stream.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_s_i_d_stream_config-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 |
70 |
74 |
75 |
78 |
79 |
80 |
This is the complete list of members for audio_tools::SIDStreamConfig , including all inherited members.
81 |
85 |
86 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_s_i_d_stream_config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_stream_config.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_size_source-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 |
70 |
74 |
75 |
78 |
79 |
80 |
This is the complete list of members for audio_tools::SizeSource , including all inherited members.
81 |
84 |
85 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_size_source.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_size_source.png
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_size_source_file-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 |
70 |
74 |
75 |
78 |
79 |
80 |
This is the complete list of members for audio_tools::SizeSourceFile , including all inherited members.
81 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/docs/html/classaudio__tools_1_1_size_source_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_size_source_file.png
--------------------------------------------------------------------------------
/docs/html/classes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Class Index
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
75 |
76 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/docs/html/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/closed.png
--------------------------------------------------------------------------------
/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: src Directory Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
74 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/docs/html/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/doc.png
--------------------------------------------------------------------------------
/docs/html/docd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/docd.png
--------------------------------------------------------------------------------
/docs/html/dynsections.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the JavaScript code in this file.
3 |
4 | The MIT License (MIT)
5 |
6 | Copyright (C) 1997-2020 by Dimitri van Heesch
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
9 | and associated documentation files (the "Software"), to deal in the Software without restriction,
10 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all copies or
15 | substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 | @licend The above is the entire license notice for the JavaScript code in this file
24 | */
25 | function toggleVisibility(linkObj)
26 | {
27 | var base = $(linkObj).attr('id');
28 | var summary = $('#'+base+'-summary');
29 | var content = $('#'+base+'-content');
30 | var trigger = $('#'+base+'-trigger');
31 | var src=$(trigger).attr('src');
32 | if (content.is(':visible')===true) {
33 | content.hide();
34 | summary.show();
35 | $(linkObj).addClass('closed').removeClass('opened');
36 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
37 | } else {
38 | content.show();
39 | summary.hide();
40 | $(linkObj).removeClass('closed').addClass('opened');
41 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
42 | }
43 | return false;
44 | }
45 |
46 | function updateStripes()
47 | {
48 | $('table.directory tr').
49 | removeClass('even').filter(':visible:even').addClass('even');
50 | }
51 |
52 | function toggleLevel(level)
53 | {
54 | $('table.directory tr').each(function() {
55 | var l = this.id.split('_').length-1;
56 | var i = $('#img'+this.id.substring(3));
57 | var a = $('#arr'+this.id.substring(3));
58 | if (l
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: File List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
Here is a list of all documented files with brief descriptions:
69 |
[detail level 1 2 ]
70 | ▼ src
71 | SIDAudioSource.h
72 | SIDConfig.h
73 | SIDPlayer.h
74 | SIDStream.h
75 |
76 |
77 |
78 |
79 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/docs/html/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/folderclosed.png
--------------------------------------------------------------------------------
/docs/html/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/folderopen.png
--------------------------------------------------------------------------------
/docs/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Main Page
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
69 |
70 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/docs/html/menu.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the JavaScript code in this file.
3 |
4 | The MIT License (MIT)
5 |
6 | Copyright (C) 1997-2020 by Dimitri van Heesch
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
9 | and associated documentation files (the "Software"), to deal in the Software without restriction,
10 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all copies or
15 | substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 | @licend The above is the entire license notice for the JavaScript code in this file
24 | */
25 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
26 | function makeTree(data,relPath) {
27 | var result='';
28 | if ('children' in data) {
29 | result+='';
36 | }
37 | return result;
38 | }
39 |
40 | $('#main-nav').append(makeTree(menudata,relPath));
41 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
42 | if (searchEnabled) {
43 | if (serverSide) {
44 | $('#main-menu').append(' ');
45 | } else {
46 | $('#main-menu').append(' ');
47 | }
48 | }
49 | $('#main-menu').smartmenus();
50 | }
51 | /* @license-end */
52 |
--------------------------------------------------------------------------------
/docs/html/menudata.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the JavaScript code in this file.
3 |
4 | The MIT License (MIT)
5 |
6 | Copyright (C) 1997-2020 by Dimitri van Heesch
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
9 | and associated documentation files (the "Software"), to deal in the Software without restriction,
10 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all copies or
15 | substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 | @licend The above is the entire license notice for the JavaScript code in this file
24 | */
25 | var menudata={children:[
26 | {text:"Main Page",url:"index.html"},
27 | {text:"Related Pages",url:"pages.html"},
28 | {text:"Classes",url:"annotated.html",children:[
29 | {text:"Class List",url:"annotated.html"},
30 | {text:"Class Index",url:"classes.html"},
31 | {text:"Class Hierarchy",url:"hierarchy.html"},
32 | {text:"Class Members",url:"functions.html",children:[
33 | {text:"All",url:"functions.html",children:[
34 | {text:"b",url:"functions.html#index_b"},
35 | {text:"c",url:"functions.html#index_c"},
36 | {text:"d",url:"functions.html#index_d"},
37 | {text:"e",url:"functions.html#index_e"},
38 | {text:"g",url:"functions.html#index_g"},
39 | {text:"i",url:"functions.html#index_i"},
40 | {text:"n",url:"functions.html#index_n"},
41 | {text:"o",url:"functions.html#index_o"},
42 | {text:"p",url:"functions.html#index_p"},
43 | {text:"r",url:"functions.html#index_r"},
44 | {text:"s",url:"functions.html#index_s"},
45 | {text:"v",url:"functions.html#index_v"}]},
46 | {text:"Functions",url:"functions_func.html",children:[
47 | {text:"b",url:"functions_func.html#index_b"},
48 | {text:"c",url:"functions_func.html#index_c"},
49 | {text:"d",url:"functions_func.html#index_d"},
50 | {text:"e",url:"functions_func.html#index_e"},
51 | {text:"g",url:"functions_func.html#index_g"},
52 | {text:"i",url:"functions_func.html#index_i"},
53 | {text:"n",url:"functions_func.html#index_n"},
54 | {text:"o",url:"functions_func.html#index_o"},
55 | {text:"p",url:"functions_func.html#index_p"},
56 | {text:"r",url:"functions_func.html#index_r"},
57 | {text:"s",url:"functions_func.html#index_s"},
58 | {text:"v",url:"functions_func.html#index_v"}]}]}]},
59 | {text:"Files",url:"files.html",children:[
60 | {text:"File List",url:"files.html"}]}]}
61 |
--------------------------------------------------------------------------------
/docs/html/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_f.png
--------------------------------------------------------------------------------
/docs/html/nav_fd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_fd.png
--------------------------------------------------------------------------------
/docs/html/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_g.png
--------------------------------------------------------------------------------
/docs/html/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_h.png
--------------------------------------------------------------------------------
/docs/html/nav_hd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_hd.png
--------------------------------------------------------------------------------
/docs/html/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/open.png
--------------------------------------------------------------------------------
/docs/html/pages.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Related Pages
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
Here is a list of all related documentation pages:
73 |
74 |
75 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/docs/html/search/all_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['begin_0',['begin',['../classaudio__tools_1_1SIDAudioSource.html#ad904dc16f447e32fcd65b02e5101d147',1,'audio_tools::SIDAudioSource::begin()'],['../classaudio__tools_1_1SIDPlayer.html#ae6b1a190fcf58b281fcb793038ee8f5a',1,'audio_tools::SIDPlayer::begin()']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['clear_1',['clear',['../classaudio__tools_1_1SIDAudioSource.html#a895b24d381645047eefc2f3b97897f98',1,'audio_tools::SIDAudioSource']]],
4 | ['copy_2',['copy',['../classaudio__tools_1_1SIDPlayer.html#a4ed914dd67bcb40e114024581113a773',1,'audio_tools::SIDPlayer']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['defaultconfig_3',['defaultConfig',['../classaudio__tools_1_1SIDStream.html#ae3351b892896758f884ef4e679eef79b',1,'audio_tools::SIDStream']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['end_4',['end',['../classaudio__tools_1_1SIDPlayer.html#a4948600ff0483a4ee97e93a93b48d809',1,'audio_tools::SIDPlayer::end()'],['../classaudio__tools_1_1SIDStream.html#a48475be554617c8e02d47a72fd76245b',1,'audio_tools::SIDStream::end()']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['getmetadata_5',['getMetadata',['../classaudio__tools_1_1SIDStream.html#a325eef8096aa74c3bbc4189b96ad524b',1,'audio_tools::SIDStream']]],
4 | ['getstream_6',['getStream',['../classaudio__tools_1_1SIDPlayer.html#a3a1a357256b9270c023eb388093277c3',1,'audio_tools::SIDPlayer']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['isactive_7',['isActive',['../classaudio__tools_1_1SIDPlayer.html#afa89e5a99aabd206ba02d05a640e6e63',1,'audio_tools::SIDPlayer::isActive()'],['../classaudio__tools_1_1SIDStream.html#aa4bc95f1efd9cc2e747fd7177317e9c4',1,'audio_tools::SIDStream::isActive()']]],
4 | ['isplayingtimedout_8',['isPlayingTimedOut',['../classaudio__tools_1_1SIDPlayer.html#a228e56883939494c5fdb2d0047a11ed5',1,'audio_tools::SIDPlayer']]],
5 | ['issilenceoninactive_9',['isSilenceOnInactive',['../classaudio__tools_1_1SIDPlayer.html#a9ac87cf599494c30e0573047e2416708',1,'audio_tools::SIDPlayer']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/all_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['next_10',['next',['../classaudio__tools_1_1SIDPlayer.html#a7ac4ddef99047779a3edf2cf51c6bb90',1,'audio_tools::SIDPlayer']]],
4 | ['nextstream_11',['nextStream',['../classaudio__tools_1_1SIDAudioSource.html#a4a92f2abba7d44fc48396f2b1bdd197e',1,'audio_tools::SIDAudioSource']]],
5 | ['nexttune_12',['nextTune',['../classaudio__tools_1_1SIDPlayer.html#afec45c7943c768e9a5c1bf5d87bd9b30',1,'audio_tools::SIDPlayer']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/all_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['operator_20bool_13',['operator bool',['../classaudio__tools_1_1SIDPlayer.html#a00e2ed01d83a3b356e3f3666134bab5a',1,'audio_tools::SIDPlayer']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['play_14',['play',['../classaudio__tools_1_1SIDPlayer.html#a78714f60e4098e46b04e947cc21a27b3',1,'audio_tools::SIDPlayer']]],
4 | ['playing_20sid_20files_15',['Playing SID Files',['../md_README.html',1,'']]],
5 | ['previous_16',['previous',['../classaudio__tools_1_1SIDPlayer.html#a8cc2b5e47b8c860d19f99001309d5565',1,'audio_tools::SIDPlayer']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/all_9.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['readbytes_17',['readBytes',['../classaudio__tools_1_1SIDStream.html#a28a22bf3ba1cdeedec2654303130f625',1,'audio_tools::SIDStream']]],
4 | ['readsample_18',['readSample',['../classaudio__tools_1_1SIDStream.html#aa6c130987e18279c107d0349469f7aa0',1,'audio_tools::SIDStream']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_a.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_a.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['selectstream_19',['selectStream',['../classaudio__tools_1_1SIDAudioSource.html#a433f8c90842dbc18140f64a86e15eac3',1,'audio_tools::SIDAudioSource::selectStream(int index)'],['../classaudio__tools_1_1SIDAudioSource.html#ad563fe8b0b233847e4565803235f71e8',1,'audio_tools::SIDAudioSource::selectStream(const char *path)']]],
4 | ['setactive_20',['setActive',['../classaudio__tools_1_1SIDPlayer.html#a603e30292b780485abbc8e27913fe980',1,'audio_tools::SIDPlayer']]],
5 | ['setaudioinfo_21',['setAudioInfo',['../classaudio__tools_1_1SIDPlayer.html#af42f1921cc9fb74a732ed6a4a597592c',1,'audio_tools::SIDPlayer']]],
6 | ['setindex_22',['setIndex',['../classaudio__tools_1_1SIDPlayer.html#aaa51430de1b6e980e0f47f78f01c0b95',1,'audio_tools::SIDPlayer']]],
7 | ['setisplayingtimeout_23',['setIsPlayingTimeout',['../classaudio__tools_1_1SIDPlayer.html#ad28da4e93c8f8e2993ed763040f4fad9',1,'audio_tools::SIDPlayer']]],
8 | ['setpath_24',['setPath',['../classaudio__tools_1_1SIDPlayer.html#ae1366b2f33a4660e0bc9a148440df3a8',1,'audio_tools::SIDPlayer']]],
9 | ['setsid_25',['setSID',['../classaudio__tools_1_1SIDStream.html#a20bc3207c71009ebead019f8bdd3b731',1,'audio_tools::SIDStream']]],
10 | ['setsidasinput_26',['setSIDAsInput',['../classaudio__tools_1_1SIDPlayer.html#a0d5e03ff4c6445aab5e290764f9e0c13',1,'audio_tools::SIDPlayer']]],
11 | ['setsilenceoninactive_27',['setSilenceOnInactive',['../classaudio__tools_1_1SIDPlayer.html#aadfc32f88b3ff0f19dd6923cb9c09bb3',1,'audio_tools::SIDPlayer']]],
12 | ['settimeout_28',['setTimeout',['../classaudio__tools_1_1SIDPlayer.html#a9fb220a10ada97b4f4fd228558242569',1,'audio_tools::SIDPlayer']]],
13 | ['setvolume_29',['setVolume',['../classaudio__tools_1_1SIDPlayer.html#a038a0092297dbb9cb68f225faca65a33',1,'audio_tools::SIDPlayer']]],
14 | ['sidaudiosource_30',['SIDAudioSource',['../classaudio__tools_1_1SIDAudioSource.html',1,'audio_tools']]],
15 | ['sidmetadata_31',['SIDMetadata',['../structaudio__tools_1_1SIDMetadata.html',1,'audio_tools']]],
16 | ['sidplayer_32',['SIDPlayer',['../classaudio__tools_1_1SIDPlayer.html',1,'audio_tools']]],
17 | ['sidsizesource_33',['SIDSizeSource',['../classaudio__tools_1_1SIDSizeSource.html',1,'audio_tools']]],
18 | ['sidstream_34',['SIDStream',['../classaudio__tools_1_1SIDStream.html',1,'audio_tools::SIDStream'],['../classaudio__tools_1_1SIDStream.html#ab59373e8e3bdfbde2d85eb67ba317688',1,'audio_tools::SIDStream::SIDStream()=default'],['../classaudio__tools_1_1SIDStream.html#ac6d77b143462480994f74939b6b755c6',1,'audio_tools::SIDStream::SIDStream(const unsigned char *tunedata, int tunedatalen, int subtune=0)']]],
19 | ['sidstreamconfig_35',['SIDStreamConfig',['../structaudio__tools_1_1SIDStreamConfig.html',1,'audio_tools']]],
20 | ['sidtitle_36',['SidTitle',['../structaudio__tools_1_1SidTitle.html',1,'audio_tools']]],
21 | ['size_37',['size',['../classaudio__tools_1_1SIDAudioSource.html#ad960e0dd3b54c3da4c8f297c317a7daf',1,'audio_tools::SIDAudioSource']]],
22 | ['sizesource_38',['SizeSource',['../classaudio__tools_1_1SizeSource.html',1,'audio_tools']]],
23 | ['stop_39',['stop',['../classaudio__tools_1_1SIDPlayer.html#a65fc1edc40108a732185333499fc94a1',1,'audio_tools::SIDPlayer']]]
24 | ];
25 |
--------------------------------------------------------------------------------
/docs/html/search/all_b.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_b.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['volume_40',['volume',['../classaudio__tools_1_1SIDPlayer.html#a175d54866865fcd720b26b11432a8cdf',1,'audio_tools::SIDPlayer']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_c.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['volume_0',['volume',['../classaudio__tools_1_1_s_i_d_player.html#a175d54866865fcd720b26b11432a8cdf',1,'audio_tools::SIDPlayer']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/classes_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/classes_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['sidaudiosource_41',['SIDAudioSource',['../classaudio__tools_1_1SIDAudioSource.html',1,'audio_tools']]],
4 | ['sidmetadata_42',['SIDMetadata',['../structaudio__tools_1_1SIDMetadata.html',1,'audio_tools']]],
5 | ['sidplayer_43',['SIDPlayer',['../classaudio__tools_1_1SIDPlayer.html',1,'audio_tools']]],
6 | ['sidsizesource_44',['SIDSizeSource',['../classaudio__tools_1_1SIDSizeSource.html',1,'audio_tools']]],
7 | ['sidstream_45',['SIDStream',['../classaudio__tools_1_1SIDStream.html',1,'audio_tools']]],
8 | ['sidstreamconfig_46',['SIDStreamConfig',['../structaudio__tools_1_1SIDStreamConfig.html',1,'audio_tools']]],
9 | ['sidtitle_47',['SidTitle',['../structaudio__tools_1_1SidTitle.html',1,'audio_tools']]],
10 | ['sizesource_48',['SizeSource',['../classaudio__tools_1_1SizeSource.html',1,'audio_tools']]]
11 | ];
12 |
--------------------------------------------------------------------------------
/docs/html/search/close.svg:
--------------------------------------------------------------------------------
1 |
2 |
13 |
15 |
16 |
18 | image/svg+xml
19 |
21 |
22 |
23 |
24 |
25 |
27 |
31 |
32 |
--------------------------------------------------------------------------------
/docs/html/search/files_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['sidplayer_2eh_0',['SIDPlayer.h',['../_s_i_d_player_8h.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/functions_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['begin_49',['begin',['../classaudio__tools_1_1SIDAudioSource.html#ad904dc16f447e32fcd65b02e5101d147',1,'audio_tools::SIDAudioSource::begin()'],['../classaudio__tools_1_1SIDPlayer.html#ae6b1a190fcf58b281fcb793038ee8f5a',1,'audio_tools::SIDPlayer::begin()']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/functions_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['clear_50',['clear',['../classaudio__tools_1_1SIDAudioSource.html#a895b24d381645047eefc2f3b97897f98',1,'audio_tools::SIDAudioSource']]],
4 | ['copy_51',['copy',['../classaudio__tools_1_1SIDPlayer.html#a4ed914dd67bcb40e114024581113a773',1,'audio_tools::SIDPlayer']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['defaultconfig_52',['defaultConfig',['../classaudio__tools_1_1SIDStream.html#ae3351b892896758f884ef4e679eef79b',1,'audio_tools::SIDStream']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/functions_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['end_53',['end',['../classaudio__tools_1_1SIDPlayer.html#a4948600ff0483a4ee97e93a93b48d809',1,'audio_tools::SIDPlayer::end()'],['../classaudio__tools_1_1SIDStream.html#a48475be554617c8e02d47a72fd76245b',1,'audio_tools::SIDStream::end()']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/functions_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['getmetadata_54',['getMetadata',['../classaudio__tools_1_1SIDStream.html#a325eef8096aa74c3bbc4189b96ad524b',1,'audio_tools::SIDStream']]],
4 | ['getstream_55',['getStream',['../classaudio__tools_1_1SIDPlayer.html#a3a1a357256b9270c023eb388093277c3',1,'audio_tools::SIDPlayer']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['isactive_56',['isActive',['../classaudio__tools_1_1SIDPlayer.html#afa89e5a99aabd206ba02d05a640e6e63',1,'audio_tools::SIDPlayer::isActive()'],['../classaudio__tools_1_1SIDStream.html#aa4bc95f1efd9cc2e747fd7177317e9c4',1,'audio_tools::SIDStream::isActive()']]],
4 | ['isplayingtimedout_57',['isPlayingTimedOut',['../classaudio__tools_1_1SIDPlayer.html#a228e56883939494c5fdb2d0047a11ed5',1,'audio_tools::SIDPlayer']]],
5 | ['issilenceoninactive_58',['isSilenceOnInactive',['../classaudio__tools_1_1SIDPlayer.html#a9ac87cf599494c30e0573047e2416708',1,'audio_tools::SIDPlayer']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/functions_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['next_59',['next',['../classaudio__tools_1_1SIDPlayer.html#a7ac4ddef99047779a3edf2cf51c6bb90',1,'audio_tools::SIDPlayer']]],
4 | ['nextstream_60',['nextStream',['../classaudio__tools_1_1SIDAudioSource.html#a4a92f2abba7d44fc48396f2b1bdd197e',1,'audio_tools::SIDAudioSource']]],
5 | ['nexttune_61',['nextTune',['../classaudio__tools_1_1SIDPlayer.html#afec45c7943c768e9a5c1bf5d87bd9b30',1,'audio_tools::SIDPlayer']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/functions_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['operator_20bool_62',['operator bool',['../classaudio__tools_1_1SIDPlayer.html#a00e2ed01d83a3b356e3f3666134bab5a',1,'audio_tools::SIDPlayer']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/functions_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['play_63',['play',['../classaudio__tools_1_1SIDPlayer.html#a78714f60e4098e46b04e947cc21a27b3',1,'audio_tools::SIDPlayer']]],
4 | ['previous_64',['previous',['../classaudio__tools_1_1SIDPlayer.html#a8cc2b5e47b8c860d19f99001309d5565',1,'audio_tools::SIDPlayer']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_9.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['readbytes_65',['readBytes',['../classaudio__tools_1_1SIDStream.html#a28a22bf3ba1cdeedec2654303130f625',1,'audio_tools::SIDStream']]],
4 | ['readsample_66',['readSample',['../classaudio__tools_1_1SIDStream.html#aa6c130987e18279c107d0349469f7aa0',1,'audio_tools::SIDStream']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_a.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_a.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['selectstream_67',['selectStream',['../classaudio__tools_1_1SIDAudioSource.html#a433f8c90842dbc18140f64a86e15eac3',1,'audio_tools::SIDAudioSource::selectStream(int index)'],['../classaudio__tools_1_1SIDAudioSource.html#ad563fe8b0b233847e4565803235f71e8',1,'audio_tools::SIDAudioSource::selectStream(const char *path)']]],
4 | ['setactive_68',['setActive',['../classaudio__tools_1_1SIDPlayer.html#a603e30292b780485abbc8e27913fe980',1,'audio_tools::SIDPlayer']]],
5 | ['setaudioinfo_69',['setAudioInfo',['../classaudio__tools_1_1SIDPlayer.html#af42f1921cc9fb74a732ed6a4a597592c',1,'audio_tools::SIDPlayer']]],
6 | ['setindex_70',['setIndex',['../classaudio__tools_1_1SIDPlayer.html#aaa51430de1b6e980e0f47f78f01c0b95',1,'audio_tools::SIDPlayer']]],
7 | ['setisplayingtimeout_71',['setIsPlayingTimeout',['../classaudio__tools_1_1SIDPlayer.html#ad28da4e93c8f8e2993ed763040f4fad9',1,'audio_tools::SIDPlayer']]],
8 | ['setpath_72',['setPath',['../classaudio__tools_1_1SIDPlayer.html#ae1366b2f33a4660e0bc9a148440df3a8',1,'audio_tools::SIDPlayer']]],
9 | ['setsid_73',['setSID',['../classaudio__tools_1_1SIDStream.html#a20bc3207c71009ebead019f8bdd3b731',1,'audio_tools::SIDStream']]],
10 | ['setsidasinput_74',['setSIDAsInput',['../classaudio__tools_1_1SIDPlayer.html#a0d5e03ff4c6445aab5e290764f9e0c13',1,'audio_tools::SIDPlayer']]],
11 | ['setsilenceoninactive_75',['setSilenceOnInactive',['../classaudio__tools_1_1SIDPlayer.html#aadfc32f88b3ff0f19dd6923cb9c09bb3',1,'audio_tools::SIDPlayer']]],
12 | ['settimeout_76',['setTimeout',['../classaudio__tools_1_1SIDPlayer.html#a9fb220a10ada97b4f4fd228558242569',1,'audio_tools::SIDPlayer']]],
13 | ['setvolume_77',['setVolume',['../classaudio__tools_1_1SIDPlayer.html#a038a0092297dbb9cb68f225faca65a33',1,'audio_tools::SIDPlayer']]],
14 | ['sidstream_78',['SIDStream',['../classaudio__tools_1_1SIDStream.html#ab59373e8e3bdfbde2d85eb67ba317688',1,'audio_tools::SIDStream::SIDStream()=default'],['../classaudio__tools_1_1SIDStream.html#ac6d77b143462480994f74939b6b755c6',1,'audio_tools::SIDStream::SIDStream(const unsigned char *tunedata, int tunedatalen, int subtune=0)']]],
15 | ['size_79',['size',['../classaudio__tools_1_1SIDAudioSource.html#ad960e0dd3b54c3da4c8f297c317a7daf',1,'audio_tools::SIDAudioSource']]],
16 | ['stop_80',['stop',['../classaudio__tools_1_1SIDPlayer.html#a65fc1edc40108a732185333499fc94a1',1,'audio_tools::SIDPlayer']]]
17 | ];
18 |
--------------------------------------------------------------------------------
/docs/html/search/functions_b.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_b.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['volume_81',['volume',['../classaudio__tools_1_1SIDPlayer.html#a175d54866865fcd720b26b11432a8cdf',1,'audio_tools::SIDPlayer']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/functions_c.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['volume_0',['volume',['../classaudio__tools_1_1_s_i_d_player.html#a175d54866865fcd720b26b11432a8cdf',1,'audio_tools::SIDPlayer']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/mag.svg:
--------------------------------------------------------------------------------
1 |
2 |
13 |
15 |
16 |
18 | image/svg+xml
19 |
21 |
22 |
23 |
24 |
25 |
27 |
33 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/mag_d.svg:
--------------------------------------------------------------------------------
1 |
2 |
13 |
15 |
16 |
18 | image/svg+xml
19 |
21 |
22 |
23 |
24 |
25 |
27 |
33 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/mag_sel.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
21 |
22 |
24 | image/svg+xml
25 |
27 |
28 |
29 |
30 |
31 |
33 |
57 |
63 |
69 |
74 |
75 |
--------------------------------------------------------------------------------
/docs/html/search/mag_seld.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
21 |
22 |
24 | image/svg+xml
25 |
27 |
28 |
29 |
30 |
31 |
33 |
57 |
63 |
69 |
74 |
75 |
--------------------------------------------------------------------------------
/docs/html/search/nomatches.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/html/search/pages_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/pages_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['playing_20sid_20files_82',['Playing SID Files',['../md_README.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/search_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/search/search_l.png
--------------------------------------------------------------------------------
/docs/html/search/search_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/search/search_m.png
--------------------------------------------------------------------------------
/docs/html/search/search_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/search/search_r.png
--------------------------------------------------------------------------------
/docs/html/search/searchdata.js:
--------------------------------------------------------------------------------
1 | var indexSectionsWithContent =
2 | {
3 | 0: "bcdeginoprsv",
4 | 1: "s",
5 | 2: "bcdeginoprsv",
6 | 3: "p"
7 | };
8 |
9 | var indexSectionNames =
10 | {
11 | 0: "all",
12 | 1: "classes",
13 | 2: "functions",
14 | 3: "pages"
15 | };
16 |
17 | var indexSectionLabels =
18 | {
19 | 0: "All",
20 | 1: "Classes",
21 | 2: "Functions",
22 | 3: "Pages"
23 | };
24 |
25 |
--------------------------------------------------------------------------------
/docs/html/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/splitbar.png
--------------------------------------------------------------------------------
/docs/html/splitbard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/splitbard.png
--------------------------------------------------------------------------------
/docs/html/structaudio__tools_1_1SIDMetadata-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
This is the complete list of members for audio_tools::SIDMetadata , including all inherited members.
74 |
82 |
83 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/docs/html/structaudio__tools_1_1SIDStreamConfig-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
This is the complete list of members for audio_tools::SIDStreamConfig , including all inherited members.
74 |
81 |
82 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/docs/html/structaudio__tools_1_1SIDStreamConfig.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/structaudio__tools_1_1SIDStreamConfig.png
--------------------------------------------------------------------------------
/docs/html/structaudio__tools_1_1SidTitle-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
This is the complete list of members for audio_tools::SidTitle , including all inherited members.
74 |
79 |
80 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/docs/html/structaudio__tools_1_1_s_i_d_stream_config-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 |
70 |
74 |
75 |
78 |
79 |
80 |
This is the complete list of members for audio_tools::SIDStreamConfig , including all inherited members.
81 |
88 |
89 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/docs/html/structaudio__tools_1_1_s_i_d_stream_config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/structaudio__tools_1_1_s_i_d_stream_config.png
--------------------------------------------------------------------------------
/docs/html/structaudio__tools_1_1_sid_title-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | SID Player: Member List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SID Player
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 |
70 |
74 |
75 |
78 |
79 |
80 |
This is the complete list of members for audio_tools::SidTitle , including all inherited members.
81 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/docs/html/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/sync_off.png
--------------------------------------------------------------------------------
/docs/html/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/sync_on.png
--------------------------------------------------------------------------------
/docs/html/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_a.png
--------------------------------------------------------------------------------
/docs/html/tab_ad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_ad.png
--------------------------------------------------------------------------------
/docs/html/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_b.png
--------------------------------------------------------------------------------
/docs/html/tab_bd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_bd.png
--------------------------------------------------------------------------------
/docs/html/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_h.png
--------------------------------------------------------------------------------
/docs/html/tab_hd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_hd.png
--------------------------------------------------------------------------------
/docs/html/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_s.png
--------------------------------------------------------------------------------
/docs/html/tab_sd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_sd.png
--------------------------------------------------------------------------------
/examples/desktop-player/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.20)
2 |
3 | # set the project name
4 | project(desktop-player)
5 | set (CMAKE_CXX_STANDARD 11)
6 | set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0")
7 | set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG}")
8 |
9 | include(FetchContent)
10 | option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)
11 |
12 |
13 | # Build with sidplayer
14 | if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
15 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_BINARY_DIR}/sidplayer )
16 | endif()
17 |
18 | # build sketch as executable
19 | set_source_files_properties(desktop-player.ino PROPERTIES LANGUAGE CXX)
20 | add_executable (desktop-player desktop-player.ino)
21 |
22 | # set preprocessor defines
23 | target_compile_definitions(desktop-player PUBLIC -DEXIT_ON_STOP -DIS_DESKTOP_WITH_TIME_ONLY)
24 |
25 | # specify libraries
26 | target_link_libraries(desktop-player sidplayer arduino-audio-tools)
27 |
--------------------------------------------------------------------------------
/examples/desktop-player/desktop-player.ino:
--------------------------------------------------------------------------------
1 | /**
2 | * @file player-desktop.ino
3 | * @author Phil Schatzmann
4 | * @brief Sends the PCM stream of the the included demo SID files to the the standard output.
5 | *
6 | * You can compile and run this sketch on the desktop e.g. with desktop-player | aplay on linux
7 | * To build it:
8 | * go to this directory
9 | * mkdir build
10 | * cd build
11 | * cmake ..
12 | * make
13 | * and execute it with ./desktop-player
14 | *
15 | * @version 0.1
16 | * @date 2023-03-02
17 | *
18 | * @copyright Copyright (c) 2023
19 | *
20 | */
21 | #include "SIDPlayer.h"
22 | #include "AudioLibs/StdioStream.h"
23 |
24 | SIDAudioSource source(DemoSongs, DemoSongsCount);
25 | SIDSizeSource sidSize(source);
26 | StdioStream out; // or AnalogAudioStream or PWMStream etc
27 | WAVEncoder enc;
28 | EncodedAudioStream wav(&out, &enc); // final solution
29 | //CsvStream csv(Serial); // best for checking the audio generation
30 | //NullStream none; // best for debuging
31 | SIDPlayer sid(source, wav, sidSize); // change relevant output
32 |
33 | void setup() {
34 | AudioLogger::instance().begin(Serial, AudioLogger::Warning);
35 |
36 | auto cfg = out.defaultConfig();
37 | cfg.sample_rate = 8000;
38 | cfg.channels = 1;
39 | cfg.bits_per_sample = 16;
40 |
41 | // actually only the output that is used is relevant
42 | out.begin(cfg);
43 | wav.begin(cfg);
44 | // csv.begin(cfg);
45 | // none.begin(cfg);
46 |
47 | // move to next song after playing for 5 minuts
48 | sid.setTimeout(60*1);
49 | sid.begin();
50 |
51 | }
52 |
53 | void loop() {
54 | sid.copy();
55 | }
56 |
57 | int main(){
58 | setup();
59 | while(true)loop();
60 | }
61 |
62 |
--------------------------------------------------------------------------------
/examples/desktop-stream/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.20)
2 |
3 | # set the project name
4 | project(desktop-stream)
5 | set (CMAKE_CXX_STANDARD 11)
6 | set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0")
7 | set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG}")
8 |
9 | include(FetchContent)
10 | option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)
11 |
12 |
13 | # Build with sidplayer
14 | if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
15 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_BINARY_DIR}/sidplayer )
16 | endif()
17 |
18 | # build sketch as executable
19 | set_source_files_properties(desktop-stream.ino PROPERTIES LANGUAGE CXX)
20 | add_executable (desktop-stream desktop-stream.ino)
21 |
22 | # set preprocessor defines
23 | target_compile_definitions(desktop-stream PUBLIC -DEXIT_ON_STOP -DIS_DESKTOP_WITH_TIME_ONLY)
24 |
25 | # specify libraries
26 | target_link_libraries(desktop-stream sidplayer arduino-audio-tools)
27 |
--------------------------------------------------------------------------------
/examples/desktop-stream/desktop-stream.ino:
--------------------------------------------------------------------------------
1 | /**
2 | * @file stream.ino
3 | * @author Phil Schatzmann
4 | * @brief Copies the Audio from Sid to an output device
5 | *
6 | * You can compile and run this sketch on the desktop e.g. with desktop-stream | aplay on linux
7 | * To build it:
8 | * go to this directory
9 | * mkdir build
10 | * cd build
11 | * cmake ..
12 | * make
13 | * and execute it with ./desktop-stream
14 |
15 | * @version 0.1
16 | * @date 2023-03-03
17 | *
18 | * @copyright Copyright (c) 2023
19 | *
20 | */
21 | #include "AudioTools.h"
22 | #include "SIDStream.h"
23 | #include "AudioLibs/StdioStream.h"
24 | #include "audio/commando.h"
25 |
26 | uint16_t sample_rate=32000;
27 | uint8_t channels = 2;
28 | StdioStream out;
29 | WAVEncoder enc;
30 | EncodedAudioStream wav(&out, &enc); // final solution
31 | SIDStream sid(music_Commando_sid, music_Commando_sid_len);
32 | StreamCopy copier(wav, sid);
33 |
34 | // Arduino Setup
35 | void setup(void) {
36 | AudioLogger::instance().begin(Serial, AudioLogger::Warning);
37 |
38 | // start output
39 | auto config = out.defaultConfig();
40 | config.sample_rate = sample_rate;
41 | config.channels = channels;
42 | config.bits_per_sample = 16;
43 | out.begin(config);
44 | wav.begin(config);
45 |
46 | // Setup SID
47 | auto scfg = sid.defaultConfig();
48 | scfg.copyFrom(config);
49 | scfg.subtune = 2;
50 | sid.begin(scfg);
51 | //sid.setSID(music_Commando_sid, music_Commando_sid_len);
52 | }
53 |
54 | // Arduino loop - copy sound to out
55 | void loop() {
56 | copier.copy();
57 | }
58 |
59 | int main(){
60 | setup();
61 | while(true)loop();
62 | }
63 |
--------------------------------------------------------------------------------
/examples/player-kit/player-kit.ino:
--------------------------------------------------------------------------------
1 | /**
2 | * @file player.ino
3 | * @author Phil Schatzmann
4 | * @brief Plays the included demo SID files on an AI Thinker AudioKit
5 | * Dependencies:
6 | * - https://github.com/pschatzmann/SIDPlayer
7 | * - https://github.com/pschatzmann/arduino-audio-tools
8 | * - https://github.com/pschatzmann/arduino-audiokit
9 | * @version 0.1
10 | * @date 2023-03-02
11 | *
12 | * @copyright Copyright (c) 2023
13 | *
14 | */
15 |
16 | #include "SIDPlayer.h"
17 | #include "AudioLibs/AudioBoardStream.h"
18 |
19 | SIDAudioSource source(DemoSongs, DemoSongsCount);
20 | SIDSizeSource sidSize(source);
21 | AudioBoardStream kit(AudioKitEs8388V1);
22 | SIDPlayer sid(source, kit, sidSize);
23 |
24 | void previous(bool, int, void*) { TRACEI(); sid.previous(); }
25 | void next(bool, int, void*) { TRACEI(); sid.next(); }
26 | void volumeUp(bool, int, void*) { sid.setVolume(sid.volume()+0.2); }
27 | void volumeDown(bool, int, void*) { sid.setVolume(sid.volume()-0.2); }
28 |
29 | void setup() {
30 | Serial.begin(115200);
31 | AudioLogger::instance().begin(Serial, AudioLogger::Info);
32 |
33 | auto cfg = kit.defaultConfig(TX_MODE);
34 | cfg.channels = 1; // 1 or 2 working
35 | cfg.sample_rate = 8000; // use whatever is supported by the audiokit
36 | kit.begin(cfg);
37 |
38 | kit.addAction(PIN_KEY3, previous);
39 | kit.addAction(PIN_KEY4, next);
40 | kit.addAction(PIN_KEY5, volumeDown);
41 | kit.addAction(PIN_KEY6, volumeUp);
42 |
43 | // move to next song after playing for 5 minuts
44 | sid.setTimeout(60*5);
45 | sid.begin(random(source.size()));
46 |
47 | }
48 |
49 | void loop() {
50 | sid.copy();
51 | kit.processActions();
52 | }
53 |
--------------------------------------------------------------------------------
/examples/player-sd/player-sd.ino:
--------------------------------------------------------------------------------
1 | /**
2 | * @file player.ino
3 | * @author Phil Schatzmann
4 | * @brief Plays the SID files from a SD Drive on an AI Thinker AudioKit
5 | * Dependencies:
6 | * - https://github.com/pschatzmann/SIDPlayer
7 | * - https://github.com/pschatzmann/arduino-audio-tools
8 | * @version 0.1
9 | * @date 2023-03-02
10 | *
11 | * @copyright Copyright (c) 2023
12 | *
13 | */
14 |
15 | #include "SIDPlayer.h"
16 | #include "AudioLibs/AudioSourceIdxSD.h"
17 | // #include "AudioLibs/AudioKit.h"
18 |
19 | // replace with your CS pin
20 | #define CS PIN_AUDIO_KIT_SD_CARD_CS
21 |
22 | const char *startFilePath="/SID";
23 | const char* ext="sid";
24 | AudioSourceIdxSD source(startFilePath, ext, CS);
25 | SizeSourceFile fileSize(source);
26 | I2SStream out; // or replace with your Output Device e.g. AudioBoardStream
27 | SIDPlayer sid(source, out, fileSize);
28 | AudioActions actions;
29 |
30 | void previous(bool, int, void*) { TRACEI(); sid.previous(); }
31 | void next(bool, int, void*) { TRACEI(); sid.next(); }
32 | void volumeUp(bool, int, void*) { sid.setVolume(sid.volume()+0.2); }
33 | void volumeDown(bool, int, void*) { sid.setVolume(sid.volume()-0.2); }
34 |
35 | void setup() {
36 | Serial.begin(115200);
37 | AudioLogger::instance().begin(Serial, AudioLogger::Warning);
38 | // open in write mode
39 | auto cfg = out.defaultConfig(TX_MODE);
40 | cfg.channels = 1; // 1 or 2 working
41 | cfg.sample_rate = 8000; // use whatever is supported by the audiokit
42 | out.begin(cfg);
43 |
44 | // timout 5 minutes
45 | sid.setTimeout(60*5);
46 | sid.begin();
47 |
48 | actions.add(PIN_KEY3, previous);
49 | actions.add(PIN_KEY4, next);
50 | actions.add(PIN_KEY5, volumeDown);
51 | actions.add(PIN_KEY6, volumeUp);
52 |
53 | }
54 |
55 | void loop() {
56 | sid.copy();
57 | actions.processActions();
58 | }
59 |
--------------------------------------------------------------------------------
/examples/player/player.ino:
--------------------------------------------------------------------------------
1 | /**
2 | * @file player.ino
3 | * @author Phil Schatzmann
4 | * @brief Plays the included demo SID files to the defined output (e.g. on a regurlar ESP32)
5 | * Dependencies:
6 | * - https://github.com/pschatzmann/SIDPlayer
7 | * - https://github.com/pschatzmann/arduino-audio-tools
8 | * @version 0.1
9 | * @date 2023-03-02
10 | *
11 | * @copyright Copyright (c) 2023
12 | *
13 | */
14 | #include "SIDPlayer.h"
15 |
16 | SIDAudioSource source(DemoSongs, DemoSongsCount);
17 | SIDSizeSource sidSize(source);
18 | I2SStream out; // or AnalogAudioStream or PWMStream etc
19 | AudioActions actions;
20 | SIDPlayer sid(source, out, sidSize);
21 |
22 | void previous(bool, int, void*) { sid.previous(); }
23 | void next(bool, int, void*) { sid.next(); }
24 | void volumeUp(bool, int, void*) { sid.setVolume(sid.volume()+0.2); }
25 | void volumeDown(bool, int, void*) { sid.setVolume(sid.volume()-0.2); }
26 |
27 | void setup() {
28 | Serial.begin(115200);
29 | AudioLogger::instance().begin(Serial, AudioLogger::Info);
30 |
31 | // setup button pins
32 | actions.add(12, previous);
33 | actions.add(13, next);
34 | actions.add(14, volumeUp);
35 | actions.add(15, volumeDown);
36 |
37 | auto cfg = out.defaultConfig(TX_MODE);
38 | out.begin(cfg);
39 |
40 | // move to next song after playing for 5 minuts
41 | sid.setTimeout(60*5);
42 | sid.begin();
43 |
44 | }
45 |
46 | void loop() {
47 | sid.copy();
48 | actions.processActions();
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/examples/stream/stream.ino:
--------------------------------------------------------------------------------
1 | /**
2 | * @file stream.ino
3 | * @author Phil Schatzmann
4 | * @brief Copies the Audio from Sid to an output device
5 | * @version 0.1
6 | * @date 2023-03-03
7 | *
8 | * @copyright Copyright (c) 2023
9 | *
10 | */
11 | #include "AudioTools.h"
12 | #include "SIDStream.h"
13 | #include "AudioLibs/AudioBoardStream.h"
14 | #include "audio/commando.h"
15 |
16 | uint16_t sample_rate=32000;
17 | uint8_t channels = 2;
18 | AudioBoardStream out(AudioKitEs8388V1);
19 | SIDStream sid(music_Commando_sid, music_Commando_sid_len);
20 | StreamCopy copier(out, sid);
21 |
22 | // Arduino Setup
23 | void setup(void) {
24 | // Open Serial
25 | Serial.begin(115200);
26 | AudioLogger::instance().begin(Serial, AudioLogger::Info);
27 |
28 | // start I2S
29 | Serial.println("starting I2S...");
30 | auto config = out.defaultConfig(TX_MODE);
31 | config.sample_rate = sample_rate;
32 | config.channels = channels;
33 | config.bits_per_sample = 16;
34 | out.begin(config);
35 |
36 | // Setup SID
37 | auto scfg = sid.defaultConfig();
38 | scfg.copyFrom(config);
39 | sid.begin(scfg);
40 | //sid.setSID(music_Commando_sid, music_Commando_sid_len);
41 |
42 | }
43 |
44 | // Arduino loop - copy sound to out
45 | void loop() {
46 | copier.copy();
47 | }
48 |
--------------------------------------------------------------------------------
/library.properties:
--------------------------------------------------------------------------------
1 | name=SIDPlayer
2 | version=0.0.1
3 | author=Phil Schatzmann
4 | maintainer=Phil Schatzmann
5 | sentence=Player for SID files
6 | paragraph=Player for SID files based on the Arduino Audio Tools
7 | category=Signal Input/Output
8 | url=https://github.com/pschatzmann/SIDPlayer
9 | architectures=*
10 |
--------------------------------------------------------------------------------
/src/SIDAudioSource.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #ifdef ARDUINO
3 | #include "SD.h"
4 | #endif
5 | #include
6 | #include
7 |
8 | #include "audio/comic.h"
9 | #include "audio/commando.h" // Good!
10 | #include "audio/ik.h" // Good!
11 | #include "audio/mikie.h" // Good!
12 | #include "audio/ocean.h" // Good!
13 | #include "audio/yie.h" // Good!
14 |
15 | namespace audio_tools {
16 |
17 | /**
18 | * @brief Information about an individual SID song title
19 | * @author Phil Schatzmann
20 | * @copyright GPLv3
21 | */
22 | struct SidTitle {
23 | uint8_t *data;
24 | size_t size;
25 | int no;
26 | };
27 |
28 | const SidTitle DemoSongs[] = {
29 | {(uint8_t *)music_Commando_sid, music_Commando_sid_len, 0},
30 | {(uint8_t *)Yie_Ar_Kung_Fu_sid, Yie_Ar_Kung_Fu_sid_len, 18},
31 | {(uint8_t *)Mikie_sid, Mikie_sid_len, 0},
32 | {(uint8_t *)Ocean_Loader_2_sid, Ocean_Loader_2_sid_len, 0},
33 | {(uint8_t *)International_Karate_sid, International_Karate_sid_len, 0},
34 | {(uint8_t *)Comic_Bakery_sid, Comic_Bakery_sid_len, 0}
35 | };
36 | const int DemoSongsCount = 6;
37 |
38 | /**
39 | * @brief AudioSource with SID files which are stored in PROGMEM
40 | * @author Phil Schatzmann
41 | * @copyright GPLv3
42 | */
43 | class SIDAudioSource : public AudioSource {
44 | public:
45 | SIDAudioSource() = default;
46 | SIDAudioSource(const SidTitle *songs, int count) {
47 | for (int j = 0; j < count; j++) {
48 | addSong(songs[j]);
49 | }
50 | }
51 |
52 | void addSong(SidTitle song) { songs.push_back(song); }
53 |
54 | /// Reset actual stream and move to root
55 | virtual void begin() {
56 | index = 0;
57 | stream.begin();
58 | }
59 |
60 | /// Returns next audio stream
61 | virtual Stream *nextStream(int offset) {
62 | index += offset;
63 | if (index >= songs.size()) {
64 | index = 0;
65 | }
66 | if (index < 0) {
67 | index = songs.size() - 1;
68 | }
69 | return selectStream(index);
70 | }
71 |
72 | /// Returns audio stream at the indicated index (the index is zero based, so
73 | /// the first value is 0!)
74 | virtual Stream *selectStream(int index) {
75 | LOGI("selectStream: %d", index);
76 | SidTitle& title = songs[index];
77 | stream.setValue(title.data, title.size, FLASH_RAM);
78 | title_size = title.size;
79 | LOGI("actualFileSize: %d", (int)title_size);
80 | return &stream;
81 | }
82 |
83 | size_t actualFileSize() { return title_size; }
84 |
85 | /// File size of actual file
86 | int size() { return songs.size(); }
87 |
88 | /// Clears all songs
89 | void clear() { songs.clear(); }
90 |
91 | /// Returns audio stream by path
92 | virtual Stream *selectStream(const char *path) { return nullptr; }
93 |
94 | protected:
95 | int index = 0;
96 | Vector songs{0};
97 | MemoryStream stream{nullptr,0,true, FLASH_RAM};
98 | size_t title_size = 0;
99 | };
100 |
101 | /**
102 | * @brief Logic to determine the Size of the Stream: File ?
103 | * @author Phil Schatzmann
104 | * @copyright GPLv3
105 | */
106 | class SizeSource {
107 | public:
108 | virtual size_t size() = 0;
109 | };
110 |
111 | #ifdef ARDUINO
112 |
113 | /**
114 | * @brief Provides the size if the audio source is using Files
115 | * @author Phil Schatzmann
116 | * @copyright GPLv3
117 | */
118 | class SizeSourceFile : public SizeSource {
119 | public:
120 | SizeSourceFile(AudioSource &source) { p_source = &source; }
121 | size_t size() override {
122 | // get the current stream (which is actually a file)
123 | File *p_file = (File *)p_source->nextStream(0);
124 | return p_file->size();
125 | };
126 |
127 | protected:
128 | AudioSource *p_source;
129 | };
130 |
131 | #endif
132 |
133 | /**
134 | * @brief Provides the size of the current file for a SIDAudioSource
135 | * @author Phil Schatzmann
136 | * @copyright GPLv3
137 | */
138 | class SIDSizeSource : public SizeSource {
139 | public:
140 | SIDSizeSource(SIDAudioSource &source) { p_source = &source; }
141 | size_t size() { return p_source->actualFileSize(); }
142 |
143 | protected:
144 | SIDAudioSource *p_source;
145 | };
146 |
147 |
148 | } // namespace audiotools
--------------------------------------------------------------------------------
/src/SIDConfig.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | /**
4 | * @brief Defines the size of the memory which is allocated
5 | *
6 | */
7 | #ifndef MAX_DATA_LEN
8 | # define MAX_DATA_LEN 65536
9 | #endif
10 |
11 | /**
12 | * Prevent that we use file sizes which are too big
13 | */
14 | #ifndef MAX_FILE_SIZE
15 | # define MAX_FILE_SIZE 20000
16 | #endif
17 |
18 | /**
19 | * Memory Allocation Logic
20 | * 1) dynamic allocation with malloc
21 | * 2) ESP32 using PSRAM (psmalloc)
22 | * 3) static allocation
23 | * 4) mapped memory (Experimental/avoiding allocations)
24 | *
25 | */
26 | #ifndef MEMORY_ALLOCATION_LOGIC
27 | # define MEMORY_ALLOCATION_LOGIC 3
28 | #endif
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/sid-api/libcsid.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "SIDConfig.h"
3 |
4 | //#define MAX_DATA_LEN 65536
5 |
6 | #define SIDMODEL_8580 8580
7 | #define SIDMODEL_6581 6581
8 |
9 | #define DEFAULT_SAMPLERATE 44100
10 | #define DEFAULT_SIDMODEL SIDMODEL_6581
11 |
12 | extern void libcsid_init(int samplerate, int sidmodel);
13 | extern void libcsid_free();
14 |
15 | //extern int libcsid_load(unsigned char *buffer, int bufferlen, int subtune);
16 | extern int libcsid_load(unsigned char *buffer, int bufferlen);
17 | extern void libcsid_play(int tune_index);
18 |
19 | extern const char *libcsid_getauthor();
20 | extern const char *libcsid_getinfo();
21 | extern const char *libcsid_gettitle();
22 | extern uint8_t libcsid_get_total_tunes_number();
23 | extern uint8_t libcsid_get_default_tune_number();
24 |
25 | extern void libcsid_render(unsigned short *output, int numsamples);
26 |
27 |
--------------------------------------------------------------------------------
/src/sid-api/sidmemory.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | /*
5 | * Memory Manager that avoids to copy any data. We dynamically allocate any accessed
6 | * memory that is not mapped in segments of 256 bytes
7 | * @author Phil Schatzmann
8 | * @copyright GPLv3
9 | */
10 | class SIDMemory {
11 | public:
12 | SIDMemory() = default;
13 |
14 | /// Map data
15 | void set(int start, int offset, uint8_t *data, size_t len) {
16 | fprintf(stderr, "Start: 0x%x\n", start);
17 | fprintf(stderr, "Offset: 0x%x\n", offset);
18 | this->start = start;
19 | this->offset = offset;
20 | this->data = data + offset + 2;
21 | this->len = len - offset - 2;
22 | }
23 |
24 | /// Access via index
25 | uint8_t &operator[](int idx) {
26 | // data e.g. stored in PROGMEM
27 | if (idx >= start && idx < start + len) {
28 | return data[idx - start];
29 | }
30 |
31 | // Addresses that are not mapped yet
32 | int dyn_idx = idx / 256;
33 | int dyn_offset = idx % 256;
34 | uint8_t *tmp = dynamic_data[dyn_idx];
35 | if (tmp == 0) {
36 | // Dynamically allocate memory based on the requested address
37 | tmp = dynamic_data[dyn_idx] = (uint8_t *)calloc(1, 256);
38 | fprintf(stderr, "Allocate: 0x%04x\n", idx);
39 | }
40 | return tmp[dyn_offset];
41 | }
42 |
43 | /// Release all allocated memory
44 | void clear() {
45 | for (int j = 0; j < 256; j++) {
46 | uint8_t *tmp = dynamic_data[j];
47 | if (tmp != nullptr) {
48 | free(tmp);
49 | dynamic_data[j] = nullptr;
50 | }
51 | }
52 | }
53 |
54 | protected:
55 | int start;
56 | int offset;
57 | int len;
58 | uint8_t *data;
59 | uint8_t *dynamic_data[256];
60 | };
--------------------------------------------------------------------------------