diff --git a/2025-12-19.md b/2025-12-19.md index ed0a987..1d76b8a 100644 --- a/2025-12-19.md +++ b/2025-12-19.md @@ -1,7 +1,7 @@ --- id: aliases: [] -title: "2025-12-19" +title: 2025-12-19 tags: - authorship/original - destiny/permanent @@ -16,33 +16,121 @@ PowerShell module to assist in translating between banjo fingerings and concert as well as between [[lilypond]] and conventional notation. ```powershell -$Db4 = [Note]::FromLilyPond("des'") -$Db4.PlayInTime(1/4,120) +$Db4 = [Pitch]::FromLilyPond("des'") +[Note]::($Db4,1/4).PlayInTime(120) -$str1 = [FrettedStringTuning]::FromOpen([Note]::FromLilyPond("d,,,")) +$str1 = [FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("d,,,")) $str1c2 = $str1.Capo(2) $openGtuning = [FrettedStringInstrumentTuning]::FromStringTunings(@( - [FrettedStringTuning]::FromOpen([Note]::FromLilyPond("d,,,")), - [FrettedStringTuning]::FromOpen([Note]::FromLilyPond("b,,")), - [FrettedStringTuning]::FromOpen([Note]::FromLilyPond("g,")), - [FrettedStringTuning]::FromOpen([Note]::FromLilyPond("d")), - [FrettedStringTuning]::FromOpen([Note]::FromLilyPond("g'")), + [FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("d,,,")), + [FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("b,,")), + [FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("g,")), + [FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("d")), + [FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("g'")), # note: the notation used above is concert octave, # banjo is transposed up one octave. )) -$openGtuning.GetNoteFromFingering(4,11).PlayInTime(1/4,120) # play Db4 +[Note]::($openGc2tuning.GetPitchFromFingering(4,11)/4).PlayInTime(120) # play Db4 $openGc2tuning = $openGtuning.Capo(2) -$openGc2tuning.GetNoteFromFingering(4,9).PlayInTime(1/4,120) # play Db4 +[Note]::($openGc2tuning.GetPitchFromFingering(4,9),1/4).PlayInTime(120) # play Db4 -# TODO: class FrettedStringInstrument +# TODO: class iFrettedStringInstrument +# class Banjo implements iFrettedStringInstrument ``` ```powershell -class Note { - [Note] TransposeOctave([Note]$note1,[Note]$note2) {} - [Note] TransposeOctave([int]$modifier) {} +class Pitch { + [Pitch] TransposeOctave([Note]$note1,[Note]$note2) {} + [Pitch] TransposeOctave([int]$modifier) {} } -``` \ No newline at end of file + +class Duration { + # 1/4, 1/8, etc. + # does not encode timing. +} + +class Note { + [Pitch]$_pitch + [Duration]$_duration +} +``` + +```mermaid +classDiagram + %% simple score definition, does not support polyphony + class Score { + List~Note~ notes + float beatsPerMinute + +Beep() void + } + + Score *-- Note + class Note { + Pitch pitch + float beats + +BeepInTime(int bpm) + } + + Note *-- Pitch + class Pitch { + +Transpose(Pitch from, Pitch to) Pitch + +TransposeOctave(int modifier) Pitch + +FromLilyPond(string text) Pitch + +GetFrequency() float + +Beep(int milliseconds) void + } + + class Banjo { + +FromNamedTuning(string tuningName) Banjo + } + + Banjo <|.. iFrettedStringInstrument + class iFrettedStringInstrument { + -FrettedStringInstrumentTuning tuning + +GetPitchFromFingering(int string,int fret) Pitch + +GetFingeringsFromPitch(Pitch pitch) todo + } + + iFrettedStringInstrument *-- FrettedStringInstrumentTuning + class FrettedStringInstrumentTuning { + -List~FrettedStringTuning~ stringTunings + +GetPitchFromFingering(int string,int fret) Pitch + +GetFingeringsFromPitch(Pitch pitch) todo + +Capo(int fret) FrettedStringInstrumentTuning + } + + FrettedStringInstrumentTuning *-- FrettedStringTuning + class FrettedStringTuning { + Pitch openPitch + int fretOffset + +GetPitchFromFret(int fret) Pitch + +SetOffset(int fret) FrettedStringTuning + } +``` + +## 2025-12-19 10:44 + +#occupational/takeoff + +> [!quote] Art Baldwin 2025-12-19, in reference to Howard University East Towers (pp.) +> When using PVC slab box assemblies where substantial insulation +> (e.g mineral wool, spray foam) is to be applied, +> add extension rings to compensate for the thickness + +## 2025-12-19 10:44 + +#occupational/takeoff + +This week (2025w51) +William Bonn, as part of [[units-takeoff]] for Howard University East Towers, +used an `Area` "Typical - Unit Balconies" for `Phase` "UNIT - RESIDENTIAL" takeoff. +Our senior Joel Jansen approved of the method. + +I'd like to use the method tentatively for takeoff strictly typical of all units +(e.g. master switches, MSDE's, etc.), +but there is potential for significant efficiency gains +in treating units like panelboards in [[switchgear-takeoff]]: +picking one unit type to be typical of many nearly identical types. diff --git a/banjo-tablatures.md b/banjo-tablatures.md index 37692f2..3480bcd 100644 --- a/banjo-tablatures.md +++ b/banjo-tablatures.md @@ -44,9 +44,6 @@ This has a few complications: 1. Tablature must be translated first to SPN (i.e. C#4) then to lilypond notation (i.e. `cis'`) - * [Helmholtz pitch notation](https://en.wikipedia.org/wiki/Helmholtz_pitch_notation) - * [Scientific pitch notation (SPN)]https://en.wikipedia.org/wiki/Scientific_pitch_notation) - Also keep in mind that banjo is transposed up/down? one octave, so that C0 SPN = C1 banjo @@ -60,118 +57,7 @@ This has a few complications: [Common Notation for Fretted Strings](https://lilypond.org/doc/v2.24/Documentation/notation/common-notation-for-fretted-strings) -### Note Conversion - -| SPN | lilypond | frequency (hz) | -|:-------------- |:-------- | --------------:| -| C0 | c,,, | 16.35 | -| C#0 | cis,,, | 17.32 | -| D0 | d,,, | 18.35 | -| D#0 | dis,,, | 19.45 | -| E0 | e,,, | 20.60 | -| F0 | f,,, | 21.83 | -| F#0 | fis,,, | 23.12 | -| G0 | g,,, | 24.50 | -| G#0 | gis,,, | 25.96 | -| A0 | a,,, | 27.50 | -| A#0 | ais,,, | 29.14 | -| B0 | b,,, | 30.87 | -| C1 | c,, | 32.70 | -| C#1 | cis,, | 34.65 | -| D1 | d,, | 36.71 | -| D#1 | dis,, | 38.89 | -| E1 | e,, | 41.20 | -| F1 | f,, | 43.65 | -| F#1 | fis,, | 46.25 | -| G1 | g,, | 49.00 | -| G#1 | gis,, | 51.91 | -| A1 | a,, | 55.00 | -| A#1 | ais,, | 58.27 | -| B1 | b,, | 61.74 | -| C2 | c, | 65.41 | -| C#2 | cis, | 69.30 | -| D2 | d, | 73.42 | -| D#2 | dis, | 77.78 | -| E2 | e, | 82.41 | -| F2 | f, | 87.31 | -| F#2 | fis, | 92.50 | -| G2 | g, | 98.00 | -| G#2 | gis, | 103.83 | -| A2 | a, | 110.00 | -| A#2 | ais, | 116.54 | -| B2 | b, | 123.47 | -| C3 | c | 130.81 | -| C#3 | cis | 138.59 | -| D3 | d | 146.83 | -| D#3 | dis | 155.56 | -| E3 | e | 164.81 | -| F3 | f | 174.61 | -| F#3 | fis | 185.00 | -| G3 | g | 196.00 | -| G#3 | gis | 207.65 | -| A3 | a | 220.00 | -| A#3 | ais | 233.08 | -| B3 | b | 246.94 | -| C4 | c' | 261.63 | -| C#4 | cis' | 277.18 | -| D4 | d' | 293.66 | -| D#4 | dis' | 311.13 | -| E4 | e' | 329.63 | -| F4 | f' | 349.23 | -| F#4 | fis' | 369.99 | -| G4 | g' | 392.00 | -| G#4 | gis' | 415.30 | -| A4 | a' | 440.00 | -| A#4 | ais' | 466.16 | -| B4 | b' | 493.88 | -| C5 | c'' | 523.25 | -| C#5 | cis'' | 554.37 | -| D5 | d'' | 587.33 | -| D#5 | dis'' | 622.25 | -| E5 | e'' | 659.25 | -| F5 | f'' | 698.46 | -| F#5 | fis'' | 739.99 | -| G5 | g'' | 783.99 | -| G#5 | gis'' | 830.61 | -| A5 | a'' | 880.00 | -| A#5 | ais'' | 932.33 | -| B5 | b'' | 987.77 | -| C6 | c''' | 1046.50 | -| C#6 | cis''' | 1108.73 | -| D6 | d''' | 1174.66 | -| D#6 | dis''' | 1244.51 | -| E6 | e''' | 1318.51 | -| F6 | f''' | 1396.91 | -| F#6 | fis''' | 1479.98 | -| G6 | g''' | 1567.98 | -| G#6 | gis''' | 1661.22 | -| A6 | a''' | 1760.00 | -| A#6 | ais''' | 1864.66 | -| B6 | b''' | 1975.53 | -| C7 | c'''' | 2093.00 | -| C#7 | cis'''' | 2217.46 | -| D7 | d'''' | 2349.32 | -| D#7 | dis'''' | 2489.02 | -| E7 | e'''' | 2637.02 | -| F7 | f'''' | 2793.83 | -| F#7 | fis'''' | 2959.96 | -| G7 | g'''' | 3135.96 | -| G#7 | gis'''' | 3322.44 | -| A7 | a'''' | 3520.00 | -| A#7 | ais'''' | 3729.31 | -| B7 | b'''' | 3951.07 | -| C8 | c''''' | 4186.01 | -| C#8 | cis''''' | 4434.92 | -| D8 | d''''' | 4698.63 | -| D#8 | dis''''' | 4978.03 | -| E8 | e''''' | 5274.04 | -| F8 | f''''' | 5587.65 | -| F#8 | fis''''' | 5919.91 | -| G8 | g''''' | 6271.93 | -| G#8 | gis''''' | 6644.88 | -| A8 | a''''' | 7040.00 | -| A#8 | ais''''' | 7458.62 | -| B8 | b''''' | 7902.13 | +[[lilypond]] ### Slides diff --git a/diagrams.md b/diagrams.md index dded06b..40d09ef 100644 --- a/diagrams.md +++ b/diagrams.md @@ -11,9 +11,55 @@ title: Diagrams --- # Diagrams +## Mermaid + +### Flowchart + ```mermaid graph LR A[README] %% B class A internal-link; ``` + +## Class Diagram + +```mermaid +--- +title: Animal example +--- +classDiagram + note "From Duck till Zebra" + Animal <|-- Duck + note for Duck "can fly\ncan swim\ncan dive\ncan help in debugging" + Animal <|-- Fish + Animal <|-- Zebra + Animal : +int age + Animal : +String gender + Animal: +isMammal() + Animal: +mate() + class Duck{ + +String beakColor + +swim() + +quack() + } + class Fish{ + -int sizeInFeet + -canEat() + } + class Zebra{ + +bool is_wild + +run() + } +``` + +| Type | Description | +| ------- | ------------- | +| `<\|--` | Inheritance | +| `*--` | Composition | +| `o--` | Aggregation | +| `-->` | Association | +| `--` | Link (Solid) | +| `..>` | Dependency | +| `..\|>` | Realization | +| `..` | Link (Dashed) | \ No newline at end of file diff --git a/fire-alarm-takeoff.md b/fire-alarm-takeoff.md index e98c50c..439c569 100644 --- a/fire-alarm-takeoff.md +++ b/fire-alarm-takeoff.md @@ -196,7 +196,7 @@ For each damper, take off both 1. * `System` = "FA - Fire Alarm" - `COMMON ASSEMBLIES`/`FIRE ALARM & DAS SYSTEMS`/`INITIATING DEVICES ...`/`ADDRESSABLE OUTPUT RELAY MODULE ...` + `COMMON ASSEMBLIES`/`FIRE ALARM & DAS SYSTEMS`/`INITIATING DEVICES ...`/`ADDRESSABLE OUTPUT RELAY CONTROL MODULE ...` 2. * `System` = "EL - Electrical" diff --git a/lighting-controls.md b/lighting-controls.md index a7e440d..fb9d7d4 100644 --- a/lighting-controls.md +++ b/lighting-controls.md @@ -1,18 +1,22 @@ --- id: aliases: [] +title: Lighting Controls tags: - authorship/original - destiny/permanent - status/incomplete - topic/construction/electrical - type/encyclopedia -title: Lighting Controls --- # Lighting Controls -## Protocols +## Sensor Types +* Occupancy +* Vacancy +* Daylight +* Partition ## Occupancy/Vacancy Sensor Technologies @@ -22,9 +26,10 @@ title: Lighting Controls ## Switching/Communication -* Occupancy -* Vacancy -* Daylight +Dimming Terms +* **trim** --- refers to the minimum and maximum brightness levels + (low-end and high-end trim respectively) + a dimmer will reach. Usually adjustable. ### Line Voltage @@ -36,46 +41,38 @@ title: Lighting Controls ### Digital +#### Generic "Standalone" + +The examples below are typical of a generic system, +with functionally identical features and topologies. + +Includes wired (via [[twisted-pair-cable]] and 8P8C "RJ-45" connectors) +and wireless (via RF) communication. + +* [Legrand Wattstopper Digital Light Management (DLM)](https://www.legrand.us/solutions/digital-lighting-management) +* [Acuity nLight®](https://nlight.acuitybrands.com/overview) +* [Lutron Vive](https://commercial.lutron.com/us/en/commercial-systems/vive) +* [Cooper Greengate](https://www.cooperlighting.com/global/brands/greengate) + #### Digital Addressable Lighting Interface (DALI) ^dali [Digital Addressable Lighting Interface](https://en.wikipedia.org/wiki/Digital_Addressable_Lighting_Interface) Open protocol defined by [IEC 62386](https://www.dali-alliance.org/standards/IEC62386.html). -Includes wired (via [[twisted-pair-cable]] and 8P8C "RJ-45" connectors) -and wireless topologies. - -##### Proprietary DALI Clones - -There exist several proprietary control ecosystems -with feature sets and topologies identical to DALI. - -> I suspect these exist to skirt the cost of DALI's testing requirements. +4-Conductor Class 2 control circuit %% -I'm less sure this is an apt description. -The examples below are typical of some generic system, -but it doesn't seem to be DALI. +Lutron's QS bares some resemblance to DALI. %% -Examples include: -* [Legrand Wattstopper Digital Light Management (DLM)](https://www.legrand.us/solutions/digital-lighting-management) -* [Acuity nLight®](https://nlight.acuitybrands.com/overview) -* [Lutron Quantum](https://www.lutron.com/us/en/controls/systems/quantum)[^1] -* [Lutron Athena][^2] -* [Cooper Greengate](https://www.cooperlighting.com/global/brands/greengate) - -[^1]: Maybe not. Sensors show 24V wiring. - -[^2]: Can not verify. Website is down at time of writing. - #### Digital Multiplex (DMX) ^dmx [DMX512](https://en.wikipedia.org/wiki/DMX512) DMX512-A defined in ANSI E1.11-2008 -Shielded [[twisted-pair-cable]] with XLR or 8P8C ("RJ-45") connectors +Shielded [[twisted-pair-cable]] with XLR or 8P8C "RJ-45" connectors #### See Also @@ -91,7 +88,6 @@ Shielded [[twisted-pair-cable]] with XLR or 8P8C ("RJ-45") connectors * Triac (Line voltage dim) * Analog (0-10V dim) * Digital -* Wireless All these control methods are likely to appear in drawings. @@ -111,7 +107,7 @@ This method is compliant with which allows control circuits to share a raceway with power conductors if either all of the power conductors or all of the control conductors are themselves in a raceway, -or in metal-sheathed, metal-clad, non–metallic-sheathed, or Type UF cable. +or in metal-sheathed, metal-clad, non--metallic-sheathed, or Type UF cable. ### Triac Dimming @@ -126,17 +122,21 @@ This reduces the output power, so the lamp dims. There are two subtypes based on which side of the wave is chopped. -* Magnetic Low Voltage (MLV)** -- AKA "Leading Edge" or "Forward Phase" -* Electronic Low Voltage (ELV)** -- AKA "Trailing Edge" or "Reverse Phase" +* **Magnetic Low Voltage (MLV)** -- AKA "Leading Edge" or "Forward Phase" +* **Electronic Low Voltage (ELV)** -- AKA "Trailing Edge" or "Reverse Phase" + +The "magnetic" and "electronic" of MLV and ELV +are holdovers from pre-LED days, +having nothing to do with how they are used today. +They are, unfortunately, the most common terms. > [!important] -> The "magnetic" and "electronic" of MLV and ELV -> are holdovers from pre-LED days. -> They have nothing to do with how they are used today. -> They are, unfortunately, the most common terms. +> "Triac" is sometimes used in contrast to ELV erroneously to mean MLV -> [!important] -> "Triac" is sometimes used (in contrast to ELV) erroneously to mean MLV - -There also exist "universal" dimmers, +There also exist "universal" or "phase select" dimmers, which can be switched between the two subtypes. + +### Digital Dimming + +> [!info] +> It is likely that "digitally dimmed" fixtures are 0-10V dimmed internally. diff --git a/lilypond.md b/lilypond.md index 080a51e..ad182fb 100644 --- a/lilypond.md +++ b/lilypond.md @@ -30,3 +30,119 @@ with syntax similar to [[latex]]. ``` [Beginner Manual](https://lilypond.org/doc/v2.23/Documentation/learning/index) + +### Note Conversion + +[Scientific pitch notation (SPN)]https://en.wikipedia.org/wiki/Scientific_pitch_notation) +[Helmholtz pitch notation](https://en.wikipedia.org/wiki/Helmholtz_pitch_notation) + +| SPN | LilyPond | Frequency (hz) | +|:-------------- |:-------- | --------------:| +| C0 | c,,, | 16.35 | +| C#0 | cis,,, | 17.32 | +| D0 | d,,, | 18.35 | +| D#0 | dis,,, | 19.45 | +| E0 | e,,, | 20.60 | +| F0 | f,,, | 21.83 | +| F#0 | fis,,, | 23.12 | +| G0 | g,,, | 24.50 | +| G#0 | gis,,, | 25.96 | +| A0 | a,,, | 27.50 | +| A#0 | ais,,, | 29.14 | +| B0 | b,,, | 30.87 | +| C1 | c,, | 32.70 | +| C#1 | cis,, | 34.65 | +| D1 | d,, | 36.71 | +| D#1 | dis,, | 38.89 | +| E1 | e,, | 41.20 | +| F1 | f,, | 43.65 | +| F#1 | fis,, | 46.25 | +| G1 | g,, | 49.00 | +| G#1 | gis,, | 51.91 | +| A1 | a,, | 55.00 | +| A#1 | ais,, | 58.27 | +| B1 | b,, | 61.74 | +| C2 | c, | 65.41 | +| C#2 | cis, | 69.30 | +| D2 | d, | 73.42 | +| D#2 | dis, | 77.78 | +| E2 | e, | 82.41 | +| F2 | f, | 87.31 | +| F#2 | fis, | 92.50 | +| G2 | g, | 98.00 | +| G#2 | gis, | 103.83 | +| A2 | a, | 110.00 | +| A#2 | ais, | 116.54 | +| B2 | b, | 123.47 | +| C3 | c | 130.81 | +| C#3 | cis | 138.59 | +| D3 | d | 146.83 | +| D#3 | dis | 155.56 | +| E3 | e | 164.81 | +| F3 | f | 174.61 | +| F#3 | fis | 185.00 | +| G3 | g | 196.00 | +| G#3 | gis | 207.65 | +| A3 | a | 220.00 | +| A#3 | ais | 233.08 | +| B3 | b | 246.94 | +| C4 | c' | 261.63 | +| C#4 | cis' | 277.18 | +| D4 | d' | 293.66 | +| D#4 | dis' | 311.13 | +| E4 | e' | 329.63 | +| F4 | f' | 349.23 | +| F#4 | fis' | 369.99 | +| G4 | g' | 392.00 | +| G#4 | gis' | 415.30 | +| A4 | a' | 440.00 | +| A#4 | ais' | 466.16 | +| B4 | b' | 493.88 | +| C5 | c'' | 523.25 | +| C#5 | cis'' | 554.37 | +| D5 | d'' | 587.33 | +| D#5 | dis'' | 622.25 | +| E5 | e'' | 659.25 | +| F5 | f'' | 698.46 | +| F#5 | fis'' | 739.99 | +| G5 | g'' | 783.99 | +| G#5 | gis'' | 830.61 | +| A5 | a'' | 880.00 | +| A#5 | ais'' | 932.33 | +| B5 | b'' | 987.77 | +| C6 | c''' | 1046.50 | +| C#6 | cis''' | 1108.73 | +| D6 | d''' | 1174.66 | +| D#6 | dis''' | 1244.51 | +| E6 | e''' | 1318.51 | +| F6 | f''' | 1396.91 | +| F#6 | fis''' | 1479.98 | +| G6 | g''' | 1567.98 | +| G#6 | gis''' | 1661.22 | +| A6 | a''' | 1760.00 | +| A#6 | ais''' | 1864.66 | +| B6 | b''' | 1975.53 | +| C7 | c'''' | 2093.00 | +| C#7 | cis'''' | 2217.46 | +| D7 | d'''' | 2349.32 | +| D#7 | dis'''' | 2489.02 | +| E7 | e'''' | 2637.02 | +| F7 | f'''' | 2793.83 | +| F#7 | fis'''' | 2959.96 | +| G7 | g'''' | 3135.96 | +| G#7 | gis'''' | 3322.44 | +| A7 | a'''' | 3520.00 | +| A#7 | ais'''' | 3729.31 | +| B7 | b'''' | 3951.07 | +| C8 | c''''' | 4186.01 | +| C#8 | cis''''' | 4434.92 | +| D8 | d''''' | 4698.63 | +| D#8 | dis''''' | 4978.03 | +| E8 | e''''' | 5274.04 | +| F8 | f''''' | 5587.65 | +| F#8 | fis''''' | 5919.91 | +| G8 | g''''' | 6271.93 | +| G#8 | gis''''' | 6644.88 | +| A8 | a''''' | 7040.00 | +| A#8 | ais''''' | 7458.62 | +| B8 | b''''' | 7902.13 | \ No newline at end of file diff --git a/twisted-pair-cable.md b/twisted-pair-cable.md index 996e53f..fa6824e 100644 --- a/twisted-pair-cable.md +++ b/twisted-pair-cable.md @@ -38,3 +38,7 @@ do not exclude cables of more than 4 pairs. 8 position 8 contact (8P8C) modular connectors male --- "plug" female --- "jack" or "socket" + +### "RJ45" + +