Procedurally generates a radio weather report
1{
2 "programs": [
3 [
4 "intro music",
5 "intro",
6 "hi's and low's",
7 "notable weather",
8 "signoff"
9 ]
10 ],
11 "segments": {
12 "intro": [
13 "intro 1",
14 "intro 2"
15 ],
16 "hi's and low's": [
17 "hilo 1",
18 "hilo 2"
19 ],
20 "notable weather": [
21 "rain 1",
22 "rain 2",
23 "storm 1",
24 "storm 2",
25 "snow 1",
26 "hail 1"
27 ],
28 "signoff": [
29 "signoff 1",
30 "signoff 2"
31 ]
32 },
33 "sequences": {
34 "intro music": {
35 "tracks": [
36 "audio/intro_music.flac"
37 ]
38 },
39 "intro 1": {
40 "tracks": [
41 "audio/intro_01.flac"
42 ]
43 },
44 "intro 2": {
45 "tracks": [
46 "audio/intro_02.flac"
47 ]
48 },
49 "hilo 1": {
50 "tracks": [
51 "audio/hi_01.flac",
52 "%cory weather.temp.max",
53 "audio/lo_01.flac",
54 "%cory weather.temp.min"
55 ]
56 },
57 "hilo 2": {
58 "tracks": [
59 "audio/hi_02.flac",
60 "%cory weather.temp.max",
61 "audio/lo_02.flac",
62 "%cory weather.temp.min"
63 ]
64 },
65 "rain 1": {
66 "condition": "weather == rain",
67 "tracks": [
68 "audio/rain1.flac"
69 ]
70 },
71 "rain 2": {
72 "condition": "weather == rain",
73 "tracks": [
74 "audio/rain2.flac"
75 ]
76 },
77 "storm 1": {
78 "condition": "weather == storm",
79 "tracks": [
80 "audio/storm1.flac"
81 ]
82 },
83 "storm 2": {
84 "condition": "weather == storm",
85 "tracks": [
86 "audio/storm2.flac"
87 ]
88 },
89 "snow 1": {
90 "condition": "weather == snow",
91 "tracks": [
92 "audio/snow1.flac"
93 ]
94 },
95 "hail 1": {
96 "condition": "weather == hail",
97 "tracks": [
98 "audio/hail1.flac"
99 ]
100 },
101 "signoff 1": {
102 "tracks": [
103 "audio/signoff_01.flac"
104 ]
105 },
106 "signoff 2": {
107 "tracks": [
108 "audio/signoff_02.flac"
109 ]
110 }
111 },
112 "voices": {
113 "cory": {
114 "directory": "audio/voice/cory/",
115 "extension": "flac"
116 }
117 },
118 "weather": {
119 // Provide an OpenWeatherMap API key
120 // https://openweathermap.org/price
121 "key": "not0a0real0key00281f631aef6ad3a1",
122 "city": "chicago"
123 }
124}