Code

We build open-source tools for audio annotation, behavioral experiment control, and multimodal data analysis. Most packages are developed alongside lab projects, but we keep them reusable for researchers working with audio, behavior, and experimental hardware.

Audio annotation

DAS

Deep Audio Segmenter (DAS) annotates song and other acoustic signals directly from raw audio using deep neural networks. It supports single- and multi-channel recordings and can be used through a graphical interface, from the command line, or from Python scripts.

  • Train models from manually annotated recordings and predict song labels on new data.
  • Use the GUI for interactive annotation, training, and prediction workflows.
  • Run scripted or batch analyses with documented command-line and Python interfaces.
  • Follow tutorials, technical notes, and API documentation for adapting DAS to new acoustic datasets.

Behavioral data

xarray-behave

xarray-behave provides the data format and graphical interface used by DAS for inspecting and curating multimodal behavioral recordings. It builds on xarray so that signals, annotations, metadata, and aligned measurements can be represented with labeled dimensions instead of loose arrays and sidecar files.

  • Organize behavioral datasets with explicit coordinates, dimensions, and metadata.
  • Keep audio, poses, video-derived measurements, stimulus timing, and annotations aligned in one analysis-friendly structure.
  • Use the GUI and examples as a starting point for inspecting and curating complex experiments.
  • Share reproducible data workflows around a standard Python data model.

Experiment control

etho

etho is a Python toolkit for configuring and running behavioral experiments. It focuses on separating experiment protocols, stimulus playlists, hardware configuration, and logging so that setups can be reused across experiments without rewriting control code.

  • Start experiments from the command line or open the graphical interface for interactive control.
  • Define global configuration, experiment protocols, and stimulus playlists in separate files.
  • Integrate hardware such as cameras, National Instruments DAQmx cards, DLP projectors, Raspberry Pi devices, and ScanImage setups.
  • Collect local and broadcast logs from experiment services for debugging and record keeping.

More code

Other repositories

Additional repositories include project-specific analysis code, smaller helper packages, and experimental tools that support ongoing lab work. Publication pages also link to code and data when they are available for a specific study.

  • Browse the lab organization for shared packages, analysis projects, and documentation sources.
  • Use repository issues for bug reports, installation problems, or feature requests on maintained projects.