head_music 8.1.1 → 8.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +25 -0
  4. data/.github/dependabot.yml +59 -0
  5. data/.github/pull_request_template.md +26 -0
  6. data/.github/workflows/ci.yml +68 -0
  7. data/.github/workflows/release.yml +49 -0
  8. data/.github/workflows/security.yml +32 -0
  9. data/.gitignore +16 -1
  10. data/.rubocop.yml +4 -1
  11. data/.yardopts +16 -0
  12. data/CHANGELOG.md +212 -0
  13. data/CODE_OF_CONDUCT.md +2 -0
  14. data/CONTRIBUTING.md +143 -0
  15. data/Gemfile +7 -2
  16. data/Gemfile.lock +147 -0
  17. data/README.md +100 -11
  18. data/Rakefile +30 -0
  19. data/head_music.gemspec +13 -2
  20. data/lib/head_music/analysis/diatonic_interval.rb +1 -1
  21. data/lib/head_music/analysis/sonority.rb +1 -1
  22. data/lib/head_music/content/staff.rb +13 -3
  23. data/lib/head_music/content/voice.rb +8 -0
  24. data/lib/head_music/instruments/instrument.rb +1 -3
  25. data/lib/head_music/instruments/instrument_families.yml +36 -2
  26. data/lib/head_music/instruments/instruments.yml +3 -0
  27. data/lib/head_music/instruments/variant.rb +1 -1
  28. data/lib/head_music/locales/de.yml +20 -0
  29. data/lib/head_music/locales/es.yml +19 -0
  30. data/lib/head_music/locales/fr.yml +19 -0
  31. data/lib/head_music/locales/it.yml +20 -0
  32. data/lib/head_music/locales/ru.yml +21 -2
  33. data/lib/head_music/rudiment/solmization.rb +1 -1
  34. data/lib/head_music/style/annotation.rb +4 -4
  35. data/lib/head_music/style/guidelines/consonant_climax.rb +2 -2
  36. data/lib/head_music/version.rb +1 -1
  37. metadata +50 -8
  38. data/.circleci/config.yml +0 -22
  39. data/.circleci/setup-rubygems.sh +0 -3
  40. data/.travis.yml +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d1ca0a4ee8274a955259afdd1c915e09fba454522157a1ef687f8760ec064ed
4
- data.tar.gz: 902a3b6f27f50b2a8f354adb22cbcc460798f1916f760f475e9f6c1d6583cc93
3
+ metadata.gz: 77530f6691ab779c127d7324218a10a854bb8fb96ccaf0244accd9dbc878f24f
4
+ data.tar.gz: 05b082c0029817aa3b3c6773c876000d61b7787915c0f157ad9af966da3ad73c
5
5
  SHA512:
6
- metadata.gz: e80f4d2337cabdf0cedd69bc0cb9ad54e73bd0f1a9774ccbfc2bcbe70b28d90899ff55debe9917dc5f62776e90ee7d09fd28530ea10fa28892ffc46e0d430c56
7
- data.tar.gz: 3d278d05d015f73e25633e3de2ea47fc90c8d8c8377bd4dff6ba13772039e8cce6824288a98e05e2cf31080dfac4f3b8010d84895dc62f24080699574958f8df
6
+ metadata.gz: 965572974769529a7d971b0156c492195e9c7ea491d97e9445b3cc53714d802ffc0f2680559cb8449971391ef2b406f3a6283ca8ce6d8103c47713e71de954df
7
+ data.tar.gz: 6e5444274c959f209861c1622002351d255050e6faff66d2b69033d90c372736e15a2c74b8fb66e01841dfc5c1f29887cc753acd736d54e21e1d29608c0ee11f
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ ```ruby
16
+ # Example code that demonstrates the issue
17
+ ```
18
+
19
+ **Expected behavior**
20
+ A clear and concise description of what you expected to happen.
21
+
22
+ **Actual behavior**
23
+ What actually happened instead.
24
+
25
+ **Environment:**
26
+ - Ruby version: [e.g. 3.3.0]
27
+ - head_music version: [e.g. 8.1.1]
28
+ - OS: [e.g. macOS 14.0]
29
+
30
+ **Additional context**
31
+ Add any other context about the problem here.
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Example usage**
20
+ ```ruby
21
+ # Show how the feature would be used
22
+ ```
23
+
24
+ **Additional context**
25
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,59 @@
1
+ version: 2
2
+ updates:
3
+ # Enable version updates for Bundler (Ruby dependencies)
4
+ - package-ecosystem: "bundler"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
8
+ day: "monday"
9
+ time: "09:00"
10
+ timezone: "America/Los_Angeles"
11
+ open-pull-requests-limit: 5
12
+ reviewers:
13
+ - "roberthead"
14
+ assignees:
15
+ - "roberthead"
16
+ commit-message:
17
+ prefix: "deps"
18
+ prefix-development: "deps-dev"
19
+ include: "scope"
20
+ labels:
21
+ - "dependencies"
22
+ # Group minor and patch updates together to reduce noise
23
+ groups:
24
+ minor-and-patch:
25
+ patterns:
26
+ - "*"
27
+ update-types:
28
+ - "minor"
29
+ - "patch"
30
+ # Allow both direct and indirect dependencies
31
+ allow:
32
+ - dependency-type: "direct"
33
+ - dependency-type: "indirect"
34
+ # Ignore major version updates for stable dependencies
35
+ ignore:
36
+ - dependency-name: "activesupport"
37
+ update-types: ["version-update:semver-major"]
38
+ - dependency-name: "i18n"
39
+ update-types: ["version-update:semver-major"]
40
+
41
+ # Enable version updates for GitHub Actions
42
+ - package-ecosystem: "github-actions"
43
+ directory: "/"
44
+ schedule:
45
+ interval: "weekly"
46
+ day: "monday"
47
+ time: "09:00"
48
+ timezone: "America/Los_Angeles"
49
+ open-pull-requests-limit: 3
50
+ reviewers:
51
+ - "roberthead"
52
+ assignees:
53
+ - "roberthead"
54
+ commit-message:
55
+ prefix: "ci"
56
+ include: "scope"
57
+ labels:
58
+ - "ci"
59
+ - "dependencies"
@@ -0,0 +1,26 @@
1
+ ## Description
2
+ <!-- Describe your changes in detail -->
3
+
4
+ ## Type of Change
5
+ <!-- Mark relevant options with an "x" -->
6
+
7
+ - [ ] Bug fix (non-breaking change which fixes an issue)
8
+ - [ ] New feature (non-breaking change which adds functionality)
9
+ - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10
+ - [ ] Documentation update
11
+
12
+ ## Testing
13
+ <!-- Describe the tests you ran to verify your changes -->
14
+
15
+ - [ ] All tests pass locally with `bundle exec rspec`
16
+ - [ ] Code follows style guidelines (`bundle exec rubocop` passes)
17
+ - [ ] I have added tests that prove my fix is effective or that my feature works
18
+ - [ ] New and existing unit tests pass locally with my changes
19
+
20
+ ## Checklist
21
+
22
+ - [ ] My code follows the style guidelines of this project
23
+ - [ ] I have performed a self-review of my own code
24
+ - [ ] I have commented my code, particularly in hard-to-understand areas
25
+ - [ ] I have made corresponding changes to the documentation
26
+ - [ ] My changes generate no new warnings
@@ -0,0 +1,68 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ ruby-version: ['3.3.0', '3.3', '3.4']
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Set up Ruby ${{ matrix.ruby-version }}
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ bundler-cache: true # runs 'bundle install' and caches installed gems
25
+
26
+ - name: Run tests
27
+ run: bundle exec rspec
28
+
29
+ - name: Upload coverage to Codecov
30
+ if: matrix.ruby-version == '3.3.0'
31
+ uses: codecov/codecov-action@v4
32
+ with:
33
+ token: ${{ secrets.CODECOV_TOKEN }}
34
+ fail_ci_if_error: false
35
+ verbose: true
36
+
37
+ lint:
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+
42
+ - name: Set up Ruby
43
+ uses: ruby/setup-ruby@v1
44
+ with:
45
+ ruby-version: '3.3.0'
46
+ bundler-cache: true
47
+
48
+ - name: Run RuboCop
49
+ run: bundle exec rubocop
50
+
51
+ build:
52
+ runs-on: ubuntu-latest
53
+ steps:
54
+ - uses: actions/checkout@v4
55
+
56
+ - name: Set up Ruby
57
+ uses: ruby/setup-ruby@v1
58
+ with:
59
+ ruby-version: '3.3.0'
60
+ bundler-cache: true
61
+
62
+ - name: Build gem
63
+ run: gem build *.gemspec
64
+
65
+ - name: Check gem
66
+ run: |
67
+ gem install *.gem
68
+ gem specification *.gem
@@ -0,0 +1,49 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ release:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: write
13
+ id-token: write
14
+
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Set up Ruby
19
+ uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: '3.3.0'
22
+ bundler-cache: true
23
+
24
+ - name: Run tests
25
+ run: bundle exec rspec
26
+
27
+ - name: Run linter
28
+ run: bundle exec rubocop
29
+
30
+ - name: Build gem
31
+ run: gem build *.gemspec
32
+
33
+ - name: Create GitHub Release
34
+ uses: softprops/action-gh-release@v1
35
+ with:
36
+ files: '*.gem'
37
+ generate_release_notes: true
38
+ env:
39
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40
+
41
+ - name: Publish to RubyGems
42
+ run: |
43
+ mkdir -p $HOME/.gem
44
+ touch $HOME/.gem/credentials
45
+ chmod 0600 $HOME/.gem/credentials
46
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
47
+ gem push *.gem
48
+ env:
49
+ GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
@@ -0,0 +1,32 @@
1
+ name: Security
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+ schedule:
9
+ # Run security checks daily at 9 AM UTC
10
+ - cron: '0 9 * * *'
11
+
12
+ jobs:
13
+ security:
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: '3.3.0'
23
+ bundler-cache: true
24
+
25
+ - name: Install bundler-audit
26
+ run: gem install bundler-audit
27
+
28
+ - name: Run bundler-audit
29
+ run: bundle-audit check --update
30
+
31
+ - name: Run RuboCop Security
32
+ run: bundle exec rubocop --only Security
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -9,5 +8,21 @@
9
8
  /tmp/
10
9
  /spec/examples.txt
11
10
  *.gem
11
+ .DS_Store
12
12
 
13
+ # Editor directories and files
14
+ .idea/
15
+ .vscode/
16
+ *.swp
17
+ *.swo
18
+ *~
19
+
20
+ # RubyMine
21
+ .idea/
22
+
23
+ # Local environment
24
+ .env.local
25
+ .env.*.local
26
+
27
+ # Claude settings
13
28
  **/.claude/settings.local.json
data/.rubocop.yml CHANGED
@@ -13,7 +13,7 @@ AllCops:
13
13
  Exclude:
14
14
  - public/**/*
15
15
  - vendor/**/*
16
- TargetRubyVersion: 3.1.4
16
+ TargetRubyVersion: 3.3.0
17
17
 
18
18
  RSpec:
19
19
  Enabled: true
@@ -33,3 +33,6 @@ RSpec/MultipleExpectations:
33
33
 
34
34
  RSpec/NestedGroups:
35
35
  Max: 5
36
+
37
+ RSpec/MultipleMemoizedHelpers:
38
+ Max: 12
data/.yardopts ADDED
@@ -0,0 +1,16 @@
1
+ --markup markdown
2
+ --markup-provider kramdown
3
+ --output-dir doc
4
+ --protected
5
+ --private
6
+ --embed-mixins
7
+ --hide-void-return
8
+ --no-progress
9
+ --title "HeadMusic API Documentation"
10
+ --quiet
11
+ lib/**/*.rb
12
+ -
13
+ README.md
14
+ CHANGELOG.md
15
+ CONTRIBUTING.md
16
+ LICENSE.txt
data/CHANGELOG.md ADDED
@@ -0,0 +1,212 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [8.2.1] - 2025-06-21
11
+
12
+ ### Added
13
+ - Added missing modern instruments to all locales (ukulele family, electronic instruments, world instruments)
14
+ - Added pitched/unpitched instrument classifications to all non-English locales
15
+ - Added new instrument families: bass_drum, tambourine, and celesta
16
+
17
+ ### Changed
18
+ - Improved instrument family classifications (added fretted/unfretted, valve categorizations)
19
+ - Removed incorrect percussion classification from harpsichord and clavichord
20
+
21
+ ### Fixed
22
+ - Fixed Russian translation errors (tritone and perfect_unison)
23
+
24
+ ## [8.2.0] - 2025-06-20
25
+
26
+ ### Added
27
+ - Added comprehensive GitHub Actions CI/CD workflows (test matrix, security scanning, automated releases)
28
+ - Added security tooling with bundler-audit for vulnerability scanning
29
+ - Added YARD documentation generation with kramdown support
30
+ - Added SimpleCov coverage tracking with 90% threshold and branch coverage
31
+ - Added Dependabot configuration for automated dependency updates
32
+ - Added inclusive CONTRIBUTING.md with comprehensive contribution guidelines
33
+ - Added complete CHANGELOG.md tracking version history
34
+ - Added GitHub issue templates (bug reports, feature requests) and PR template
35
+ - Added gemspec metadata fields for better gem documentation and security
36
+ - Added rubygems_mfa_required for enhanced security
37
+
38
+ ### Changed
39
+ - Standardized Ruby version requirement to 3.3.0 across all configuration files
40
+ - Updated and organized development dependencies (removed deprecated codeclimate-test-reporter)
41
+ - Enhanced .gitignore with modern patterns and restored Gemfile.lock tracking
42
+ - Improved RuboCop configuration (increased MultipleMemoizedHelpers max to 12)
43
+ - Enhanced Rakefile with quality, documentation, and coverage tasks
44
+
45
+ ### Removed
46
+ - Removed outdated Travis CI and CircleCI configurations (replaced with GitHub Actions)
47
+
48
+ ## [8.1.1] - 2024-12-20
49
+
50
+ ### Changed
51
+ - Tweaked gemspec summary
52
+
53
+ ## [8.1.0] - 2024-12-20
54
+
55
+ ### Added
56
+ - Enhanced solmization support
57
+
58
+ ### Changed
59
+ - Code cleanup and improvements
60
+ - Improved spec coverage
61
+ - Refactored melodic intervals to separate pitch and note concerns
62
+
63
+ ## [8.0.2] - 2024-12-19
64
+
65
+ ### Fixed
66
+ - RuboCop style fixes
67
+
68
+ ### Changed
69
+ - Improved RuboCop configuration
70
+
71
+ ## [8.0.0] - 2024-12-19
72
+
73
+ ### Changed
74
+ - Major reorganization: moved specs into folders
75
+ - Organized models into modules for better structure
76
+ - **BREAKING**: Module structure changes may require updates to require statements
77
+
78
+ ## [7.0.5] - 2024-01-20
79
+
80
+ ### Changed
81
+ - Upgraded to Ruby 3.3.0
82
+ - Improvements to Spanish translations of recorder
83
+
84
+ ## [7.0.4] - 2024-01-15
85
+
86
+ ### Added
87
+ - Rudiment translations
88
+ - Instrument classification translations
89
+ - Interval translations
90
+
91
+ ## [7.0.3] - 2024-01-10
92
+
93
+ ### Added
94
+ - Russian instrument translations using Cyrillic characters
95
+ - Spanish translations for instruments
96
+
97
+ ### Changed
98
+ - Uncapitalized languages in Italian and Spanish translations
99
+ - Spanish translation corrections and improvements
100
+ - Translation file cleanup
101
+
102
+ ## [7.0.2] - 2023-12-15
103
+
104
+ ### Changed
105
+ - Various improvements and bug fixes
106
+
107
+ ## [7.0.1] - 2023-12-10
108
+
109
+ ### Changed
110
+ - Minor improvements and bug fixes
111
+
112
+ ## [7.0.0] - 2023-12-01
113
+
114
+ ### Changed
115
+ - Major version bump indicating significant changes
116
+ - **BREAKING**: Check upgrade guide for migration instructions
117
+
118
+ ## [6.0.1] - 2023-11-15
119
+
120
+ ### Fixed
121
+ - Bug fixes and improvements
122
+
123
+ ## [6.0.0] - 2023-11-01
124
+
125
+ ### Changed
126
+ - Major architectural improvements
127
+ - **BREAKING**: API changes may require code updates
128
+
129
+ ## [5.0.0] - 2023-10-15
130
+
131
+ ### Changed
132
+ - Significant refactoring of core components
133
+ - **BREAKING**: Check documentation for new API
134
+
135
+ ## [4.0.1] - 2023-09-20
136
+
137
+ ### Fixed
138
+ - Minor bug fixes
139
+
140
+ ## [4.0.0] - 2023-09-15
141
+
142
+ ### Added
143
+ - Expanded instrument support
144
+ - Instrument data improvements
145
+
146
+ ### Changed
147
+ - Enhanced Instrument class functionality
148
+
149
+ ## [3.0.1] - 2023-08-20
150
+
151
+ ### Fixed
152
+ - Minor improvements and fixes
153
+
154
+ ## [3.0.0] - 2023-08-15
155
+
156
+ ### Changed
157
+ - Major version update with architectural improvements
158
+ - **BREAKING**: Significant API changes
159
+
160
+ ## [2.0.0] - 2023-07-01
161
+
162
+ ### Changed
163
+ - Major refactoring of core functionality
164
+ - **BREAKING**: API redesign
165
+
166
+ ## [1.0.0] - 2023-06-01
167
+
168
+ ### Added
169
+ - First stable release
170
+ - Complete music theory rudiments implementation
171
+ - Comprehensive scale and interval support
172
+ - Basic composition and voice handling
173
+
174
+ ## [0.29.0] - 2023-05-15
175
+
176
+ ### Added
177
+ - Additional music theory features
178
+ - Improved documentation
179
+
180
+ ## [0.28.0] - 2023-05-01
181
+
182
+ ### Changed
183
+ - Performance improvements
184
+ - Code organization enhancements
185
+
186
+ ## Earlier versions
187
+
188
+ For changes in versions prior to 0.28.0, please refer to the git history.
189
+
190
+ [Unreleased]: https://github.com/roberthead/head_music/compare/v8.2.0...HEAD
191
+ [8.2.0]: https://github.com/roberthead/head_music/compare/v8.1.1...v8.2.0
192
+ [8.1.1]: https://github.com/roberthead/head_music/compare/v8.1.0...v8.1.1
193
+ [8.1.0]: https://github.com/roberthead/head_music/compare/v8.0.2...v8.1.0
194
+ [8.0.2]: https://github.com/roberthead/head_music/compare/v8.0.0...v8.0.2
195
+ [8.0.0]: https://github.com/roberthead/head_music/compare/v7.0.5...v8.0.0
196
+ [7.0.5]: https://github.com/roberthead/head_music/compare/v7.0.4...v7.0.5
197
+ [7.0.4]: https://github.com/roberthead/head_music/compare/v7.0.3...v7.0.4
198
+ [7.0.3]: https://github.com/roberthead/head_music/compare/v7.0.2...v7.0.3
199
+ [7.0.2]: https://github.com/roberthead/head_music/compare/v7.0.1...v7.0.2
200
+ [7.0.1]: https://github.com/roberthead/head_music/compare/v7.0.0...v7.0.1
201
+ [7.0.0]: https://github.com/roberthead/head_music/compare/v6.0.1...v7.0.0
202
+ [6.0.1]: https://github.com/roberthead/head_music/compare/v6.0.0...v6.0.1
203
+ [6.0.0]: https://github.com/roberthead/head_music/compare/v5.0.0...v6.0.0
204
+ [5.0.0]: https://github.com/roberthead/head_music/compare/v4.0.1...v5.0.0
205
+ [4.0.1]: https://github.com/roberthead/head_music/compare/v4.0.0...v4.0.1
206
+ [4.0.0]: https://github.com/roberthead/head_music/compare/v3.0.1...v4.0.0
207
+ [3.0.1]: https://github.com/roberthead/head_music/compare/v3.0.0...v3.0.1
208
+ [3.0.0]: https://github.com/roberthead/head_music/compare/v2.0.0...v3.0.0
209
+ [2.0.0]: https://github.com/roberthead/head_music/compare/v1.0.0...v2.0.0
210
+ [1.0.0]: https://github.com/roberthead/head_music/compare/v0.29.0...v1.0.0
211
+ [0.29.0]: https://github.com/roberthead/head_music/compare/v0.28.0...v0.29.0
212
+ [0.28.0]: https://github.com/roberthead/head_music/releases/tag/v0.28.0
data/CODE_OF_CONDUCT.md CHANGED
@@ -19,6 +19,7 @@ include:
19
19
  * Gracefully accepting constructive criticism
20
20
  * Focusing on what is best for the community
21
21
  * Showing empathy towards other community members
22
+ * Using inclusive language that respects all musical traditions and genres without suggesting the supremacy of any particular style.
22
23
 
23
24
  Examples of unacceptable behavior by participants include:
24
25
 
@@ -27,6 +28,7 @@ Examples of unacceptable behavior by participants include:
27
28
  * Public or private harassment
28
29
  * Publishing others' private information, such as a physical or electronic address, without explicit permission
29
30
  * Other conduct which could reasonably be considered inappropriate in a professional setting
31
+ * Belittling any musical genre or tradition.
30
32
 
31
33
  ## Our Responsibilities
32
34