Stop tracking session and AGENTS files
This commit is contained in:
parent
a17a7e448c
commit
8a03269298
99
AGENTS.md
99
AGENTS.md
|
|
@ -1,99 +0,0 @@
|
||||||
# AGENTS.md - Codebase Guidelines
|
|
||||||
|
|
||||||
## Project Overview
|
|
||||||
|
|
||||||
This repository contains research code for musical set theory and tonal space analysis, primarily implemented as a Jupyter notebook (`compact_sets_optimized_2.ipynb`). The code deals with harmonic series, pitch class sets, and related musical computations.
|
|
||||||
|
|
||||||
## Build, Lint, and Test Commands
|
|
||||||
|
|
||||||
### Jupyter Notebooks
|
|
||||||
- **Run notebook**: `jupyter notebook compact_sets_optimized_2.ipynb` or `jupyter lab`
|
|
||||||
- **Execute single cell**: Select cell and press `Shift+Enter`
|
|
||||||
- **Run all cells**: `Cell > Run All` in Jupyter menu
|
|
||||||
|
|
||||||
### Python Environment
|
|
||||||
No formal build system or package manager is configured. To run Python code:
|
|
||||||
```bash
|
|
||||||
python3 -m notebook compact_sets_optimized_2.ipynb
|
|
||||||
# or convert to script:
|
|
||||||
jupyter nbconvert --to python compact_sets_optimized_2.ipynb
|
|
||||||
```
|
|
||||||
|
|
||||||
### Testing
|
|
||||||
No test framework is configured. Manual testing is done within the notebook using assert statements and cell-by-cell verification.
|
|
||||||
|
|
||||||
### Linting
|
|
||||||
No linter is configured. For Python files, you may optionally use:
|
|
||||||
```bash
|
|
||||||
ruff check .
|
|
||||||
# or
|
|
||||||
pylint **/*.py
|
|
||||||
```
|
|
||||||
|
|
||||||
## Code Style Guidelines
|
|
||||||
|
|
||||||
### General Principles
|
|
||||||
- Write clear, readable code with meaningful variable names
|
|
||||||
- Add comments for complex mathematical or music theory operations
|
|
||||||
- Keep functions focused on single responsibilities
|
|
||||||
|
|
||||||
### Python Code Style (for any .py files)
|
|
||||||
- **Formatting**: Follow PEP 8
|
|
||||||
- **Line length**: Maximum 100 characters
|
|
||||||
- **Indentation**: 4 spaces (no tabs)
|
|
||||||
- **Naming**:
|
|
||||||
- Functions/variables: `snake_case` (e.g., `hs_array_to_fr`, `expand_pitch`)
|
|
||||||
- Constants: `UPPER_SNAKE_CASE` (e.g., `MAX_OCTAVES`)
|
|
||||||
- Classes: `PascalCase` (if applicable)
|
|
||||||
- **Imports**: Standard library first, then third-party
|
|
||||||
```python
|
|
||||||
from itertools import chain, combinations
|
|
||||||
from math import prod, log
|
|
||||||
import networkx as nx
|
|
||||||
from fractions import Fraction
|
|
||||||
```
|
|
||||||
- **Type hints**: Use when beneficial for clarity
|
|
||||||
- **Error handling**: Use specific exception types, provide meaningful messages
|
|
||||||
|
|
||||||
### Jupyter Notebook Style
|
|
||||||
- Keep cells relatively small and focused
|
|
||||||
- Use markdown cells to explain music theory concepts
|
|
||||||
- Name notebook cells for navigation (view > collapse pnl)
|
|
||||||
- Restart kernel and run all before sharing
|
|
||||||
|
|
||||||
### Key Patterns in This Codebase
|
|
||||||
|
|
||||||
#### Pitch Representation
|
|
||||||
- Pitches stored as tuples: `(octave, harmonic_series_index, ...)`
|
|
||||||
- Example: `(0, 1, 5)` represents the 5th partial of the fundamental
|
|
||||||
|
|
||||||
#### Functions
|
|
||||||
- `hs_array_to_fr`: Convert harmonic series array to frequency ratio
|
|
||||||
- `hs_array_to_cents`: Convert to cents (1200 per octave)
|
|
||||||
- `expand_pitch`/`collapse_pitch`: Manage pitch octave normalization
|
|
||||||
- `transpose_pitch`: Apply pitch transformations
|
|
||||||
|
|
||||||
### File Organization
|
|
||||||
- Main code: `compact_sets_optimized_2.ipynb`
|
|
||||||
- Data: `sirens.txt` (likely reference data for sonic examples)
|
|
||||||
- Audio: `compact_sets_play_siren.scd` (SuperCollider patch)
|
|
||||||
|
|
||||||
## Notes for Agents
|
|
||||||
|
|
||||||
1. **Backup before edits**: The notebook is complex; make backups before major changes
|
|
||||||
2. **Verify calculations**: Musical intervals and frequency calculations should be verified
|
|
||||||
3. **No CI/CD**: This is a research sketch repository; no automated pipelines exist
|
|
||||||
4. **Dependencies**: Key libraries used include `networkx`, `itertools`, `math`, `fractions`
|
|
||||||
|
|
||||||
## Extending This Codebase
|
|
||||||
|
|
||||||
If adding Python files:
|
|
||||||
1. Create a `src/` directory for modules
|
|
||||||
2. Add `pyproject.toml` for package management if needed
|
|
||||||
3. Consider adding `pytest` for testing
|
|
||||||
4. Add type hints to new functions
|
|
||||||
|
|
||||||
If adding notebooks:
|
|
||||||
1. Follow existing naming: `{topic}_optimized_{version}.ipynb`
|
|
||||||
2. Import from shared modules rather than duplicating code
|
|
||||||
3. Use clear markdown headers
|
|
||||||
6468
session-ses_328e.md
6468
session-ses_328e.md
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue