.gitignore
CLAUDE.md
LICENSE.txt
MIGRATION.md
pyproject.toml
readme.md
readthedocs.yml
.github/workflows/deploy-docs.yml
.github/workflows/publish-to-pypi.yml
.github/workflows/test.yml
docs/Makefile
docs/api_builder.py
docs/environment.yml
docs/make.bat
docs/restartability.md
docs/substitutions.sub
docs/threading.md
docs/source/architecture.rst
docs/source/conf.py
docs/source/context.rst
docs/source/creating_experiment.rst
docs/source/data_processing.rst
docs/source/development.rst
docs/source/example_experiment.rst
docs/source/index.rst
docs/source/installing.rst
docs/source/io_manifest.rst
docs/source/paradigm_overview.rst
docs/source/plugin_reference.rst
docs/source/screenshots.rst
docs/source/waveforms.rst
docs/source/api/modules.rst
docs/source/api/psi.application.rst
docs/source/api/psi.context.rst
docs/source/api/psi.controller.calibration.rst
docs/source/api/psi.controller.engines.biosemi.rst
docs/source/api/psi.controller.engines.rst
docs/source/api/psi.controller.engines.tdt.rst
docs/source/api/psi.controller.rst
docs/source/api/psi.core.enaml.rst
docs/source/api/psi.core.rst
docs/source/api/psi.data.rst
docs/source/api/psi.data.sinks.rst
docs/source/api/psi.experiment.rst
docs/source/api/psi.rst
docs/source/api/psi.templates.io.rst
docs/source/api/psi.templates.rst
docs/source/api/psi.token.rst
docs/source/resources/DPOAE_animation.gif
docs/source/resources/chirp_animation.gif
docs/source/software/abr-postprocess-screenshot.png
docs/source/software/index.rst
examples/logging_levels.py
examples/app/io_manifest.enaml
examples/app/launch.py
examples/app/simple_experiment.enaml
examples/app/startstop_controller.enaml
examples/app/custom-stop-override/io_manifest.enaml
examples/app/custom-stop-override/launch.py
examples/app/custom-stop-override/startstop_controller.enaml
examples/hardware/acquire_chirp_waveform.py
examples/notebooks/Calibration tutorial.ipynb
examples/notebooks/DPOAE analysis from raw data.ipynb
examples/notebooks/In-ear click calibration.ipynb
examples/notebooks/Test free-field speaker calibration.ipynb
examples/notebooks/Test free-field speaker level.ipynb
examples/notebooks/Tone and chirp calibration.ipynb
examples/notebooks/Two starship calibration.ipynb
examples/notebooks/simple_manifest.enaml
examples/plots/test_plots.enaml
examples/widgets/__init__.py
examples/widgets/electrode_coordinate_selector.enaml
examples/widgets/friendly_cartesian_product_selector.enaml
examples/widgets/test_dataframe_view.enaml
examples/widgets/test_freq_level_view.enaml
psi/__init__.py
psi/_version.py
psi/util.py
psi/version.py
psi/application/__init__.py
psi/application/psi_launcher.py
psi/application/workbench.py
psi/context/__init__.py
psi/context/api.py
psi/context/choice.py
psi/context/context_item.py
psi/context/context_item_manifest.enaml
psi/context/context_item_view.enaml
psi/context/expression.py
psi/context/manifest.enaml
psi/context/plugin.py
psi/context/selector.py
psi/context/selector_manifest.enaml
psi/context/symbol.py
psi/controller/__init__.py
psi/controller/api.py
psi/controller/channel.py
psi/controller/channel_manifest.enaml
psi/controller/controller_commands.py
psi/controller/dispatcher.py
psi/controller/engine.py
psi/controller/engine_manifest.enaml
psi/controller/input.py
psi/controller/input_manifest.enaml
psi/controller/input_primitives.enaml
psi/controller/io_manager.py
psi/controller/manifest.enaml
psi/controller/output.py
psi/controller/output_commands.py
psi/controller/output_manifest.enaml
psi/controller/plugin.py
psi/controller/token_context.py
psi/controller/util.py
psi/controller/calibration/__init__.py
psi/controller/calibration/acquire.py
psi/controller/calibration/api.py
psi/controller/calibration/calibrate.py
psi/controller/calibration/calibrate_manifest.enaml
psi/controller/calibration/chirp.py
psi/controller/calibration/click.py
psi/controller/calibration/manifest.enaml
psi/controller/calibration/plugin.py
psi/controller/calibration/tone.py
psi/controller/engines/__init__.py
psi/controller/engines/callback.py
psi/controller/engines/nidaq.py
psi/controller/engines/null.py
psi/controller/engines/thread.py
psi/controller/engines/biosemi/__init__.py
psi/controller/engines/biosemi/channel_maps.py
psi/controller/engines/biosemi/electrode_coords.py
psi/controller/engines/biosemi/electrode_coords_32.csv
psi/controller/engines/biosemi/electrode_coords_64.csv
psi/controller/engines/biosemi/electrode_selector.py
psi/controller/engines/biosemi/electrode_selector_view.enaml
psi/controller/engines/biosemi/exg_coords.csv
psi/controller/engines/biosemi/inputs.py
psi/controller/engines/biosemi/mapped_electrode_coords_32_exg.csv
psi/controller/engines/biosemi/mapped_electrode_coords_64_exg.csv
psi/controller/engines/biosemi/modifier_button.py
psi/controller/engines/biosemi/plots.enaml
psi/controller/engines/soundcard/__init__.py
psi/controller/engines/soundcard/api.py
psi/controller/engines/soundcard/measure_delay.py
psi/controller/engines/soundcard/playrec.py
psi/controller/engines/soundcard/standard_io.enaml
psi/controller/engines/tdt/RZ6-debugging.rcx
psi/controller/engines/tdt/RZ6-standard-Medusa4Z.rcx
psi/controller/engines/tdt/RZ6-standard-RA4PAx20.rcx
psi/controller/engines/tdt/__init__.py
psi/controller/engines/tdt/api.py
psi/controller/engines/tdt/standard_io.enaml
psi/core/__init__.py
psi/core/api.py
psi/core/exceptions.py
psi/core/experiment_action.py
psi/core/metadata_item.py
psi/core/preferences.py
psi/core/status_item.py
psi/core/enaml/__init__.py
psi/core/enaml/api.py
psi/core/enaml/contribution.py
psi/core/enaml/dock_item.py
psi/core/enaml/editable_table_widget.py
psi/core/enaml/event_filter.py
psi/core/enaml/manifest.enaml
psi/core/enaml/plugin.py
psi/core/enaml/psi_dock_item.enaml
psi/core/enaml/util.py
psi/data/__init__.py
psi/data/api.py
psi/data/manifest.enaml
psi/data/plot_groups.py
psi/data/plot_ranges.py
psi/data/plot_util.py
psi/data/plots.py
psi/data/plots_manifest.enaml
psi/data/plugin.py
psi/data/sink.enaml
psi/data/sinks/__init__.py
psi/data/sinks/api.py
psi/data/sinks/base_store.enaml
psi/data/sinks/config_store.enaml
psi/data/sinks/epoch_counter.enaml
psi/data/sinks/event_log.enaml
psi/data/sinks/logging.enaml
psi/data/sinks/queue_status.enaml
psi/data/sinks/table_store.enaml
psi/data/sinks/text_store.enaml
psi/data/sinks/trial_log_counter.enaml
psi/data/sinks/zarr_store.enaml
psi/experiment/__init__.py
psi/experiment/api.py
psi/experiment/dock_area_styles.enaml
psi/experiment/dock_layout_serializer.py
psi/experiment/experiment_commands.py
psi/experiment/manifest.enaml
psi/experiment/paradigm_description.py
psi/experiment/plugin.py
psi/experiment/psi-logo.png
psi/experiment/util.py
psi/experiment/workbench_window.enaml
psi/experiment/workspace.py
psi/paradigms/core/io_mixins.enaml
psi/paradigms/core/signal_mixins.enaml
psi/paradigms/core/websocket_mixins.enaml
psi/templates/__init__.py
psi/templates/config.txt
psi/templates/io/Biosemi32.enaml
psi/templates/io/Biosemi64.enaml
psi/templates/io/Medusa4ZTDT.enaml
psi/templates/io/PXIe-1062.enaml
psi/templates/io/RA4PATDT.enaml
psi/templates/io/__init__.py
psi/templates/io/_bare_bones.enaml
psi/templates/io/_gonogo_behavior.enaml
psi/templates/io/_ni-bare-bones.enaml
psi/templates/io/_noise_exposure.enaml
psi/templates/io/_pxi-4461.enaml
psi/templates/io/_soundcard.enaml
psi/templates/settings/layout/abr_io/default.layout
psi/templates/settings/layout/appetitive_gonogo_food/default.layout
psi/templates/settings/layout/dpoae_io/default.layout
psi/templates/settings/layout/noise_exposure/default.layout
psi/templates/settings/layout/pistonphone_calibration/default.layout
psi/templates/settings/layout/pt_calibration_chirp/default.layout
psi/templates/settings/layout/pt_calibration_golay/default.layout
psi/templates/settings/layout/speaker_calibration_chirp/default.layout
psi/templates/settings/layout/speaker_calibration_golay/default.layout
psi/templates/settings/layout/speaker_calibration_tone/default.layout
psi/templates/settings/preferences/abr_io/debugging (no in-ear calibration).preferences
psi/templates/settings/preferences/abr_io/default.preferences
psi/templates/settings/preferences/appetitive_gonogo_food/01 - nose-poke training.preferences
psi/templates/settings/preferences/appetitive_gonogo_food/02 - nose-poke training (must go to hopper for pellet).preferences
psi/templates/settings/preferences/appetitive_gonogo_food/03 - nogo training.preferences
psi/templates/settings/preferences/appetitive_gonogo_food/04 - AM tone testing.preferences
psi/templates/settings/preferences/appetitive_gonogo_food/default.preferences
psi/templates/settings/preferences/dpoae_io/default.preferences
psi/templates/settings/preferences/noise_exposure/default.preferences
psi/templates/settings/preferences/pistonphone_calibration/default.preferences
psi/templates/settings/preferences/pt_calibration_chirp/default.preferences
psi/templates/settings/preferences/pt_calibration_golay/default.preferences
psi/templates/settings/preferences/speaker_calibration_chirp/default.preferences
psi/templates/settings/preferences/speaker_calibration_golay/default.preferences
psi/templates/settings/preferences/speaker_calibration_tone/default.preferences
psi/token/__init__.py
psi/token/api.py
psi/token/block.py
psi/token/manifest.enaml
psi/token/plugin.py
psi/token/primitives.enaml
psiexperiment.egg-info/PKG-INFO
psiexperiment.egg-info/SOURCES.txt
psiexperiment.egg-info/dependency_links.txt
psiexperiment.egg-info/entry_points.txt
psiexperiment.egg-info/requires.txt
psiexperiment.egg-info/scm_file_list.json
psiexperiment.egg-info/scm_version.json
psiexperiment.egg-info/top_level.txt
scripts/make_icon.py
scripts/examples/experiment_launcher.bat
scripts/examples/launch_video.bat
scripts/examples/robocopy_backup.bat
tests/__init__.py
tests/conftest.py
tests/test_api_imports.py
tests/test_cfts.py
tests/test_choice.py
tests/test_config.py
tests/test_context_items.py
tests/test_controller_commands.py
tests/test_core.py
tests/test_core_error.py
tests/test_core_error_manifest.enaml
tests/test_core_manifest.enaml
tests/test_dispatcher.py
tests/test_dock_layout_serializer.py
tests/test_experiment_action.py
tests/test_experiment_commands.py
tests/test_experiment_plugin.py
tests/test_experiment_preferences.py
tests/test_expression.py
tests/test_import_side_effects.py
tests/test_input_blocks.py
tests/test_io_manager.py
tests/test_null_engine.py
tests/test_output.py
tests/test_output_queue.py
tests/test_paradigm_description.py
tests/test_playrec.py
tests/test_selector.py
tests/test_token_block.py
tests/test_token_context.py
tests/test_util.py
tests/test_util_extras.py
tests/test_util_signalbuffer.py
tests/test_widgets.py
tests/application/test_base.py
tests/application/test_load_io_manifest.py
tests/application/test_logging.py
tests/application/test_workbench.py
tests/calibration/test_calibration_plugin.py
tests/calibration/test_merge_results.py
tests/calibration/test_tone_calibration.py
tests/data/conftest.py
tests/data/test_base_store.py
tests/data/test_config_store.py
tests/data/test_data_plugin.py
tests/data/test_epoch_counter.py
tests/data/test_event_log.py
tests/data/test_plot_groups.py
tests/data/test_plot_ranges.py
tests/data/test_plot_util.py
tests/data/test_plots.py
tests/data/test_queue_status.py
tests/data/test_table_store.py
tests/data/test_text_sink.py
tests/data/test_zarr_sink.py
tests/workbench/__init__.py
tests/workbench/conftest.py
tests/workbench/helper_manifest.enaml
tests/workbench/test_context.py
tests/workbench/test_controller.py
tests/workbench/test_data.py
tests/workbench/test_engine.py
tests/workbench/test_experiment_actions.py
tests/workbench/test_token.py
tools/check_enaml_layering.py
tools/convert_layout.py