├── .gitignore
├── .gitmodules
├── LICENSE
├── README.md
├── max-hardware-library.xcworkspace
├── contents.xcworkspacedata
└── xcshareddata
│ ├── IDEWorkspaceChecks.plist
│ └── xcschemes
│ └── max-hardware-lib.xcscheme
└── max-package
└── max-hardware-library
├── LICENSE.md
├── README.md
├── docs
├── byte-cast.maxref.xml
├── max-ble.maxref.xml
└── topics
│ └── max_hardware_library_topic.maxvig.xml
├── examples
├── mhl.arduino-notify.maxpat
├── mhl.ble-midi.maxpat
├── mhl.byte-cast.maxpat
├── mhl.connect-everything.maxpat
├── mhl.filter-scan.maxpat
├── mhl.formats.maxpat
├── mhl.rssi.maxpat
├── mhl.simple-max-ble.maxpat
├── mhl.subscribing.maxpat
└── mhl.using-umenus.maxpat
├── extras
├── Max Hardware Library Objects.maxpat
└── ble-notify
│ └── ble-notify.ino
├── help
├── byte-cast.maxhelp
└── max-ble.maxhelp
├── icon.png
├── icon.svg
└── package-info.json
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | applet
3 | application.linux-arm64
4 | application.linux-armv6hf
5 | application.linux32
6 | application.linux64
7 | application.windows32
8 | application.windows64
9 | application.macosx
10 | out
11 |
12 |
13 | ## Ignore Visual Studio temporary files, build results, and
14 | ## files generated by popular Visual Studio add-ons.
15 | ##
16 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
17 |
18 | # User-specific files
19 | *.rsuser
20 | *.suo
21 | *.user
22 | *.userosscache
23 | *.sln.docstates
24 |
25 | # User-specific files (MonoDevelop/Xamarin Studio)
26 | *.userprefs
27 |
28 | # Mono auto generated files
29 | mono_crash.*
30 |
31 | # Build results
32 | [Dd]ebug/
33 | [Dd]ebugPublic/
34 | [Rr]elease/
35 | [Rr]eleases/
36 | x64/
37 | x86/
38 | [Ww][Ii][Nn]32/
39 | [Aa][Rr][Mm]/
40 | [Aa][Rr][Mm]64/
41 | bld/
42 | [Bb]in/
43 | [Oo]bj/
44 | [Ll]og/
45 | [Ll]ogs/
46 |
47 | # Visual Studio 2015/2017 cache/options directory
48 | .vs/
49 | # Uncomment if you have tasks that create the project's static files in wwwroot
50 | #wwwroot/
51 |
52 | # Visual Studio 2017 auto generated files
53 | Generated\ Files/
54 |
55 | # MSTest test Results
56 | [Tt]est[Rr]esult*/
57 | [Bb]uild[Ll]og.*
58 |
59 | # NUnit
60 | *.VisualState.xml
61 | TestResult.xml
62 | nunit-*.xml
63 |
64 | # Build Results of an ATL Project
65 | [Dd]ebugPS/
66 | [Rr]eleasePS/
67 | dlldata.c
68 |
69 | # Benchmark Results
70 | BenchmarkDotNet.Artifacts/
71 |
72 | # .NET Core
73 | project.lock.json
74 | project.fragment.lock.json
75 | artifacts/
76 |
77 | # ASP.NET Scaffolding
78 | ScaffoldingReadMe.txt
79 |
80 | # StyleCop
81 | StyleCopReport.xml
82 |
83 | # Files built by Visual Studio
84 | *_i.c
85 | *_p.c
86 | *_h.h
87 | *.ilk
88 | *.meta
89 | *.obj
90 | *.iobj
91 | *.pch
92 | *.pdb
93 | *.ipdb
94 | *.pgc
95 | *.pgd
96 | *.rsp
97 | *.sbr
98 | *.tlb
99 | *.tli
100 | *.tlh
101 | *.tmp
102 | *.tmp_proj
103 | *_wpftmp.csproj
104 | *.log
105 | *.vspscc
106 | *.vssscc
107 | .builds
108 | *.pidb
109 | *.svclog
110 | *.scc
111 |
112 | # Chutzpah Test files
113 | _Chutzpah*
114 |
115 | # Visual C++ cache files
116 | ipch/
117 | *.aps
118 | *.ncb
119 | *.opendb
120 | *.opensdf
121 | *.sdf
122 | *.cachefile
123 | *.VC.db
124 | *.VC.VC.opendb
125 |
126 | # Visual Studio profiler
127 | *.psess
128 | *.vsp
129 | *.vspx
130 | *.sap
131 |
132 | # Visual Studio Trace Files
133 | *.e2e
134 |
135 | # TFS 2012 Local Workspace
136 | $tf/
137 |
138 | # Guidance Automation Toolkit
139 | *.gpState
140 |
141 | # ReSharper is a .NET coding add-in
142 | _ReSharper*/
143 | *.[Rr]e[Ss]harper
144 | *.DotSettings.user
145 |
146 | # TeamCity is a build add-in
147 | _TeamCity*
148 |
149 | # DotCover is a Code Coverage Tool
150 | *.dotCover
151 |
152 | # AxoCover is a Code Coverage Tool
153 | .axoCover/*
154 | !.axoCover/settings.json
155 |
156 | # Coverlet is a free, cross platform Code Coverage Tool
157 | coverage*[.json, .xml, .info]
158 |
159 | # Visual Studio code coverage results
160 | *.coverage
161 | *.coveragexml
162 |
163 | # NCrunch
164 | _NCrunch_*
165 | .*crunch*.local.xml
166 | nCrunchTemp_*
167 |
168 | # MightyMoose
169 | *.mm.*
170 | AutoTest.Net/
171 |
172 | # Web workbench (sass)
173 | .sass-cache/
174 |
175 | # Installshield output folder
176 | [Ee]xpress/
177 |
178 | # DocProject is a documentation generator add-in
179 | DocProject/buildhelp/
180 | DocProject/Help/*.HxT
181 | DocProject/Help/*.HxC
182 | DocProject/Help/*.hhc
183 | DocProject/Help/*.hhk
184 | DocProject/Help/*.hhp
185 | DocProject/Help/Html2
186 | DocProject/Help/html
187 |
188 | # Click-Once directory
189 | publish/
190 |
191 | # Publish Web Output
192 | *.[Pp]ublish.xml
193 | *.azurePubxml
194 | # Note: Comment the next line if you want to checkin your web deploy settings,
195 | # but database connection strings (with potential passwords) will be unencrypted
196 | *.pubxml
197 | *.publishproj
198 |
199 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
200 | # checkin your Azure Web App publish settings, but sensitive information contained
201 | # in these scripts will be unencrypted
202 | PublishScripts/
203 |
204 | # NuGet Packages
205 | *.nupkg
206 | # NuGet Symbol Packages
207 | *.snupkg
208 | # The packages folder can be ignored because of Package Restore
209 | **/[Pp]ackages/*
210 | # except build/, which is used as an MSBuild target.
211 | !**/[Pp]ackages/build/
212 | # Uncomment if necessary however generally it will be regenerated when needed
213 | #!**/[Pp]ackages/repositories.config
214 | # NuGet v3's project.json files produces more ignorable files
215 | *.nuget.props
216 | *.nuget.targets
217 |
218 | # Microsoft Azure Build Output
219 | csx/
220 | *.build.csdef
221 |
222 | # Microsoft Azure Emulator
223 | ecf/
224 | rcf/
225 |
226 | # Windows Store app package directories and files
227 | AppPackages/
228 | BundleArtifacts/
229 | Package.StoreAssociation.xml
230 | _pkginfo.txt
231 | *.appx
232 | *.appxbundle
233 | *.appxupload
234 |
235 | # Visual Studio cache files
236 | # files ending in .cache can be ignored
237 | *.[Cc]ache
238 | # but keep track of directories ending in .cache
239 | !?*.[Cc]ache/
240 |
241 | # Others
242 | ClientBin/
243 | ~$*
244 | *~
245 | *.dbmdl
246 | *.dbproj.schemaview
247 | *.jfm
248 | *.pfx
249 | *.publishsettings
250 | orleans.codegen.cs
251 |
252 | # Including strong name files can present a security risk
253 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
254 | #*.snk
255 |
256 | # Since there are multiple workflows, uncomment next line to ignore bower_components
257 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
258 | #bower_components/
259 |
260 | # RIA/Silverlight projects
261 | Generated_Code/
262 |
263 | # Backup & report files from converting an old project file
264 | # to a newer Visual Studio version. Backup files are not needed,
265 | # because we have git ;-)
266 | _UpgradeReport_Files/
267 | Backup*/
268 | UpgradeLog*.XML
269 | UpgradeLog*.htm
270 | ServiceFabricBackup/
271 | *.rptproj.bak
272 |
273 | # SQL Server files
274 | *.mdf
275 | *.ldf
276 | *.ndf
277 |
278 | # Business Intelligence projects
279 | *.rdl.data
280 | *.bim.layout
281 | *.bim_*.settings
282 | *.rptproj.rsuser
283 | *- [Bb]ackup.rdl
284 | *- [Bb]ackup ([0-9]).rdl
285 | *- [Bb]ackup ([0-9][0-9]).rdl
286 |
287 | # Microsoft Fakes
288 | FakesAssemblies/
289 |
290 | # GhostDoc plugin setting file
291 | *.GhostDoc.xml
292 |
293 | # Node.js Tools for Visual Studio
294 | .ntvs_analysis.dat
295 | node_modules/
296 |
297 | # Visual Studio 6 build log
298 | *.plg
299 |
300 | # Visual Studio 6 workspace options file
301 | *.opt
302 |
303 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
304 | *.vbw
305 |
306 | # Visual Studio LightSwitch build output
307 | **/*.HTMLClient/GeneratedArtifacts
308 | **/*.DesktopClient/GeneratedArtifacts
309 | **/*.DesktopClient/ModelManifest.xml
310 | **/*.Server/GeneratedArtifacts
311 | **/*.Server/ModelManifest.xml
312 | _Pvt_Extensions
313 |
314 | # Paket dependency manager
315 | .paket/paket.exe
316 | paket-files/
317 |
318 | # FAKE - F# Make
319 | .fake/
320 |
321 | # CodeRush personal settings
322 | .cr/personal
323 |
324 | # Python Tools for Visual Studio (PTVS)
325 | __pycache__/
326 | *.pyc
327 |
328 | # Cake - Uncomment if you are using it
329 | # tools/**
330 | # !tools/packages.config
331 |
332 | # Tabs Studio
333 | *.tss
334 |
335 | # Telerik's JustMock configuration file
336 | *.jmconfig
337 |
338 | # BizTalk build output
339 | *.btp.cs
340 | *.btm.cs
341 | *.odx.cs
342 | *.xsd.cs
343 |
344 | # OpenCover UI analysis results
345 | OpenCover/
346 |
347 | # Azure Stream Analytics local run output
348 | ASALocalRun/
349 |
350 | # MSBuild Binary and Structured Log
351 | *.binlog
352 |
353 | # NVidia Nsight GPU debugger configuration file
354 | *.nvuser
355 |
356 | # MFractors (Xamarin productivity tool) working folder
357 | .mfractor/
358 |
359 | # Local History for Visual Studio
360 | .localhistory/
361 |
362 | # BeatPulse healthcheck temp database
363 | healthchecksdb
364 |
365 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
366 | MigrationBackup/
367 |
368 | # Ionide (cross platform F# VS Code tools) working folder
369 | .ionide/
370 | maxmsp-external-templates.xcodeproj/project.xcworkspace/xcuserdata/mhamilt7.xcuserdatad/UserInterfaceState.xcuserstate
371 | *.xcuserstate
372 | *xcuserdata/
373 |
374 | package/
375 | *.tlog
376 |
377 | sysbuild/
378 | externals/
379 | max-package/max-ble/externals/
380 |
381 | *.zip
382 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "maxmsp-ble"]
2 | path = maxmsp-ble
3 | url = https://github.com/mhamilt/maxmsp-ble
4 | [submodule "max-byte-cast"]
5 | path = max-byte-cast
6 | url = https://github.com/mhamilt/max-byte-cast
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | # Max Hardware Library
7 |
8 |
9 | Library of utility objects for MaxMSP aimed at interacting with electronics hardware like Arduino
10 |
11 |
12 |
13 | - [Install](#install)
14 | - [Contents](#contents)
15 | - [max-ble](#max-ble)
16 | - [Usage](#usage)
17 | - [byte-cast](#byte-cast)
18 | - [Usage](#usage)
19 | - [Contribution](#contribution)
20 |
21 | ## Install
22 |
23 | [Unzip the package folder](<>) into you `~/Documents/Max 8/Packages` directory.
24 |
25 | * * *
26 |
27 | ## Contents
28 |
29 | The library currently consists of the following projects
30 |
31 | ### max-ble
32 |
33 | Max Object to interface with Bluetooth Low Energy devices like mobile devices, Arduino and other micro-controllers with BLE capability. [See git repo for source code](https://github.com/mhamilt/maxmsp-ble)
34 |
35 | #### Usage
36 |
37 | First send a scan message. Each new device will be output from the right outlet. This output can be collected in a [`umenu`](https://docs.cycling74.com/max8/refpages/umenu) object for later use.
38 |
39 | Connecting to a device will output all of the available services and characteristics of the device.
40 |
41 | - Each device has an identifier (6-byte address on windows, UUID on macOS)
42 | - Each device has services (a UUID)
43 | - Each service has characteristics (a UUID)
44 | - Each characteristic has a value (raw byte data)
45 |
46 | Output on connection is in the format `service_UUID characteristic_UUID byte_data_as_list`. The [`route`](https://docs.cycling74.com/max8/refpages/route) can be used to separate out services and characteristics.
47 |
48 | Byte data can be interpreted with [`itoa`](https://docs.cycling74.com/max8/refpages/itoa), [bit shift](https://docs.cycling74.com/max8/refpages/shiftleft?q=%3C%3C) and [bit compare](https://docs.cycling74.com/max8/refpages/bitor?q=%7C) operators, or by using this libraries [`byte-cast`](<>) object.
49 |
50 | See the object reference in max for more examples.
51 |
52 | ### byte-cast
53 |
54 | `byte-cast` is a MaxMSP utility object for casting a list of bytes to other data formats. Useful when interacting with Arduino using the [`serial` object](https://docs.cycling74.com/max8/refpages/serial).
55 |
56 | [See git repo for source code](https://github.com/mhamilt/max-byte-cast)
57 |
58 | #### Usage
59 |
60 | The object takes a single argument of a data type and modifiers
61 |
62 | | Format | Data Type |
63 | | ------ | --------------------- |
64 | | i | 32-bit int |
65 | | h | 16-bit int |
66 | | f | 32-bit float |
67 | | s | ASCII string (greedy) |
68 |
69 | | Modifier | Effect |
70 | | -------- | ------------------------------- |
71 | | `u` | unsigned (`i` and `h` only) |
72 | | `>` | Big endian (append) |
73 | | `<` | Little endian (append) |
74 |
75 | **e.g. ** `[byte-cast uh<]` decodes little-endian unsigned 16-bit integer bytes.
76 |
77 | See the object reference in max for more examples.
78 |
79 | * * *
80 |
81 | ## Contribution
82 |
83 | This repository collects together individual projects as submodules. Issues with a specific external should be flagged at the corresponding repository.
84 |
85 | Any issues with library structure or feature requests for further externals should flagged against this repository.
86 |
--------------------------------------------------------------------------------
/max-hardware-library.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/max-hardware-library.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/max-hardware-library.xcworkspace/xcshareddata/xcschemes/max-hardware-lib.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
11 |
14 |
15 |
16 |
18 |
22 |
23 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
41 |
47 |
48 |
49 |
55 |
61 |
62 |
63 |
64 |
65 |
71 |
72 |
82 |
83 |
89 |
90 |
96 |
97 |
98 |
99 |
101 |
102 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/README.md:
--------------------------------------------------------------------------------
1 | # MaxMSP BLE
2 |
3 | A BLE Object for Max
4 |
5 | ### Examples
6 |
7 | Copy and paste the below example into Max:
8 |
9 |
10 | ----------begin_max5_patcher----------
11 | 1162.3ocyYtzaaiCD.9r8uBBg8nqgnnd481l1r.KP1S6lSKJJXjYhUgLo.Ic
12 | hcK5+8czP4XGWpTKmDEewNhhly7w4IY993QA2nVKLAjem7ejQi993QivgZFX
13 | T6yiBVxWWTwM3zBrp6tqRDLw8px43fpa95Ghx2NXMWyWJrB8WDR9MvjgoD19
14 | N4pkkxJgEWL5i+.awhR4ceQKJrNkIhNMbBgFE270tOIed25nVYObgbCY2TKb
15 | qRPoDVuO27xeLdbyGSNRLWJLF9cOxoUrFUr.snVosjei5aGHNvGkQ+RJSBa9
16 | JICoLp+TdZHJEO.Z8OSHr7Bh1XJ8gXZeQjkiFOVdJxX9ufwnNYbxoxYWlx4h
17 | 6KKDjnNYMo2lyzvoQI.eNlyRFVC5AftOJQ8Ek3XVixGyPOTmC56tq42pHlpF
18 | alunOVuYjkFgtlINWyjg20rPsbo.RQcHnvj9.j3j7PYUEoXkVCSpZCwH35hE
19 | jaUZxEWcIw4.aHb4bhwpzBBmTUZrDHqmPK4UUalR9TYg5dgVL+woiK5MBRst
20 | YdyIVEwtPP9a9ZxGURipRLkbcsRRJTRIrYAaZMyg2t.3j+mK03ee80+0mlP9
21 | 3BHieAHSP3kE3fnRo4OPtYicOYZ.PHvFHgaZU1oj+cQowo2EbIpXbsAzqUFT
22 | xfzboj.ibioqcuppDzM0JItgw73xSC5YIG1tX1jTzgONqSmgvWQq8EUqDVkx
23 | tfbk5AxkRg9tMnQFLIdbzoyNIxRvOo4nOeTX2j0N5sJo8VdA5jSe88s8A1ic
24 | PzHaS42PYyZhNOAdwTvTV1.ZHOHN3hFWeebl0WCXT5roIMYiwLUTWt4myF9Z
25 | 5cxs.QaHWItWTgw19PJsuHMqss.z9Poz2Ah5hE5IxRL1bS1r2.Td1d0h9ico
26 | D1OCX3o0NZqMIM67oUsYw9rSImFesQQQsQQmG8aSyC+SeLxNQaX76lMrqnth
27 | Jn6EWcd0sj4kls8kTC4KqWHz7JuIKi6cxRVaW3LrTGcV3aP.YWdpHk9vn2cm
28 | Rgvv8vfMvGlnyZbtlBa5HzqMjva5+btXs+yHSC6s4D5XoYav0RVjywdfpTfd
29 | q9cUAHOrsYO316V0hBaqD5xQkvFPe2ag1om6Ahrd65lDilLGDrYmGdtvQjpI
30 | F3LFRPa8fYuaggBmeLC3j5J46Nz+.4YZrbs84no2oMosoKSnuYvzYRy1bJ9R
31 | Xj2+BftLDt7Eoz206f4INednq2svzdinstbryE5.+PeWISeoKOeu6CkEeVze
32 | 1ybd0fS5RsYtC6jQwbjm.dMUkdJh3JfWIxA2kOpDMi+TtMpU5hsK21qtlrSQ
33 | lKfCvJ41RkbuIQcyw6V6QKn7iPPa0lWljROFIAskQnuPIwZWjmWRouFLkLPl
34 | I5QHGD6cSRomKzcWY3Xkb9.QX1.ImgxhwFp.3viQPIuBgUziAospyKSRQmQg
35 | UGf8igUzeJeOutFNVho8miBEpV8UEN87I3ikR2iXwj.s39xsyGuy7fl+gBkV
36 | nB0JMpnAqSccNFrTABVtprU1.tfHwpkRNzGPc6UCiEUG+iw+OZQhFE.
37 | -----------end_max5_patcher-----------
38 |
39 |
40 | #### Subscribing
41 |
42 | To be notified of a service, you can take this approach:
43 |
44 |
45 | ----------begin_max5_patcher----------
46 | 923.3ocuWF0aZCCD.9Y3WgUTk1KzpXmDHr25l19CzmlllpLAWpqRribbZosp
47 | +2m84.DngRJX5CPjubwm+t67c1uNbPvL4RVU.56n+hFL30gCF.hrBFzLdPPA
48 | cYVNsBTKPvdRN6gfQtWoYK0f3WxQU47LFhr5U74vKLJeYzjUBE0EbQNSCyEY
49 | iPYsdWokTc18bwhaUrLsaEhiuJbDhjNw9HIAFPtJD8ulOwMK5mKYN8CBFY9g
50 | 9m8suMbn8uQ8DyBVUEcA6cbNm8HPIppdVUlhOigt.itnSpG+InFuepIgIWkX
51 | HEmZAFGi6A2dk4rbFU0Efw9APLwEJmB.Fkbt3aVsVKEcAx5vWIUQKXZl5Vlf
52 | NKGrWXWPhOVHS.HIwq9e+PNiJVbbftm8nkJVISLGQKsO5xODF3GVA5hhBsOl
53 | N9bEOqKXh50XnYEMExBvog+1t0mbMdp84H6eFgINgjezgP2WrR30MZNsKgwA
54 | qIokyypqWRhhNniMEbr3vvC6Y4BMTD7nKDpkKVjy5HYgL47uoIEp0gSh66dF
55 | KtdFyzufZCweUXtuR7lJCRk1zJqKOfuJy6nLEpClL4bUUHSVXpKneGh+QVix
56 | nhVMt0RDEYhpZdVcNUgtgorM2+VE5m2ah0YlPMux7xqP+5Ql5YMuv7M2yPOR
57 | yqYn5x4TMqBw0nm344HyDZHnrVitSIKPl0zky1jQkyErLYsPu0QbTrJyRkp4
58 | RwscpQ6v.9STbN7CBCVG+DrqUKwUn1FE7nq9lFWrwvVm71dyUZemTnuilwZC
59 | QKbwS8HtwScod.tjPOi6Ng51Pj1l1J9K.sQ1NhdiMWufHX+T7jiDs8dzOovj
60 | Up67T8o9prP65Bi+xOcaksnvlBeep8jQ9wEzzlqox3YyCrmiE9Aou973fD2E
61 | 1LUdRNDd4lBEaiHnKTDcmKqBlyJeatqj0prUSWCJnMVbNyTIR.w3V5XulJZe
62 | 6e5qgVMIerkB8gkF2CKg8fgfSAiODRauZJ3yKkliozDtFCo.wgtqvNk79QDb
63 | j6Qx5Qmp+ItG9Gfs8trwQw1r0nwt6vDsdvItzR6SNBYKkjp4LEzO3zbJj9X5
64 | XejdF9Ib+mV9Yu1x4Cj9h1vk1e6ra1A9z7j8wxDejcPhOJeoqO.srzbf7pFk
65 | AaX5h8fD7.oifgbgaHzWxb+lG4qzGtec.UYZSoM8npUv5JX4X28bBJjFeonl
66 | 23NMzYLIzEUXt+WUYyYVglsCea3+AjpWsaH
67 | -----------end_max5_patcher-----------
68 |
69 |
70 | #### Combining with umenus
71 |
72 |
73 | ----------begin_max5_patcher----------
74 | 1666.3ocuY0zbahCF9bxuBML8Xni9Fo8FXfY50saOs6NcHXkD5XCd.baZ6r+
75 | 2WgD3XmXa.CNWf7JKfmm2u0a98s23bewypJGve.9avM276au4FyRMKbSq7MN
76 | qSdNcURkYaNqUUUIOpbty9a0pmqMqmtRkT1sZw15Up55etQYe0NNf+s8m1jT
77 | m9TV9iesTkVa+Ujz6iv6.HAq4FwbEi+Hb2yjuccVt9EZP.tcwrkluaw8eyEA
78 | cdYm1usYqnlE+uaus4xcSjeUpZvGPWFAIMrQSPtn4FEMZBJlO9kq9g9M9F5s
79 | oTsQkubZ7yZGYjyyOza4G+pyuesBTsJKUAHmlh20GMMziB4FVNd2T1wYI9BX
80 | YZw50p752Py3hs4KAgpuqoZ0+j+ku7ov6.+4m+7m514prbUpdS06iQswuR+1
81 | RpyJx+5w2wQhZIzOxzpCoQQfXPSvKYDVcB93JD3LpP9rprQWn+yEOkTljVqJ
82 | yppyRcNiYFQLDiXcps2vvwPLz7QrsZZs8j9rYMTd.ttsglThwJgfv237lUqV
83 | 2VHvAIfwMuRrOR1b+tlK5EY1EwAGYQ6Szsne6NkGaQpyf0jX1KFpxj0Js46q
84 | p7j6WYT.vipkIyWViZPEvTXCfOaZi1heV6w4rCXnzDl.MNUbznyThOQLCYFK
85 | 0kVjqSAb4k6ZIIlaxLv8FchRL7pWO3wjZUOF0yGPQM1QOSsNJd7srPmuhA85
86 | 7hlGmWTGOoWpy60228glBfWXanV500Fpbz1T50uKzklJ65HSP016qRKyt2H7
87 | gcZ19KkOxXYAuoXH11UNhJFsVgveuZdEjr4x6gsMf1VsWxGsuMYFyYMS07ML
88 | pq+rdJ46wI95.f.2nPehKkgCcEgw9tbuvXXLSFShzDD3JDcEziD577gdbWn.
89 | 66RWPibCBoTWY.xiwHXhGmZdBb2SDygvXR.2cAGxcon3Et9bRfaXT.2OlEDE
90 | rnoyBr2tOgO0mFxXtdQDMnB0fJXwBgtq.FhrHxWf7oGBJYDk5i8PtgAROWJM
91 | zyUFpuPEXTDILfIobySv2ApXrOiDSc88w5uATydANRnaNcgbASxhiQDySH6d
92 | BFERhCk9tQXOnKEigMbNvESEggLhTxaI9NdDRjXNIJxU+KZr3Eq+FALptNWb
93 | LmA0JhEwGPbQfj6gHP23Hhvk5ywtAdZiiGTPnRs9kGsn4S3QGdtW46SmT0EO
94 | 93J0YcdOmSq.YOMgw2Eu65voo23oI58ml1XyIPSw6CMOUcHcB2hxKuCwV5aq
95 | zxtfFDmwRsm5ji+0SYU.0yIq2rRAVpVWjWUWp6ZrBT+jBrsQs.Jd.XxUWAxx
96 | A51l+117zlJufejU+DP+Yb0VDPcAn5ohezbuq0Z8eZKkWA1TV7n1DtVWxNMY
97 | 0pedENodi90CYGtFdzGSGit9GS+KUZHuSgYzdGTD7TrhJsNRu8L5OTjW+PRp
98 | ZeR0GSQxqOSa4XeDydN81IN4MBqEZWlgFMPU1uLZ.RSCMyE0N4HRSSxu3TBs
99 | I9aSIL9QjRt5cY9JK2an2prJSiYl6CnUS6L.zwkrQ1pIp+iNZdWlTHuZ39F3
100 | zr9g7upXaYZGQ5FoN3EHsTUUmkaR6r2lv18bTU7P+PlQD02GRbvdVmsbSgtB
101 | aK0vlw0wvh8FW2gRXtsBKjdDIaFQr8j7GJg3sYKM1HizNPTTtTUd5HnAS+lw
102 | mg5g97yRepMIQKVsyd4PIb6LXZSSdfDRd.GkFNNIJwGfAkbVJ0BFr8eq.t6z
103 | XSGZhA.sgfr4WoMnv.L7JFGzNOGjvn5ajdquNZRbjMDJxNGEob6j4sjRXG91
104 | gRXqyBztyFoIZYZlTWuQnC.0Dqa7dBSEXCINa.dLDrMevKBS0WFO.jgNKvrd
105 | gsHCgs+ukNPBKDufZivTQ8TAMhg1gk4FX84+8pzGuFYdXSzf.9BxLByggFMo
106 | HZLQZPCxa+vVzL4Dh6ydROK13PiWHWtW7QivTg1f5sBOf.jNes8jlAmsoo0P
107 | RxUQqQGdComO9DY66YOo4nBAbRQnspo1NcHyUIBxP7zdUAtiiL99Eu3y.x3S
108 | tFQqxZ1S25Mj5pmCYRSZCjMa6dBSEXzIqxrJIzdkALBSEXCosZLsejg1u.0b
109 | nxHSUiYsd83iYOrcxlMeWUV09xMPxYcx2JLMNKtyHlkaEMGp2oT88rt8SLqj
110 | Tl9TVsJsdaogFNOysS5zYcgtE77sYscgqUF5OoYjE4IqUUaZmzkYxF29e29+
111 | .0eXAXC
112 | -----------end_max5_patcher-----------
113 |
114 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/docs/byte-cast.maxref.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | For casting a list of byte data
5 | Max Object to cast a list of byte data such as that received from Arduino serial comms or Bluetooth Low Energy devices
6 |
7 |
8 | Matthew Hamilton
9 | serial
10 | data
11 | byte
12 |
13 |
14 |
15 |
16 | Output Types
17 | The number of arguments determines the number of outlets. Each outlet decodes a list of bytes as either 16-bit 32-bit signed or unsigned int, 32-bit or 64-bit float or symbol.
18 |
19 | Decoding method is identified by symbol arguments (h, i, f, or s) similar to C format strings.
20 |
21 | Modifiers can be used to dictate endianess ('<' little, `>` big) and signing ('u' for unsigned). e.g. `uh>` is an unsigned 16-bit int in big-endian order.
22 |
23 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | List
39 | list of bytes to cast
40 |
41 |
42 |
43 |
44 |
45 | List Data
46 | Byte data cast to specified format. If multiple bytes worth of data is provided, mutliple values will be output. Incomplete data will be ignored.
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/docs/max-ble.maxref.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Bluetooth Low Energy Interface
5 | Max Object to interface with Bluetooth Low Energy devices like Mobile devices, Arduinos and other micro-controllers
6 |
7 |
8 | Matthew Hamilton
9 | ble
10 | bluetooth
11 | 64-bit
12 |
13 |
14 |
15 |
16 | Message inlet: valid messages begin with scan, stop, found, clear, connect, report and device
17 | Message inlet: valid messages begin with scan, stop, found, clear, connect, report and device
18 |
19 |
20 |
21 |
22 |
23 | List Outlet: The found message will output a list of found device UUIDs and RSSIs in series. A connect message will output Service and Charachteristic UUIDs with raw bytes in series.
24 | List ID: The found message will output a list of found device UUIDs and RSSIs in series. A connect message will output Service and Charachteristic UUIDs with raw bytes in series.
25 |
26 |
27 | Notification outlet: Subscribed charateristics will output a list of Characteristic UUID and raw bytes on value change
28 | Notification outlet: Subscribed charateristics will output a list of Characteristic UUID and raw bytes on value change
29 |
30 |
31 |
32 |
33 |
34 | clear the internal list of found devices.
35 | clear the internal list of found devices.
36 |
37 |
38 | connect followed by an int will attempt connect to a found device at the given index. All Services and Characteristics will be sent out the first outlet and will bre printed if reporting is on.
39 |
40 | connect int:
41 | connect followed by an int will attempt connect to a found device at the given index. All Services and Characteristics will be sent out the first outlet and will bre printed if reporting is on.
42 |
43 | connect symbol:
44 | connect followed by a symbol will interpret the symbol as uuid and attept to connect to the specified device. If the device has not yet been discovered this will trigger scanning and immediately connect once the device has been found.
45 |
46 | connect name symbol:
47 | connect followed by name then a symbol will interpret the symbol as device name. This will connect to the first device in found devices matching the name.
48 |
49 |
50 |
51 | A device list message is used to interact with the found devices. The int following device specifies the index in found devices.
52 |
53 |
54 | device int rssi:
55 | The int specifies the device index in found devices. RSSI value will be returned out the first inlet as a list message.
56 |
57 | device int subscribe ServiceUUID CharacteristicUUID:
58 | Subscribe to the notifying characteristic of a with a Characteristic UUID of a Service UUID for a device at the index int. Updates to characteristic value will be sent out the second outlet in list form CharacteristicUUID then the raw bytes.
59 |
60 |
61 |
62 | filter out devices during scanning
63 |
64 |
65 |
66 | filter rssi int:
67 |
68 | ignore devices with an RSSI higher than the int specified
69 |
70 |
71 | filter iphone int:
72 |
73 | toggle ignoring apple devices with 1 to ignore and 0 to allow. Useful for thinning out scanning for Arduinos.
74 |
75 |
76 | filter services UUIDlist:
77 |
78 | 'filter' followed by 'services' followed by a list of symbols will scan only for devices advertising one of the listed service UUIDs. This message will trigger the scanning process if it is not already active.
79 |
80 |
81 |
82 | output, in series, the list of found devices and their RSSIs from outlet 3 and post this to the Max Console if reporting is on.
83 |
84 | output, in series, the list of found devices and their RSSIs from outlet 3 and post this to the Max Console if reporting is on.
85 |
86 |
87 | A report message followed by 0 or 1 will toggle reporting printouts to the Max Console.
88 |
89 | A report message followed by 0 or 1 will toggle reporting printouts to the Max Console.
90 |
91 |
92 |
93 | A scan message will begin scanning for BLE devices. A scan message followed by 0 or 1 will toggle scanning.
94 |
95 |
96 |
97 | scan int:
98 |
99 | scan followed by 0 or 1 will toggle scanning.
100 |
101 |
102 | scan symbol:
103 |
104 | scan followed by a list of symbols will begin scanning for devices with any of the advertised uuids in the list
105 |
106 |
107 |
108 | A stop message will halt scanning.
109 |
110 | A stop message will halt scanning.
111 |
112 |
113 |
114 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/docs/topics/max_hardware_library_topic.maxvig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Matthew Hamilton
6 | mhl
7 |
8 |
9 |
10 | Max Hardware Library
11 |
12 | The Max Hardware Library looks to collect together a series of utility objects at interacting with electronics hardware like Arduino.
13 | The package provides objects and examples for communicating via Bluetooth Low Energy and for casting raw byte data to other data types.
14 |
15 |
16 | Source code for the library is open and avilable at github.com/mhamilt/max-hardware-library .
17 | Contact the repository owner for any feature requests.
18 |
19 |
20 |
21 | The Objects
22 |
23 | max-ble - Interface with Bluetooth Low Energy devices like mobile devices, Arduino and other micro-controllers with BLE capability
24 | byte-cast - Cast a list of bytes to other data formats.
25 |
26 |
27 |
28 | Example Patches
29 |
30 |
31 | mhl.subscribing.maxpat - Subscribing to a BLE Characteristic with a notifying property
32 | mhl.filter-scan.maxpat - Filtering BLE scan results
33 | mhl.rssi.maxpat - Filtering out devices by signal strength.
34 | mhl.using-umenus.maxpat - Using a umenu to store discovered BLE devices
35 | mhl.arduino-notify.maxpat - Accompanying patcher for included Arduino sketch demonstrating how to advertise over BLE and read with max-ble
36 | mhl.byte-cast-example.maxpat - Casting bytes to data types
37 | mhl.formats.maxpat - Data formats supported by byte-cast
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.arduino-notify.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 74.0, 106.0, 738.0, 550.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-42",
43 | "maxclass" : "newobj",
44 | "numinlets" : 1,
45 | "numoutlets" : 0,
46 | "patching_rect" : [ 105.0, 480.0, 91.0, 22.0 ],
47 | "text" : "print @popup 1"
48 | }
49 |
50 | }
51 | , {
52 | "box" : {
53 | "id" : "obj-41",
54 | "linecount" : 3,
55 | "maxclass" : "comment",
56 | "numinlets" : 1,
57 | "numoutlets" : 0,
58 | "patching_rect" : [ 29.0, 130.5, 330.0, 47.0 ],
59 | "text" : "Upload Sketch at \n\n~/Documents/Max 8/Packages/max-ble/extras/ble-notify"
60 | }
61 |
62 | }
63 | , {
64 | "box" : {
65 | "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
66 | "fontname" : "Arial Bold",
67 | "hint" : "",
68 | "id" : "obj-39",
69 | "ignoreclick" : 1,
70 | "legacytextcolor" : 1,
71 | "maxclass" : "textbutton",
72 | "numinlets" : 1,
73 | "numoutlets" : 3,
74 | "outlettype" : [ "", "", "int" ],
75 | "parameter_enable" : 0,
76 | "patching_rect" : [ 3.0, 144.0, 21.0, 20.0 ],
77 | "rounded" : 60.0,
78 | "text" : "1",
79 | "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
80 | }
81 |
82 | }
83 | , {
84 | "box" : {
85 | "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
86 | "fontname" : "Arial Bold",
87 | "hint" : "",
88 | "id" : "obj-37",
89 | "ignoreclick" : 1,
90 | "legacytextcolor" : 1,
91 | "maxclass" : "textbutton",
92 | "numinlets" : 1,
93 | "numoutlets" : 3,
94 | "outlettype" : [ "", "", "int" ],
95 | "parameter_enable" : 0,
96 | "patching_rect" : [ 608.5, 188.5, 20.0, 20.0 ],
97 | "rounded" : 60.0,
98 | "text" : "5",
99 | "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
100 | }
101 |
102 | }
103 | , {
104 | "box" : {
105 | "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
106 | "fontname" : "Arial Bold",
107 | "hint" : "",
108 | "id" : "obj-36",
109 | "ignoreclick" : 1,
110 | "legacytextcolor" : 1,
111 | "maxclass" : "textbutton",
112 | "numinlets" : 1,
113 | "numoutlets" : 3,
114 | "outlettype" : [ "", "", "int" ],
115 | "parameter_enable" : 0,
116 | "patching_rect" : [ 496.5, 364.5, 20.0, 20.0 ],
117 | "rounded" : 60.0,
118 | "text" : "4",
119 | "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
120 | }
121 |
122 | }
123 | , {
124 | "box" : {
125 | "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
126 | "fontname" : "Arial Bold",
127 | "hint" : "",
128 | "id" : "obj-35",
129 | "ignoreclick" : 1,
130 | "legacytextcolor" : 1,
131 | "maxclass" : "textbutton",
132 | "numinlets" : 1,
133 | "numoutlets" : 3,
134 | "outlettype" : [ "", "", "int" ],
135 | "parameter_enable" : 0,
136 | "patching_rect" : [ 406.0, 175.0, 20.0, 20.0 ],
137 | "rounded" : 60.0,
138 | "text" : "3",
139 | "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
140 | }
141 |
142 | }
143 | , {
144 | "box" : {
145 | "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
146 | "fontname" : "Arial Bold",
147 | "hint" : "",
148 | "id" : "obj-34",
149 | "ignoreclick" : 1,
150 | "legacytextcolor" : 1,
151 | "maxclass" : "textbutton",
152 | "numinlets" : 1,
153 | "numoutlets" : 3,
154 | "outlettype" : [ "", "", "int" ],
155 | "parameter_enable" : 0,
156 | "patching_rect" : [ 239.5, 206.0, 20.0, 20.0 ],
157 | "rounded" : 60.0,
158 | "text" : "2",
159 | "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
160 | }
161 |
162 | }
163 | , {
164 | "box" : {
165 | "bubble" : 1,
166 | "bubblepoint" : 0.3,
167 | "bubbleside" : 3,
168 | "fontname" : "Arial",
169 | "fontsize" : 13.0,
170 | "id" : "obj-26",
171 | "maxclass" : "comment",
172 | "numinlets" : 1,
173 | "numoutlets" : 0,
174 | "patching_rect" : [ 13.5, 480.0, 85.0, 25.0 ],
175 | "text" : "LED State"
176 | }
177 |
178 | }
179 | , {
180 | "box" : {
181 | "bubble" : 1,
182 | "bubblepoint" : 0.15,
183 | "bubbleside" : 2,
184 | "fontname" : "Arial",
185 | "fontsize" : 13.0,
186 | "id" : "obj-17",
187 | "linecount" : 2,
188 | "maxclass" : "comment",
189 | "numinlets" : 1,
190 | "numoutlets" : 0,
191 | "patching_rect" : [ 263.0, 197.0, 141.0, 55.0 ],
192 | "presentation_linecount" : 2,
193 | "text" : "Or the Specific Service"
194 | }
195 |
196 | }
197 | , {
198 | "box" : {
199 | "id" : "obj-3",
200 | "linecount" : 2,
201 | "maxclass" : "message",
202 | "numinlets" : 2,
203 | "numoutlets" : 1,
204 | "outlettype" : [ "" ],
205 | "patching_rect" : [ 168.5, 250.0, 249.0, 35.0 ],
206 | "text" : "filter services 19B10000-E8F2-537E-4F6C-D104768A1214"
207 | }
208 |
209 | }
210 | , {
211 | "box" : {
212 | "bubble" : 1,
213 | "bubblepoint" : 0.3,
214 | "bubbleside" : 2,
215 | "fontname" : "Arial",
216 | "fontsize" : 13.0,
217 | "id" : "obj-38",
218 | "linecount" : 2,
219 | "maxclass" : "comment",
220 | "numinlets" : 1,
221 | "numoutlets" : 0,
222 | "patching_rect" : [ 636.5, 188.5, 95.0, 55.0 ],
223 | "text" : "Subscribe to Characteristic"
224 | }
225 |
226 | }
227 | , {
228 | "box" : {
229 | "id" : "obj-14",
230 | "linecount" : 3,
231 | "maxclass" : "comment",
232 | "numinlets" : 1,
233 | "numoutlets" : 0,
234 | "patching_rect" : [ 3.0, 75.0, 602.0, 47.0 ],
235 | "text" : "This examples demonstrates getting updates from an Arduino with a BLE chip such as the Arduino Nano 33 IoT.\n\nThere is a multi-stage process to start getting data from your Arduino"
236 | }
237 |
238 | }
239 | , {
240 | "box" : {
241 | "fontface" : 1,
242 | "id" : "obj-15",
243 | "maxclass" : "comment",
244 | "numinlets" : 1,
245 | "numoutlets" : 0,
246 | "patching_rect" : [ 3.0, 53.0, 182.0, 20.0 ],
247 | "text" : "Arduino Notification"
248 | }
249 |
250 | }
251 | , {
252 | "box" : {
253 | "fontsize" : 36.0,
254 | "id" : "obj-16",
255 | "maxclass" : "comment",
256 | "numinlets" : 1,
257 | "numoutlets" : 0,
258 | "patching_rect" : [ 3.0, 4.0, 137.0, 47.0 ],
259 | "text" : "max-ble"
260 | }
261 |
262 | }
263 | , {
264 | "box" : {
265 | "id" : "obj-11",
266 | "maxclass" : "newobj",
267 | "numinlets" : 2,
268 | "numoutlets" : 2,
269 | "outlettype" : [ "", "" ],
270 | "patching_rect" : [ 137.0, 411.0, 55.0, 22.0 ],
271 | "text" : "zl slice 1"
272 | }
273 |
274 | }
275 | , {
276 | "box" : {
277 | "id" : "obj-22",
278 | "maxclass" : "message",
279 | "numinlets" : 2,
280 | "numoutlets" : 1,
281 | "outlettype" : [ "" ],
282 | "patching_rect" : [ 529.0, 370.5, 148.0, 22.0 ],
283 | "text" : "device $1 subscribe $2 $3"
284 | }
285 |
286 | }
287 | , {
288 | "box" : {
289 | "id" : "obj-19",
290 | "maxclass" : "newobj",
291 | "numinlets" : 1,
292 | "numoutlets" : 1,
293 | "outlettype" : [ "" ],
294 | "patching_rect" : [ 548.0, 328.5, 53.0, 22.0 ],
295 | "text" : "prepend"
296 | }
297 |
298 | }
299 | , {
300 | "box" : {
301 | "id" : "obj-18",
302 | "maxclass" : "message",
303 | "numinlets" : 2,
304 | "numoutlets" : 1,
305 | "outlettype" : [ "" ],
306 | "patching_rect" : [ 560.0, 295.5, 41.0, 22.0 ],
307 | "text" : "set $1"
308 | }
309 |
310 | }
311 | , {
312 | "box" : {
313 | "id" : "obj-8",
314 | "maxclass" : "newobj",
315 | "numinlets" : 1,
316 | "numoutlets" : 1,
317 | "outlettype" : [ "" ],
318 | "patching_rect" : [ 532.5, 215.5, 96.0, 22.0 ],
319 | "text" : "prepend append"
320 | }
321 |
322 | }
323 | , {
324 | "box" : {
325 | "id" : "obj-13",
326 | "items" : [ "19B10000-E8F2-537E-4F6C-D104768A1214", "19B10001-E8F2-537E-4F6C-D104768A1214", 1 ],
327 | "maxclass" : "umenu",
328 | "numinlets" : 1,
329 | "numoutlets" : 3,
330 | "outlettype" : [ "int", "", "" ],
331 | "parameter_enable" : 0,
332 | "patching_rect" : [ 532.5, 251.5, 185.0, 22.0 ]
333 | }
334 |
335 | }
336 | , {
337 | "box" : {
338 | "id" : "obj-12",
339 | "maxclass" : "newobj",
340 | "numinlets" : 1,
341 | "numoutlets" : 1,
342 | "outlettype" : [ "" ],
343 | "patching_rect" : [ 308.0, 328.5, 96.0, 22.0 ],
344 | "text" : "prepend append"
345 | }
346 |
347 | }
348 | , {
349 | "box" : {
350 | "id" : "obj-6",
351 | "maxclass" : "newobj",
352 | "numinlets" : 1,
353 | "numoutlets" : 3,
354 | "outlettype" : [ "", "int", "clear" ],
355 | "patching_rect" : [ 308.0, 435.5, 61.0, 22.0 ],
356 | "text" : "t s 2 clear"
357 | }
358 |
359 | }
360 | , {
361 | "box" : {
362 | "id" : "obj-5",
363 | "maxclass" : "newobj",
364 | "numinlets" : 2,
365 | "numoutlets" : 2,
366 | "outlettype" : [ "", "" ],
367 | "patching_rect" : [ 240.0, 379.0, 42.0, 22.0 ],
368 | "text" : "gate 2"
369 | }
370 |
371 | }
372 | , {
373 | "box" : {
374 | "id" : "obj-4",
375 | "maxclass" : "newobj",
376 | "numinlets" : 1,
377 | "numoutlets" : 3,
378 | "outlettype" : [ "", "clear", "int" ],
379 | "patching_rect" : [ 428.0, 250.0, 61.0, 22.0 ],
380 | "text" : "t s clear 1"
381 | }
382 |
383 | }
384 | , {
385 | "box" : {
386 | "id" : "obj-2",
387 | "items" : [ "4A3C5C33-79CB-4A46-93BF-67B2BD228E6A", -64 ],
388 | "maxclass" : "umenu",
389 | "numinlets" : 1,
390 | "numoutlets" : 3,
391 | "outlettype" : [ "int", "", "" ],
392 | "parameter_enable" : 0,
393 | "patching_rect" : [ 308.0, 364.5, 185.0, 22.0 ]
394 | }
395 |
396 | }
397 | , {
398 | "box" : {
399 | "bubble" : 1,
400 | "bubbleside" : 2,
401 | "fontname" : "Arial",
402 | "fontsize" : 13.0,
403 | "id" : "obj-32",
404 | "linecount" : 2,
405 | "maxclass" : "comment",
406 | "numinlets" : 1,
407 | "numoutlets" : 0,
408 | "patching_rect" : [ 406.0, 307.5, 120.0, 55.0 ],
409 | "text" : "Connect to Device at Index"
410 | }
411 |
412 | }
413 | , {
414 | "box" : {
415 | "bubble" : 1,
416 | "bubblepoint" : 0.09,
417 | "bubbleside" : 2,
418 | "fontname" : "Arial",
419 | "fontsize" : 13.0,
420 | "id" : "obj-30",
421 | "maxclass" : "comment",
422 | "numinlets" : 1,
423 | "numoutlets" : 0,
424 | "patching_rect" : [ 428.0, 170.0, 140.0, 40.0 ],
425 | "text" : "List Found Devices"
426 | }
427 |
428 | }
429 | , {
430 | "box" : {
431 | "bubble" : 1,
432 | "bubblepoint" : 0.236333333333333,
433 | "bubbleside" : 2,
434 | "fontname" : "Arial",
435 | "fontsize" : 13.0,
436 | "id" : "obj-29",
437 | "linecount" : 3,
438 | "maxclass" : "comment",
439 | "numinlets" : 1,
440 | "numoutlets" : 0,
441 | "patching_rect" : [ 3.0, 197.0, 90.0, 69.0 ],
442 | "text" : "Toggle Printing To Console"
443 | }
444 |
445 | }
446 | , {
447 | "box" : {
448 | "bubble" : 1,
449 | "fontname" : "Arial",
450 | "fontsize" : 13.0,
451 | "id" : "obj-47",
452 | "linecount" : 2,
453 | "maxclass" : "comment",
454 | "numinlets" : 1,
455 | "numoutlets" : 0,
456 | "patching_rect" : [ 133.5, 197.0, 99.0, 40.0 ],
457 | "text" : "Scan For Arduino"
458 | }
459 |
460 | }
461 | , {
462 | "box" : {
463 | "id" : "obj-21",
464 | "maxclass" : "message",
465 | "numinlets" : 2,
466 | "numoutlets" : 1,
467 | "outlettype" : [ "" ],
468 | "patching_rect" : [ 308.0, 402.5, 67.0, 22.0 ],
469 | "text" : "connect $1"
470 | }
471 |
472 | }
473 | , {
474 | "box" : {
475 | "id" : "obj-10",
476 | "maxclass" : "message",
477 | "numinlets" : 2,
478 | "numoutlets" : 1,
479 | "outlettype" : [ "" ],
480 | "patching_rect" : [ 480.5, 212.0, 35.0, 22.0 ],
481 | "text" : "clear"
482 | }
483 |
484 | }
485 | , {
486 | "box" : {
487 | "id" : "obj-7",
488 | "maxclass" : "message",
489 | "numinlets" : 2,
490 | "numoutlets" : 1,
491 | "outlettype" : [ "" ],
492 | "patching_rect" : [ 428.0, 212.0, 39.0, 22.0 ],
493 | "text" : "found"
494 | }
495 |
496 | }
497 | , {
498 | "box" : {
499 | "id" : "obj-27",
500 | "maxclass" : "toggle",
501 | "numinlets" : 1,
502 | "numoutlets" : 1,
503 | "outlettype" : [ "int" ],
504 | "parameter_enable" : 0,
505 | "patching_rect" : [ 105.0, 206.0, 24.0, 24.0 ]
506 | }
507 |
508 | }
509 | , {
510 | "box" : {
511 | "id" : "obj-28",
512 | "maxclass" : "toggle",
513 | "numinlets" : 1,
514 | "numoutlets" : 1,
515 | "outlettype" : [ "int" ],
516 | "parameter_enable" : 0,
517 | "patching_rect" : [ 13.5, 273.0, 24.0, 24.0 ]
518 | }
519 |
520 | }
521 | , {
522 | "box" : {
523 | "id" : "obj-24",
524 | "maxclass" : "message",
525 | "numinlets" : 2,
526 | "numoutlets" : 1,
527 | "outlettype" : [ "" ],
528 | "patching_rect" : [ 13.5, 304.0, 57.0, 22.0 ],
529 | "text" : "report $1"
530 | }
531 |
532 | }
533 | , {
534 | "box" : {
535 | "id" : "obj-9",
536 | "maxclass" : "message",
537 | "numinlets" : 2,
538 | "numoutlets" : 1,
539 | "outlettype" : [ "" ],
540 | "patching_rect" : [ 105.0, 248.0, 51.0, 22.0 ],
541 | "text" : "scan $1"
542 | }
543 |
544 | }
545 | , {
546 | "box" : {
547 | "id" : "obj-1",
548 | "maxclass" : "newobj",
549 | "numinlets" : 1,
550 | "numoutlets" : 2,
551 | "outlettype" : [ "list", "list" ],
552 | "patching_rect" : [ 84.5, 372.0, 71.5, 22.0 ],
553 | "text" : "max-ble"
554 | }
555 |
556 | }
557 | ],
558 | "lines" : [ {
559 | "patchline" : {
560 | "destination" : [ "obj-11", 0 ],
561 | "midpoints" : [ 146.5, 396.0, 146.5, 396.0 ],
562 | "source" : [ "obj-1", 1 ]
563 | }
564 |
565 | }
566 | , {
567 | "patchline" : {
568 | "destination" : [ "obj-5", 1 ],
569 | "midpoints" : [ 94.0, 396.0, 225.0, 396.0, 225.0, 366.0, 272.5, 366.0 ],
570 | "source" : [ "obj-1", 0 ]
571 | }
572 |
573 | }
574 | , {
575 | "patchline" : {
576 | "destination" : [ "obj-1", 0 ],
577 | "midpoints" : [ 490.0, 294.0, 393.0, 294.0, 393.0, 315.0, 94.0, 315.0 ],
578 | "source" : [ "obj-10", 0 ]
579 | }
580 |
581 | }
582 | , {
583 | "patchline" : {
584 | "destination" : [ "obj-42", 0 ],
585 | "midpoints" : [ 182.5, 465.0, 114.5, 465.0 ],
586 | "source" : [ "obj-11", 1 ]
587 | }
588 |
589 | }
590 | , {
591 | "patchline" : {
592 | "destination" : [ "obj-2", 0 ],
593 | "midpoints" : [ 317.5, 351.0, 317.5, 351.0 ],
594 | "source" : [ "obj-12", 0 ]
595 | }
596 |
597 | }
598 | , {
599 | "patchline" : {
600 | "destination" : [ "obj-19", 0 ],
601 | "midpoints" : [ 625.0, 324.0, 557.5, 324.0 ],
602 | "source" : [ "obj-13", 1 ]
603 | }
604 |
605 | }
606 | , {
607 | "patchline" : {
608 | "destination" : [ "obj-19", 0 ],
609 | "midpoints" : [ 569.5, 318.0, 558.0, 318.0, 558.0, 324.0, 557.5, 324.0 ],
610 | "source" : [ "obj-18", 0 ]
611 | }
612 |
613 | }
614 | , {
615 | "patchline" : {
616 | "destination" : [ "obj-22", 0 ],
617 | "midpoints" : [ 557.5, 351.0, 538.5, 351.0 ],
618 | "source" : [ "obj-19", 0 ]
619 | }
620 |
621 | }
622 | , {
623 | "patchline" : {
624 | "destination" : [ "obj-18", 0 ],
625 | "midpoints" : [ 317.5, 387.0, 294.0, 387.0, 294.0, 297.0, 429.0, 297.0, 429.0, 291.0, 569.5, 291.0 ],
626 | "order" : 0,
627 | "source" : [ "obj-2", 0 ]
628 | }
629 |
630 | }
631 | , {
632 | "patchline" : {
633 | "destination" : [ "obj-21", 0 ],
634 | "midpoints" : [ 317.5, 387.0, 317.5, 387.0 ],
635 | "order" : 1,
636 | "source" : [ "obj-2", 0 ]
637 | }
638 |
639 | }
640 | , {
641 | "patchline" : {
642 | "destination" : [ "obj-6", 0 ],
643 | "midpoints" : [ 317.5, 426.0, 317.5, 426.0 ],
644 | "source" : [ "obj-21", 0 ]
645 | }
646 |
647 | }
648 | , {
649 | "patchline" : {
650 | "destination" : [ "obj-1", 0 ],
651 | "midpoints" : [ 538.5, 402.0, 387.0, 402.0, 387.0, 396.0, 294.0, 396.0, 294.0, 357.0, 94.0, 357.0 ],
652 | "source" : [ "obj-22", 0 ]
653 | }
654 |
655 | }
656 | , {
657 | "patchline" : {
658 | "destination" : [ "obj-1", 0 ],
659 | "midpoints" : [ 23.0, 357.0, 94.0, 357.0 ],
660 | "source" : [ "obj-24", 0 ]
661 | }
662 |
663 | }
664 | , {
665 | "patchline" : {
666 | "destination" : [ "obj-9", 0 ],
667 | "midpoints" : [ 114.5, 231.0, 114.5, 231.0 ],
668 | "source" : [ "obj-27", 0 ]
669 | }
670 |
671 | }
672 | , {
673 | "patchline" : {
674 | "destination" : [ "obj-24", 0 ],
675 | "midpoints" : [ 23.0, 300.0, 23.0, 300.0 ],
676 | "source" : [ "obj-28", 0 ]
677 | }
678 |
679 | }
680 | , {
681 | "patchline" : {
682 | "destination" : [ "obj-1", 0 ],
683 | "midpoints" : [ 178.0, 357.0, 94.0, 357.0 ],
684 | "source" : [ "obj-3", 0 ]
685 | }
686 |
687 | }
688 | , {
689 | "patchline" : {
690 | "destination" : [ "obj-1", 0 ],
691 | "midpoints" : [ 437.5, 294.0, 393.0, 294.0, 393.0, 315.0, 94.0, 315.0 ],
692 | "source" : [ "obj-4", 0 ]
693 | }
694 |
695 | }
696 | , {
697 | "patchline" : {
698 | "destination" : [ "obj-2", 0 ],
699 | "midpoints" : [ 458.5, 294.0, 393.0, 294.0, 393.0, 315.0, 294.0, 315.0, 294.0, 360.0, 317.5, 360.0 ],
700 | "source" : [ "obj-4", 1 ]
701 | }
702 |
703 | }
704 | , {
705 | "patchline" : {
706 | "destination" : [ "obj-5", 0 ],
707 | "midpoints" : [ 479.5, 294.0, 393.0, 294.0, 393.0, 315.0, 249.5, 315.0 ],
708 | "source" : [ "obj-4", 2 ]
709 | }
710 |
711 | }
712 | , {
713 | "patchline" : {
714 | "destination" : [ "obj-12", 0 ],
715 | "midpoints" : [ 249.5, 411.0, 294.0, 411.0, 294.0, 324.0, 317.5, 324.0 ],
716 | "source" : [ "obj-5", 0 ]
717 | }
718 |
719 | }
720 | , {
721 | "patchline" : {
722 | "destination" : [ "obj-8", 0 ],
723 | "midpoints" : [ 272.5, 402.0, 294.0, 402.0, 294.0, 297.0, 429.0, 297.0, 429.0, 282.0, 519.0, 282.0, 519.0, 210.0, 542.0, 210.0 ],
724 | "source" : [ "obj-5", 1 ]
725 | }
726 |
727 | }
728 | , {
729 | "patchline" : {
730 | "destination" : [ "obj-1", 0 ],
731 | "midpoints" : [ 317.5, 459.0, 204.0, 459.0, 204.0, 357.0, 94.0, 357.0 ],
732 | "source" : [ "obj-6", 0 ]
733 | }
734 |
735 | }
736 | , {
737 | "patchline" : {
738 | "destination" : [ "obj-13", 0 ],
739 | "midpoints" : [ 359.5, 459.0, 525.0, 459.0, 525.0, 363.0, 528.0, 363.0, 528.0, 285.0, 519.0, 285.0, 519.0, 246.0, 542.0, 246.0 ],
740 | "source" : [ "obj-6", 2 ]
741 | }
742 |
743 | }
744 | , {
745 | "patchline" : {
746 | "destination" : [ "obj-5", 0 ],
747 | "midpoints" : [ 338.5, 468.0, 294.0, 468.0, 294.0, 366.0, 249.5, 366.0 ],
748 | "source" : [ "obj-6", 1 ]
749 | }
750 |
751 | }
752 | , {
753 | "patchline" : {
754 | "destination" : [ "obj-4", 0 ],
755 | "midpoints" : [ 437.5, 237.0, 437.5, 237.0 ],
756 | "source" : [ "obj-7", 0 ]
757 | }
758 |
759 | }
760 | , {
761 | "patchline" : {
762 | "destination" : [ "obj-13", 0 ],
763 | "midpoints" : [ 542.0, 240.0, 542.0, 240.0 ],
764 | "source" : [ "obj-8", 0 ]
765 | }
766 |
767 | }
768 | , {
769 | "patchline" : {
770 | "destination" : [ "obj-1", 0 ],
771 | "midpoints" : [ 114.5, 357.0, 94.0, 357.0 ],
772 | "source" : [ "obj-9", 0 ]
773 | }
774 |
775 | }
776 | ],
777 | "dependency_cache" : [ {
778 | "name" : "max-ble.mxo",
779 | "type" : "iLaX"
780 | }
781 | ],
782 | "autosave" : 0,
783 | "styles" : [ {
784 | "name" : "AudioStatus_Menu",
785 | "default" : {
786 | "bgfillcolor" : {
787 | "type" : "color",
788 | "color" : [ 0.294118, 0.313726, 0.337255, 1 ],
789 | "color1" : [ 0.454902, 0.462745, 0.482353, 0 ],
790 | "color2" : [ 0.290196, 0.309804, 0.301961, 1 ],
791 | "angle" : 270,
792 | "proportion" : 0.39,
793 | "autogradient" : 0
794 | }
795 |
796 | }
797 | ,
798 | "parentstyle" : "",
799 | "multi" : 0
800 | }
801 | ]
802 | }
803 |
804 | }
805 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.ble-midi.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 34.0, 56.0, 658.0, 773.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "fontsize" : 48.059353564210596,
43 | "id" : "obj-56",
44 | "maxclass" : "comment",
45 | "numinlets" : 1,
46 | "numoutlets" : 0,
47 | "patching_rect" : [ 10.0, 21.0, 180.0, 60.0 ],
48 | "text" : "max-ble"
49 | }
50 |
51 | }
52 | , {
53 | "box" : {
54 | "id" : "obj-52",
55 | "maxclass" : "newobj",
56 | "numinlets" : 1,
57 | "numoutlets" : 0,
58 | "patching_rect" : [ 434.0, 211.5, 82.0, 22.0 ],
59 | "text" : "s \"to max-ble\""
60 | }
61 |
62 | }
63 | , {
64 | "box" : {
65 | "id" : "obj-49",
66 | "maxclass" : "message",
67 | "numinlets" : 2,
68 | "numoutlets" : 1,
69 | "outlettype" : [ "" ],
70 | "patching_rect" : [ 434.0, 181.0, 31.0, 22.0 ],
71 | "text" : "stop"
72 | }
73 |
74 | }
75 | , {
76 | "box" : {
77 | "id" : "obj-39",
78 | "maxclass" : "comment",
79 | "numinlets" : 1,
80 | "numoutlets" : 0,
81 | "patching_rect" : [ 80.25, 584.0, 150.0, 20.0 ],
82 | "text" : "MIDI note Messages"
83 | }
84 |
85 | }
86 | , {
87 | "box" : {
88 | "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
89 | "fontname" : "Arial Bold",
90 | "hint" : "",
91 | "id" : "obj-35",
92 | "ignoreclick" : 1,
93 | "legacytextcolor" : 1,
94 | "maxclass" : "textbutton",
95 | "numinlets" : 1,
96 | "numoutlets" : 3,
97 | "outlettype" : [ "", "", "int" ],
98 | "parameter_enable" : 0,
99 | "patching_rect" : [ 599.0, 390.5, 20.0, 20.0 ],
100 | "rounded" : 60.0,
101 | "text" : "3",
102 | "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
103 | }
104 |
105 | }
106 | , {
107 | "box" : {
108 | "id" : "obj-33",
109 | "maxclass" : "newobj",
110 | "numinlets" : 1,
111 | "numoutlets" : 0,
112 | "patching_rect" : [ 198.5, 533.0, 82.0, 22.0 ],
113 | "text" : "s \"to max-ble\""
114 | }
115 |
116 | }
117 | , {
118 | "box" : {
119 | "id" : "obj-31",
120 | "maxclass" : "newobj",
121 | "numinlets" : 1,
122 | "numoutlets" : 0,
123 | "patching_rect" : [ 455.0, 358.5, 82.0, 22.0 ],
124 | "text" : "s \"to max-ble\""
125 | }
126 |
127 | }
128 | , {
129 | "box" : {
130 | "id" : "obj-23",
131 | "maxclass" : "newobj",
132 | "numinlets" : 0,
133 | "numoutlets" : 1,
134 | "outlettype" : [ "" ],
135 | "patching_rect" : [ 89.0, 251.5, 80.0, 22.0 ],
136 | "text" : "r \"to max-ble\""
137 | }
138 |
139 | }
140 | , {
141 | "box" : {
142 | "id" : "obj-9",
143 | "maxclass" : "newobj",
144 | "numinlets" : 1,
145 | "numoutlets" : 0,
146 | "patching_rect" : [ 349.0, 561.0, 82.0, 22.0 ],
147 | "text" : "s \"to max-ble\""
148 | }
149 |
150 | }
151 | , {
152 | "box" : {
153 | "id" : "obj-58",
154 | "maxclass" : "button",
155 | "numinlets" : 1,
156 | "numoutlets" : 1,
157 | "outlettype" : [ "bang" ],
158 | "parameter_enable" : 0,
159 | "patching_rect" : [ 132.0, 520.5, 24.0, 24.0 ]
160 | }
161 |
162 | }
163 | , {
164 | "box" : {
165 | "id" : "obj-50",
166 | "maxclass" : "newobj",
167 | "numinlets" : 1,
168 | "numoutlets" : 1,
169 | "outlettype" : [ "" ],
170 | "patching_rect" : [ 59.25, 520.5, 25.0, 22.0 ],
171 | "text" : "iter"
172 | }
173 |
174 | }
175 | , {
176 | "box" : {
177 | "id" : "obj-44",
178 | "maxclass" : "message",
179 | "numinlets" : 2,
180 | "numoutlets" : 1,
181 | "outlettype" : [ "" ],
182 | "patching_rect" : [ 28.25, 584.0, 45.0, 22.0 ],
183 | "text" : "60 100"
184 | }
185 |
186 | }
187 | , {
188 | "box" : {
189 | "id" : "obj-16",
190 | "maxclass" : "newobj",
191 | "numinlets" : 1,
192 | "numoutlets" : 8,
193 | "outlettype" : [ "", "", "", "int", "int", "", "int", "" ],
194 | "patching_rect" : [ 59.25, 555.0, 92.5, 22.0 ],
195 | "text" : "midiparse"
196 | }
197 |
198 | }
199 | , {
200 | "box" : {
201 | "bubble" : 1,
202 | "bubblepoint" : 0.4,
203 | "fontname" : "Arial",
204 | "fontsize" : 13.0,
205 | "id" : "obj-30",
206 | "linecount" : 2,
207 | "maxclass" : "comment",
208 | "numinlets" : 1,
209 | "numoutlets" : 0,
210 | "patching_rect" : [ 489.0, 293.5, 166.0, 40.0 ],
211 | "text" : "List out found devices\nor clear the internal list"
212 | }
213 |
214 | }
215 | , {
216 | "box" : {
217 | "hidden" : 1,
218 | "id" : "obj-20",
219 | "maxclass" : "newobj",
220 | "numinlets" : 1,
221 | "numoutlets" : 1,
222 | "outlettype" : [ "" ],
223 | "patching_rect" : [ 10.0, 172.5, 89.0, 22.0 ],
224 | "text" : "loadmess set 1"
225 | }
226 |
227 | }
228 | , {
229 | "box" : {
230 | "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
231 | "fontname" : "Arial Bold",
232 | "hint" : "",
233 | "id" : "obj-36",
234 | "ignoreclick" : 1,
235 | "legacytextcolor" : 1,
236 | "maxclass" : "textbutton",
237 | "numinlets" : 1,
238 | "numoutlets" : 3,
239 | "outlettype" : [ "", "", "int" ],
240 | "parameter_enable" : 0,
241 | "patching_rect" : [ 272.0, 303.5, 20.0, 20.0 ],
242 | "rounded" : 60.0,
243 | "text" : "2",
244 | "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
245 | }
246 |
247 | }
248 | , {
249 | "box" : {
250 | "bgcolor" : [ 1.0, 0.788235, 0.470588, 1.0 ],
251 | "fontname" : "Arial Bold",
252 | "hint" : "",
253 | "id" : "obj-34",
254 | "ignoreclick" : 1,
255 | "legacytextcolor" : 1,
256 | "maxclass" : "textbutton",
257 | "numinlets" : 1,
258 | "numoutlets" : 3,
259 | "outlettype" : [ "", "", "int" ],
260 | "parameter_enable" : 0,
261 | "patching_rect" : [ 325.0, 175.5, 20.0, 20.0 ],
262 | "rounded" : 60.0,
263 | "text" : "1",
264 | "textcolor" : [ 0.34902, 0.34902, 0.34902, 1.0 ]
265 | }
266 |
267 | }
268 | , {
269 | "box" : {
270 | "bubble" : 1,
271 | "bubblepoint" : 0.15,
272 | "bubbleside" : 2,
273 | "fontname" : "Arial",
274 | "fontsize" : 13.0,
275 | "id" : "obj-17",
276 | "maxclass" : "comment",
277 | "numinlets" : 1,
278 | "numoutlets" : 0,
279 | "patching_rect" : [ 155.0, 181.0, 184.0, 40.0 ],
280 | "text" : "scan for BLE MIDI devices"
281 | }
282 |
283 | }
284 | , {
285 | "box" : {
286 | "id" : "obj-3",
287 | "maxclass" : "message",
288 | "numinlets" : 2,
289 | "numoutlets" : 1,
290 | "outlettype" : [ "" ],
291 | "patching_rect" : [ 71.5, 227.5, 287.0, 22.0 ],
292 | "text" : "scan 03B80E5A-EDE8-4B33-A751-6CE34EC4C700"
293 | }
294 |
295 | }
296 | , {
297 | "box" : {
298 | "bubble" : 1,
299 | "bubblepoint" : 0.3,
300 | "fontname" : "Arial",
301 | "fontsize" : 13.0,
302 | "id" : "obj-38",
303 | "linecount" : 2,
304 | "maxclass" : "comment",
305 | "numinlets" : 1,
306 | "numoutlets" : 0,
307 | "patching_rect" : [ 507.0, 398.0, 105.0, 40.0 ],
308 | "text" : "Subscribe to Characteristic"
309 | }
310 |
311 | }
312 | , {
313 | "box" : {
314 | "id" : "obj-14",
315 | "linecount" : 4,
316 | "maxclass" : "comment",
317 | "numinlets" : 1,
318 | "numoutlets" : 0,
319 | "patching_rect" : [ 10.0, 105.0, 602.0, 60.0 ],
320 | "text" : "BLE MIDI devices should advertise a service with UUID 03B80E5A-EDE8-4B33-A751-6CE34EC4C700\n\nclick \"scan 03B80E5A-EDE8-4B33-A751-6CE34EC4C700\" to start looking\nThis service should have a subscribable charteristic 7772E5DB-3868-4112-A1A9-F2669D106BF3 "
321 | }
322 |
323 | }
324 | , {
325 | "box" : {
326 | "fontface" : 1,
327 | "id" : "obj-15",
328 | "maxclass" : "comment",
329 | "numinlets" : 1,
330 | "numoutlets" : 0,
331 | "patching_rect" : [ 10.0, 83.0, 182.0, 20.0 ],
332 | "text" : "BLE MIDI via max-ble"
333 | }
334 |
335 | }
336 | , {
337 | "box" : {
338 | "id" : "obj-11",
339 | "maxclass" : "newobj",
340 | "numinlets" : 2,
341 | "numoutlets" : 2,
342 | "outlettype" : [ "", "" ],
343 | "patching_rect" : [ 23.25, 482.5, 55.0, 22.0 ],
344 | "text" : "zl slice 1"
345 | }
346 |
347 | }
348 | , {
349 | "box" : {
350 | "id" : "obj-22",
351 | "maxclass" : "message",
352 | "numinlets" : 2,
353 | "numoutlets" : 1,
354 | "outlettype" : [ "" ],
355 | "patching_rect" : [ 349.0, 533.0, 148.0, 22.0 ],
356 | "text" : "device $1 subscribe $2 $3"
357 | }
358 |
359 | }
360 | , {
361 | "box" : {
362 | "id" : "obj-19",
363 | "maxclass" : "newobj",
364 | "numinlets" : 1,
365 | "numoutlets" : 1,
366 | "outlettype" : [ "" ],
367 | "patching_rect" : [ 349.0, 505.5, 142.0, 22.0 ],
368 | "text" : "prepend \"DEVICE UUID\""
369 | }
370 |
371 | }
372 | , {
373 | "box" : {
374 | "id" : "obj-18",
375 | "maxclass" : "message",
376 | "numinlets" : 2,
377 | "numoutlets" : 1,
378 | "outlettype" : [ "" ],
379 | "patching_rect" : [ 319.0, 472.5, 41.0, 22.0 ],
380 | "text" : "set $1"
381 | }
382 |
383 | }
384 | , {
385 | "box" : {
386 | "fontsize" : 4.0,
387 | "id" : "obj-8",
388 | "maxclass" : "newobj",
389 | "numinlets" : 1,
390 | "numoutlets" : 1,
391 | "outlettype" : [ "" ],
392 | "patching_rect" : [ 10.0, 310.5, 38.0, 13.0 ],
393 | "text" : "prepend append"
394 | }
395 |
396 | }
397 | , {
398 | "box" : {
399 | "id" : "obj-13",
400 | "items" : "",
401 | "maxclass" : "umenu",
402 | "numinlets" : 1,
403 | "numoutlets" : 3,
404 | "outlettype" : [ "int", "", "" ],
405 | "parameter_enable" : 0,
406 | "patching_rect" : [ 319.0, 403.5, 185.0, 22.0 ]
407 | }
408 |
409 | }
410 | , {
411 | "box" : {
412 | "fontsize" : 4.0,
413 | "id" : "obj-12",
414 | "maxclass" : "newobj",
415 | "numinlets" : 1,
416 | "numoutlets" : 1,
417 | "outlettype" : [ "" ],
418 | "patching_rect" : [ 62.5, 310.5, 39.0, 13.0 ],
419 | "text" : "prepend append"
420 | }
421 |
422 | }
423 | , {
424 | "box" : {
425 | "id" : "obj-6",
426 | "maxclass" : "newobj",
427 | "numinlets" : 1,
428 | "numoutlets" : 3,
429 | "outlettype" : [ "", "int", "clear" ],
430 | "patching_rect" : [ 198.5, 500.0, 61.0, 22.0 ],
431 | "text" : "t s 2 clear"
432 | }
433 |
434 | }
435 | , {
436 | "box" : {
437 | "id" : "obj-4",
438 | "maxclass" : "newobj",
439 | "numinlets" : 1,
440 | "numoutlets" : 2,
441 | "outlettype" : [ "", "clear" ],
442 | "patching_rect" : [ 391.5, 326.5, 51.0, 22.0 ],
443 | "text" : "t s clear"
444 | }
445 |
446 | }
447 | , {
448 | "box" : {
449 | "id" : "obj-2",
450 | "items" : "",
451 | "maxclass" : "umenu",
452 | "numinlets" : 1,
453 | "numoutlets" : 3,
454 | "outlettype" : [ "int", "", "" ],
455 | "parameter_enable" : 0,
456 | "patching_rect" : [ 95.5, 403.5, 185.0, 22.0 ]
457 | }
458 |
459 | }
460 | , {
461 | "box" : {
462 | "bubble" : 1,
463 | "bubbleside" : 2,
464 | "fontname" : "Arial",
465 | "fontsize" : 13.0,
466 | "id" : "obj-32",
467 | "linecount" : 3,
468 | "maxclass" : "comment",
469 | "numinlets" : 1,
470 | "numoutlets" : 0,
471 | "patching_rect" : [ 192.0, 310.5, 95.0, 69.0 ],
472 | "text" : "Connect to Device by Index"
473 | }
474 |
475 | }
476 | , {
477 | "box" : {
478 | "id" : "obj-21",
479 | "maxclass" : "message",
480 | "numinlets" : 2,
481 | "numoutlets" : 1,
482 | "outlettype" : [ "" ],
483 | "patching_rect" : [ 111.0, 446.0, 67.0, 22.0 ],
484 | "text" : "connect $1"
485 | }
486 |
487 | }
488 | , {
489 | "box" : {
490 | "id" : "obj-10",
491 | "maxclass" : "message",
492 | "numinlets" : 2,
493 | "numoutlets" : 1,
494 | "outlettype" : [ "" ],
495 | "patching_rect" : [ 444.0, 295.5, 35.0, 22.0 ],
496 | "text" : "clear"
497 | }
498 |
499 | }
500 | , {
501 | "box" : {
502 | "id" : "obj-7",
503 | "maxclass" : "message",
504 | "numinlets" : 2,
505 | "numoutlets" : 1,
506 | "outlettype" : [ "" ],
507 | "patching_rect" : [ 391.5, 295.5, 39.0, 22.0 ],
508 | "text" : "found"
509 | }
510 |
511 | }
512 | , {
513 | "box" : {
514 | "id" : "obj-28",
515 | "maxclass" : "toggle",
516 | "numinlets" : 1,
517 | "numoutlets" : 1,
518 | "outlettype" : [ "int" ],
519 | "parameter_enable" : 0,
520 | "patching_rect" : [ 10.0, 197.0, 24.0, 24.0 ]
521 | }
522 |
523 | }
524 | , {
525 | "box" : {
526 | "id" : "obj-24",
527 | "maxclass" : "message",
528 | "numinlets" : 2,
529 | "numoutlets" : 1,
530 | "outlettype" : [ "" ],
531 | "patching_rect" : [ 10.0, 227.5, 57.0, 22.0 ],
532 | "text" : "report $1"
533 | }
534 |
535 | }
536 | , {
537 | "box" : {
538 | "id" : "obj-1",
539 | "maxclass" : "newobj",
540 | "numinlets" : 1,
541 | "numoutlets" : 3,
542 | "outlettype" : [ "list", "list", "list" ],
543 | "patching_rect" : [ 10.0, 284.0, 81.25, 22.0 ],
544 | "text" : "max-ble"
545 | }
546 |
547 | }
548 | ],
549 | "lines" : [ {
550 | "patchline" : {
551 | "destination" : [ "obj-11", 0 ],
552 | "source" : [ "obj-1", 1 ]
553 | }
554 |
555 | }
556 | , {
557 | "patchline" : {
558 | "destination" : [ "obj-12", 0 ],
559 | "source" : [ "obj-1", 2 ]
560 | }
561 |
562 | }
563 | , {
564 | "patchline" : {
565 | "destination" : [ "obj-8", 0 ],
566 | "source" : [ "obj-1", 0 ]
567 | }
568 |
569 | }
570 | , {
571 | "patchline" : {
572 | "destination" : [ "obj-4", 0 ],
573 | "source" : [ "obj-10", 0 ]
574 | }
575 |
576 | }
577 | , {
578 | "patchline" : {
579 | "destination" : [ "obj-50", 0 ],
580 | "order" : 1,
581 | "source" : [ "obj-11", 1 ]
582 | }
583 |
584 | }
585 | , {
586 | "patchline" : {
587 | "destination" : [ "obj-58", 0 ],
588 | "order" : 0,
589 | "source" : [ "obj-11", 1 ]
590 | }
591 |
592 | }
593 | , {
594 | "patchline" : {
595 | "destination" : [ "obj-2", 0 ],
596 | "source" : [ "obj-12", 0 ]
597 | }
598 |
599 | }
600 | , {
601 | "patchline" : {
602 | "destination" : [ "obj-19", 0 ],
603 | "source" : [ "obj-13", 1 ]
604 | }
605 |
606 | }
607 | , {
608 | "patchline" : {
609 | "destination" : [ "obj-44", 1 ],
610 | "source" : [ "obj-16", 0 ]
611 | }
612 |
613 | }
614 | , {
615 | "patchline" : {
616 | "destination" : [ "obj-19", 0 ],
617 | "source" : [ "obj-18", 0 ]
618 | }
619 |
620 | }
621 | , {
622 | "patchline" : {
623 | "destination" : [ "obj-22", 0 ],
624 | "source" : [ "obj-19", 0 ]
625 | }
626 |
627 | }
628 | , {
629 | "patchline" : {
630 | "destination" : [ "obj-18", 0 ],
631 | "order" : 0,
632 | "source" : [ "obj-2", 0 ]
633 | }
634 |
635 | }
636 | , {
637 | "patchline" : {
638 | "destination" : [ "obj-21", 0 ],
639 | "order" : 1,
640 | "source" : [ "obj-2", 0 ]
641 | }
642 |
643 | }
644 | , {
645 | "patchline" : {
646 | "destination" : [ "obj-28", 0 ],
647 | "hidden" : 1,
648 | "source" : [ "obj-20", 0 ]
649 | }
650 |
651 | }
652 | , {
653 | "patchline" : {
654 | "destination" : [ "obj-6", 0 ],
655 | "source" : [ "obj-21", 0 ]
656 | }
657 |
658 | }
659 | , {
660 | "patchline" : {
661 | "destination" : [ "obj-9", 0 ],
662 | "source" : [ "obj-22", 0 ]
663 | }
664 |
665 | }
666 | , {
667 | "patchline" : {
668 | "destination" : [ "obj-1", 0 ],
669 | "source" : [ "obj-23", 0 ]
670 | }
671 |
672 | }
673 | , {
674 | "patchline" : {
675 | "destination" : [ "obj-1", 0 ],
676 | "source" : [ "obj-24", 0 ]
677 | }
678 |
679 | }
680 | , {
681 | "patchline" : {
682 | "destination" : [ "obj-24", 0 ],
683 | "source" : [ "obj-28", 0 ]
684 | }
685 |
686 | }
687 | , {
688 | "patchline" : {
689 | "destination" : [ "obj-1", 0 ],
690 | "source" : [ "obj-3", 0 ]
691 | }
692 |
693 | }
694 | , {
695 | "patchline" : {
696 | "destination" : [ "obj-13", 0 ],
697 | "order" : 0,
698 | "source" : [ "obj-4", 1 ]
699 | }
700 |
701 | }
702 | , {
703 | "patchline" : {
704 | "destination" : [ "obj-2", 0 ],
705 | "order" : 1,
706 | "source" : [ "obj-4", 1 ]
707 | }
708 |
709 | }
710 | , {
711 | "patchline" : {
712 | "destination" : [ "obj-31", 0 ],
713 | "source" : [ "obj-4", 0 ]
714 | }
715 |
716 | }
717 | , {
718 | "patchline" : {
719 | "destination" : [ "obj-52", 0 ],
720 | "source" : [ "obj-49", 0 ]
721 | }
722 |
723 | }
724 | , {
725 | "patchline" : {
726 | "destination" : [ "obj-16", 0 ],
727 | "source" : [ "obj-50", 0 ]
728 | }
729 |
730 | }
731 | , {
732 | "patchline" : {
733 | "destination" : [ "obj-13", 0 ],
734 | "source" : [ "obj-6", 2 ]
735 | }
736 |
737 | }
738 | , {
739 | "patchline" : {
740 | "destination" : [ "obj-33", 0 ],
741 | "source" : [ "obj-6", 0 ]
742 | }
743 |
744 | }
745 | , {
746 | "patchline" : {
747 | "destination" : [ "obj-4", 0 ],
748 | "source" : [ "obj-7", 0 ]
749 | }
750 |
751 | }
752 | , {
753 | "patchline" : {
754 | "destination" : [ "obj-13", 0 ],
755 | "source" : [ "obj-8", 0 ]
756 | }
757 |
758 | }
759 | ],
760 | "dependency_cache" : [ {
761 | "name" : "max-ble.mxo",
762 | "type" : "iLaX"
763 | }
764 | ],
765 | "autosave" : 0,
766 | "styles" : [ {
767 | "name" : "AudioStatus_Menu",
768 | "default" : {
769 | "bgfillcolor" : {
770 | "type" : "color",
771 | "color" : [ 0.294118, 0.313726, 0.337255, 1 ],
772 | "color1" : [ 0.454902, 0.462745, 0.482353, 0 ],
773 | "color2" : [ 0.290196, 0.309804, 0.301961, 1 ],
774 | "angle" : 270,
775 | "proportion" : 0.39,
776 | "autogradient" : 0
777 | }
778 |
779 | }
780 | ,
781 | "parentstyle" : "",
782 | "multi" : 0
783 | }
784 | ]
785 | }
786 |
787 | }
788 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.byte-cast.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 318.0, 233.0, 543.0, 480.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-16",
43 | "maxclass" : "toggle",
44 | "numinlets" : 1,
45 | "numoutlets" : 1,
46 | "outlettype" : [ "int" ],
47 | "parameter_enable" : 0,
48 | "patching_rect" : [ 345.417747497558594, 370.0, 24.0, 24.0 ]
49 | }
50 |
51 | }
52 | , {
53 | "box" : {
54 | "bubble" : 1,
55 | "id" : "obj-10",
56 | "maxclass" : "comment",
57 | "numinlets" : 1,
58 | "numoutlets" : 0,
59 | "patching_rect" : [ 382.417747497558594, 370.0, 133.0, 24.0 ],
60 | "presentation_linecount" : 2,
61 | "text" : "Toggle Endianness"
62 | }
63 |
64 | }
65 | , {
66 | "box" : {
67 | "id" : "obj-11",
68 | "maxclass" : "message",
69 | "numinlets" : 2,
70 | "numoutlets" : 1,
71 | "outlettype" : [ "" ],
72 | "patching_rect" : [ 247.917747497558594, 432.0, 121.5, 22.0 ]
73 | }
74 |
75 | }
76 | , {
77 | "box" : {
78 | "id" : "obj-12",
79 | "maxclass" : "message",
80 | "numinlets" : 2,
81 | "numoutlets" : 1,
82 | "outlettype" : [ "" ],
83 | "patching_rect" : [ 247.917747497558594, 372.0, 79.0, 22.0 ],
84 | "text" : "64 73 15 219"
85 | }
86 |
87 | }
88 | , {
89 | "box" : {
90 | "id" : "obj-13",
91 | "maxclass" : "newobj",
92 | "numinlets" : 2,
93 | "numoutlets" : 1,
94 | "outlettype" : [ "list" ],
95 | "patching_rect" : [ 247.917747497558594, 401.0, 64.0, 22.0 ],
96 | "text" : "byte-cast f"
97 | }
98 |
99 | }
100 | , {
101 | "box" : {
102 | "bubble" : 1,
103 | "id" : "obj-1",
104 | "maxclass" : "comment",
105 | "numinlets" : 1,
106 | "numoutlets" : 0,
107 | "patching_rect" : [ 349.417747497558594, 147.0, 155.0, 24.0 ],
108 | "text" : "256 and 512 in bytes list"
109 | }
110 |
111 | }
112 | , {
113 | "box" : {
114 | "bubble" : 1,
115 | "id" : "obj-2",
116 | "linecount" : 2,
117 | "maxclass" : "comment",
118 | "numinlets" : 1,
119 | "numoutlets" : 0,
120 | "patching_rect" : [ 416.417747497558594, 258.0, 94.0, 37.0 ],
121 | "text" : "pi and tau in bytes"
122 | }
123 |
124 | }
125 | , {
126 | "box" : {
127 | "id" : "obj-3",
128 | "maxclass" : "message",
129 | "numinlets" : 2,
130 | "numoutlets" : 1,
131 | "outlettype" : [ "" ],
132 | "patching_rect" : [ 254.417747497558594, 207.0, 69.0, 22.0 ]
133 | }
134 |
135 | }
136 | , {
137 | "box" : {
138 | "id" : "obj-5",
139 | "maxclass" : "message",
140 | "numinlets" : 2,
141 | "numoutlets" : 1,
142 | "outlettype" : [ "" ],
143 | "patching_rect" : [ 255.417747497558594, 324.5, 64.0, 22.0 ]
144 | }
145 |
146 | }
147 | , {
148 | "box" : {
149 | "id" : "obj-6",
150 | "maxclass" : "message",
151 | "numinlets" : 2,
152 | "numoutlets" : 1,
153 | "outlettype" : [ "" ],
154 | "patching_rect" : [ 254.417747497558594, 147.0, 85.0, 22.0 ],
155 | "text" : "0 0 1 0 0 0 2 0"
156 | }
157 |
158 | }
159 | , {
160 | "box" : {
161 | "id" : "obj-7",
162 | "maxclass" : "newobj",
163 | "numinlets" : 2,
164 | "numoutlets" : 1,
165 | "outlettype" : [ "list" ],
166 | "patching_rect" : [ 254.417747497558594, 176.0, 63.0, 22.0 ],
167 | "text" : "byte-cast i"
168 | }
169 |
170 | }
171 | , {
172 | "box" : {
173 | "id" : "obj-8",
174 | "maxclass" : "message",
175 | "numinlets" : 2,
176 | "numoutlets" : 1,
177 | "outlettype" : [ "" ],
178 | "patching_rect" : [ 255.417747497558594, 264.5, 159.0, 22.0 ],
179 | "text" : "64 73 15 219 64 201 15 219"
180 | }
181 |
182 | }
183 | , {
184 | "box" : {
185 | "id" : "obj-9",
186 | "maxclass" : "newobj",
187 | "numinlets" : 2,
188 | "numoutlets" : 1,
189 | "outlettype" : [ "list" ],
190 | "patching_rect" : [ 255.417747497558594, 293.5, 64.0, 22.0 ],
191 | "text" : "byte-cast f"
192 | }
193 |
194 | }
195 | , {
196 | "box" : {
197 | "border" : 0,
198 | "filename" : "helpargs.js",
199 | "id" : "obj-4",
200 | "ignoreclick" : 1,
201 | "jsarguments" : [ "byte-cast" ],
202 | "maxclass" : "jsui",
203 | "numinlets" : 1,
204 | "numoutlets" : 1,
205 | "outlettype" : [ "" ],
206 | "parameter_enable" : 0,
207 | "patching_rect" : [ 100.0, 181.0, 120.835494995117188, 39.0 ]
208 | }
209 |
210 | }
211 | , {
212 | "box" : {
213 | "id" : "obj-42",
214 | "maxclass" : "comment",
215 | "numinlets" : 1,
216 | "numoutlets" : 0,
217 | "patching_rect" : [ 16.0, 125.0, 103.0, 20.0 ],
218 | "text" : "ASCII text"
219 | }
220 |
221 | }
222 | , {
223 | "box" : {
224 | "bubble" : 1,
225 | "id" : "obj-41",
226 | "maxclass" : "comment",
227 | "numinlets" : 1,
228 | "numoutlets" : 0,
229 | "patching_rect" : [ 95.417747497558594, 258.0, 130.0, 24.0 ],
230 | "text" : "475937281 in bytes"
231 | }
232 |
233 | }
234 | , {
235 | "box" : {
236 | "bubble" : 1,
237 | "id" : "obj-39",
238 | "maxclass" : "comment",
239 | "numinlets" : 1,
240 | "numoutlets" : 0,
241 | "patching_rect" : [ 105.417747497558594, 372.0, 120.0, 24.0 ],
242 | "text" : "pi in bytes"
243 | }
244 |
245 | }
246 | , {
247 | "box" : {
248 | "id" : "obj-35",
249 | "maxclass" : "message",
250 | "numinlets" : 2,
251 | "numoutlets" : 1,
252 | "outlettype" : [ "" ],
253 | "patching_rect" : [ 17.417747497558594, 318.0, 69.0, 22.0 ]
254 | }
255 |
256 | }
257 | , {
258 | "box" : {
259 | "id" : "obj-36",
260 | "maxclass" : "message",
261 | "numinlets" : 2,
262 | "numoutlets" : 1,
263 | "outlettype" : [ "" ],
264 | "patching_rect" : [ 17.417747497558594, 433.0, 64.0, 22.0 ]
265 | }
266 |
267 | }
268 | , {
269 | "box" : {
270 | "id" : "obj-37",
271 | "maxclass" : "message",
272 | "numinlets" : 2,
273 | "numoutlets" : 1,
274 | "outlettype" : [ "" ],
275 | "patching_rect" : [ 16.0, 217.0, 67.0, 22.0 ]
276 | }
277 |
278 | }
279 | , {
280 | "box" : {
281 | "id" : "obj-34",
282 | "maxclass" : "message",
283 | "numinlets" : 2,
284 | "numoutlets" : 1,
285 | "outlettype" : [ "" ],
286 | "patching_rect" : [ 17.417747497558594, 258.0, 65.0, 22.0 ],
287 | "text" : "28 94 58 1"
288 | }
289 |
290 | }
291 | , {
292 | "box" : {
293 | "id" : "obj-33",
294 | "maxclass" : "newobj",
295 | "numinlets" : 2,
296 | "numoutlets" : 1,
297 | "outlettype" : [ "list" ],
298 | "patching_rect" : [ 17.417747497558594, 287.0, 63.0, 22.0 ],
299 | "text" : "byte-cast i"
300 | }
301 |
302 | }
303 | , {
304 | "box" : {
305 | "id" : "obj-32",
306 | "maxclass" : "message",
307 | "numinlets" : 2,
308 | "numoutlets" : 1,
309 | "outlettype" : [ "" ],
310 | "patching_rect" : [ 17.417747497558594, 373.0, 79.0, 22.0 ],
311 | "text" : "64 73 15 219"
312 | }
313 |
314 | }
315 | , {
316 | "box" : {
317 | "id" : "obj-30",
318 | "maxclass" : "newobj",
319 | "numinlets" : 2,
320 | "numoutlets" : 1,
321 | "outlettype" : [ "list" ],
322 | "patching_rect" : [ 17.417747497558594, 402.0, 64.0, 22.0 ],
323 | "text" : "byte-cast f"
324 | }
325 |
326 | }
327 | , {
328 | "box" : {
329 | "id" : "obj-29",
330 | "maxclass" : "message",
331 | "numinlets" : 2,
332 | "numoutlets" : 1,
333 | "outlettype" : [ "" ],
334 | "patching_rect" : [ 16.0, 147.0, 159.0, 22.0 ],
335 | "text" : "84 101 115 116 105 110 103"
336 | }
337 |
338 | }
339 | , {
340 | "box" : {
341 | "id" : "obj-27",
342 | "maxclass" : "newobj",
343 | "numinlets" : 2,
344 | "numoutlets" : 1,
345 | "outlettype" : [ "list" ],
346 | "patching_rect" : [ 16.0, 181.0, 67.0, 22.0 ],
347 | "text" : "byte-cast s"
348 | }
349 |
350 | }
351 | , {
352 | "box" : {
353 | "border" : 0,
354 | "filename" : "helpdetails.js",
355 | "id" : "obj-26",
356 | "ignoreclick" : 1,
357 | "jsarguments" : [ "byte-cast" ],
358 | "maxclass" : "jsui",
359 | "numinlets" : 1,
360 | "numoutlets" : 1,
361 | "outlettype" : [ "" ],
362 | "parameter_enable" : 0,
363 | "patching_rect" : [ 1.0, 0.0, 539.0, 117.0 ]
364 | }
365 |
366 | }
367 | ],
368 | "lines" : [ {
369 | "patchline" : {
370 | "destination" : [ "obj-13", 0 ],
371 | "source" : [ "obj-12", 0 ]
372 | }
373 |
374 | }
375 | , {
376 | "patchline" : {
377 | "destination" : [ "obj-11", 1 ],
378 | "source" : [ "obj-13", 0 ]
379 | }
380 |
381 | }
382 | , {
383 | "patchline" : {
384 | "destination" : [ "obj-13", 1 ],
385 | "source" : [ "obj-16", 0 ]
386 | }
387 |
388 | }
389 | , {
390 | "patchline" : {
391 | "destination" : [ "obj-37", 1 ],
392 | "source" : [ "obj-27", 0 ]
393 | }
394 |
395 | }
396 | , {
397 | "patchline" : {
398 | "destination" : [ "obj-27", 0 ],
399 | "source" : [ "obj-29", 0 ]
400 | }
401 |
402 | }
403 | , {
404 | "patchline" : {
405 | "destination" : [ "obj-36", 1 ],
406 | "source" : [ "obj-30", 0 ]
407 | }
408 |
409 | }
410 | , {
411 | "patchline" : {
412 | "destination" : [ "obj-30", 0 ],
413 | "source" : [ "obj-32", 0 ]
414 | }
415 |
416 | }
417 | , {
418 | "patchline" : {
419 | "destination" : [ "obj-35", 1 ],
420 | "source" : [ "obj-33", 0 ]
421 | }
422 |
423 | }
424 | , {
425 | "patchline" : {
426 | "destination" : [ "obj-33", 0 ],
427 | "source" : [ "obj-34", 0 ]
428 | }
429 |
430 | }
431 | , {
432 | "patchline" : {
433 | "destination" : [ "obj-7", 0 ],
434 | "source" : [ "obj-6", 0 ]
435 | }
436 |
437 | }
438 | , {
439 | "patchline" : {
440 | "destination" : [ "obj-3", 1 ],
441 | "source" : [ "obj-7", 0 ]
442 | }
443 |
444 | }
445 | , {
446 | "patchline" : {
447 | "destination" : [ "obj-9", 0 ],
448 | "source" : [ "obj-8", 0 ]
449 | }
450 |
451 | }
452 | , {
453 | "patchline" : {
454 | "destination" : [ "obj-5", 1 ],
455 | "source" : [ "obj-9", 0 ]
456 | }
457 |
458 | }
459 | ],
460 | "dependency_cache" : [ {
461 | "name" : "helpdetails.js",
462 | "bootpath" : "C74:/help/resources",
463 | "type" : "TEXT",
464 | "implicit" : 1
465 | }
466 | , {
467 | "name" : "helpargs.js",
468 | "bootpath" : "C74:/help/resources",
469 | "type" : "TEXT",
470 | "implicit" : 1
471 | }
472 | , {
473 | "name" : "byte-cast.mxo",
474 | "type" : "iLaX"
475 | }
476 | ],
477 | "autosave" : 0
478 | }
479 |
480 | }
481 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.connect-everything.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 34.0, 56.0, 600.0, 810.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-35",
43 | "maxclass" : "newobj",
44 | "numinlets" : 1,
45 | "numoutlets" : 2,
46 | "outlettype" : [ "bang", "" ],
47 | "patching_rect" : [ 398.0, 266.0, 29.5, 22.0 ],
48 | "text" : "t b l"
49 | }
50 |
51 | }
52 | , {
53 | "box" : {
54 | "id" : "obj-3",
55 | "maxclass" : "comment",
56 | "numinlets" : 1,
57 | "numoutlets" : 0,
58 | "patching_rect" : [ 3.0, 74.0, 459.0, 20.0 ],
59 | "text" : "This patch demonstrates how to filter your scan results to help find the correct device"
60 | }
61 |
62 | }
63 | , {
64 | "box" : {
65 | "fontface" : 1,
66 | "id" : "obj-5",
67 | "maxclass" : "comment",
68 | "numinlets" : 1,
69 | "numoutlets" : 0,
70 | "patching_rect" : [ 3.0, 52.0, 137.0, 20.0 ],
71 | "text" : "Connect to Everything"
72 | }
73 |
74 | }
75 | , {
76 | "box" : {
77 | "fontsize" : 36.0,
78 | "id" : "obj-18",
79 | "maxclass" : "comment",
80 | "numinlets" : 1,
81 | "numoutlets" : 0,
82 | "patching_rect" : [ 3.0, 3.0, 137.0, 47.0 ],
83 | "text" : "max-ble"
84 | }
85 |
86 | }
87 | , {
88 | "box" : {
89 | "id" : "obj-36",
90 | "maxclass" : "button",
91 | "numinlets" : 1,
92 | "numoutlets" : 1,
93 | "outlettype" : [ "bang" ],
94 | "parameter_enable" : 0,
95 | "patching_rect" : [ 390.0, 305.5, 24.0, 24.0 ]
96 | }
97 |
98 | }
99 | , {
100 | "box" : {
101 | "id" : "obj-34",
102 | "maxclass" : "message",
103 | "numinlets" : 2,
104 | "numoutlets" : 1,
105 | "outlettype" : [ "" ],
106 | "patching_rect" : [ 416.0, 397.5, 67.0, 22.0 ],
107 | "text" : "connect $1"
108 | }
109 |
110 | }
111 | , {
112 | "box" : {
113 | "id" : "obj-33",
114 | "maxclass" : "newobj",
115 | "numinlets" : 2,
116 | "numoutlets" : 1,
117 | "outlettype" : [ "int" ],
118 | "patching_rect" : [ 416.0, 371.5, 29.5, 22.0 ],
119 | "text" : "- 1"
120 | }
121 |
122 | }
123 | , {
124 | "box" : {
125 | "id" : "obj-26",
126 | "maxclass" : "newobj",
127 | "numinlets" : 2,
128 | "numoutlets" : 2,
129 | "outlettype" : [ "", "" ],
130 | "patching_rect" : [ 415.5, 305.5, 69.0, 22.0 ],
131 | "text" : "route count"
132 | }
133 |
134 | }
135 | , {
136 | "box" : {
137 | "id" : "obj-25",
138 | "maxclass" : "newobj",
139 | "numinlets" : 2,
140 | "numoutlets" : 3,
141 | "outlettype" : [ "bang", "bang", "int" ],
142 | "patching_rect" : [ 390.0, 344.5, 45.0, 22.0 ],
143 | "text" : "uzi"
144 | }
145 |
146 | }
147 | , {
148 | "box" : {
149 | "id" : "obj-6",
150 | "maxclass" : "message",
151 | "numinlets" : 2,
152 | "numoutlets" : 1,
153 | "outlettype" : [ "" ],
154 | "patching_rect" : [ 383.0, 189.0, 38.0, 22.0 ],
155 | "text" : "count"
156 | }
157 |
158 | }
159 | , {
160 | "box" : {
161 | "id" : "obj-17",
162 | "maxclass" : "comment",
163 | "numinlets" : 1,
164 | "numoutlets" : 0,
165 | "patching_rect" : [ 104.0, 442.0, 79.0, 20.0 ],
166 | "text" : "Battery Level"
167 | }
168 |
169 | }
170 | , {
171 | "box" : {
172 | "id" : "obj-14",
173 | "maxclass" : "message",
174 | "numinlets" : 2,
175 | "numoutlets" : 1,
176 | "outlettype" : [ "" ],
177 | "patching_rect" : [ 28.0, 442.0, 67.0, 22.0 ],
178 | "text" : "60"
179 | }
180 |
181 | }
182 | , {
183 | "box" : {
184 | "id" : "obj-12",
185 | "maxclass" : "newobj",
186 | "numinlets" : 1,
187 | "numoutlets" : 1,
188 | "outlettype" : [ "" ],
189 | "patching_rect" : [ 232.0, 200.5, 96.0, 22.0 ],
190 | "text" : "prepend append"
191 | }
192 |
193 | }
194 | , {
195 | "box" : {
196 | "id" : "obj-4",
197 | "maxclass" : "newobj",
198 | "numinlets" : 1,
199 | "numoutlets" : 2,
200 | "outlettype" : [ "", "clear" ],
201 | "patching_rect" : [ 172.0, 201.0, 51.0, 22.0 ],
202 | "text" : "t s clear"
203 | }
204 |
205 | }
206 | , {
207 | "box" : {
208 | "id" : "obj-2",
209 | "items" : [ "D5819FC0-5D5C-41BC-A6D4-276BD090D6D0", -89, ",", "943FBAEE-6201-4F90-B3A3-A99076FB8C05", -102, ",", "4E76983E-BC52-4DEB-A5D8-51C548C59CC3", -91, ",", "091D6800-CFA1-414C-BAB9-917C477627A4", -95, ",", "64E29CD2-DFA9-4C17-91EB-AAF49388F253", -92, ",", "D26506DB-783C-43F7-8CE0-AC04D7A8DE21", -99, ",", "2C7ED6A9-F54B-4E66-B112-CAE772BC9FCF", -96, ",", "E938723E-C8A1-414C-8E9B-85CEC6999393", -90, ",", "348055F4-6252-4BB7-8EFA-4ABED6EBCB9B", -57, ",", "E3C8912F-AEE5-4D9E-945A-C3C7E20CFCFB", -97, ",", "6BDE6AEF-C54A-41CC-A916-0809098F202D", -100, ",", "725D9F73-7B95-4FC4-990E-7FAF5ACB18D9", -103, ",", "4198A4BC-57F6-48AE-8F42-A1D17B45EF48", -80, ",", "5D84143C-3EFF-456C-B062-84FDDCCFC5D3", -93, ",", "763A142B-EDA3-452D-8DFA-67DF0F59F3E0", -37, ",", "AFC30719-9494-45C4-8448-7EF0E7C91D94", -95, ",", "B602D49D-E4FB-49E2-8C6E-0F119DA9DE3D", -95, ",", "A0DD3E9A-4DF4-4199-A01C-F128958C1E5A", -100, ",", "C2F69B6E-1471-402F-B3FF-B4A27FABE04D", -90, ",", "622F38B2-37F9-4871-A1D1-47581CFC3570", -94, ",", "3FE40865-D8C1-4696-8C1F-BB54DFECC557", -97, ",", "975ADDDD-61E1-4A41-BE2B-14A24D8D37B8", -92, ",", "2D22734F-9BE0-47E1-8AF4-F36B3585BF74", -95, ",", "BA33BFE0-1823-45C6-BCE9-ED32CAEEBC9B", -99, ",", "4B34B4EF-801F-4D75-88C5-06BBB3FE8E53", -98, ",", "DAACC5D6-6C05-4E96-A8F3-77D456AAED8A", -100, ",", "52B7514B-82EA-43A0-92BB-F7904DD0C76B", -93, ",", "C5A921BD-8152-4D15-A44C-2D78CC6C35B1", -93, ",", "2E06E766-DF97-4CAE-A3C7-FACA1A777C41", -86, ",", "0F49002A-CF6E-47C2-923B-0BD5451ADF89", -92, ",", "A88A74B1-7F84-48F8-83F8-4FB927F3651F", -93, ",", "90636462-1916-44F5-809A-9042C42634CE", -96, ",", "BB6D6FA8-E8A5-4F84-8F77-67984AFA70F6", -97, ",", "EA7A081E-8FD4-4340-A2FD-407A60B79F18", -99, ",", "28E85378-4EDB-4EF3-94F0-16A3F4FB4764", -98, ",", "5919BEA7-3BB2-4F68-B68D-A96EC8D787A4", -101, ",", "94D830E4-C49F-442A-834B-83C1B9440C8D", -103, ",", "1A2B711C-C58B-4A62-985A-E014416A4454", -93, ",", "606DDABD-E537-47FA-BF9E-1A8C007FCB56", -94, ",", "CE180526-0C9B-4354-BB58-DCB252A9C55B", -94, ",", "9891347E-00F3-4B19-97C4-2836E8D9B873", -97, ",", "F017FC2C-6DF9-48DE-A622-07E056EA2CF6", -98, ",", "ED46BD54-2F39-4D5D-96F6-0387B2DB5080", -94, ",", "2856907E-9866-4664-917C-3F6A76B065DA", -99, ",", "8D17B128-F815-4739-9DCC-DD010C4BD502", -93, ",", "D0FCD291-0234-44A9-8B2F-9665ABF9BA21", -94, ",", "2BC9417C-269E-4391-9953-C8127003F678", -97, ",", "EB9A166A-FD37-4B76-848F-07DEA868A76D", -100, ",", "C6FAE385-9113-46F3-8380-7413D0909DC2", -106, ",", "0F3D915F-A157-4612-B5AF-E72ADBE57B98", -103, ",", "B2EEEC45-F327-4535-81B8-49E38444C996", -103, ",", "17833482-8DA8-4E78-911D-00A0F00D8082", -99, ",", "F3547FB6-69A6-4806-8B0F-49864EE4E204", -100, ",", "23DACA5C-0113-4D6D-920D-05F5181E2EC1", -102, ",", "39E5436D-7C53-4034-83E6-84BD1CA9A12C", -103, ",", "9AD291E6-1513-4672-B8E1-324476FEDB52", -92, ",", "33C43BC4-14EA-4D19-BEC8-5F5E9FA4FB3A", -100, ",", "88CA0C26-B9A4-4A4B-AF6B-C96C7090C48A", -90, ",", "BFF325D6-F100-41CE-AC69-D46EE0D44BCF", -98, ",", "816F3FDA-B6D5-42E6-9A73-332EBEA19851", -98, ",", "06B91D6C-F90F-45AB-87FC-321BD9C51019", -98, ",", "9BBDCE89-250C-44FE-9C1E-12C8991CCFE0", -94, ",", "BD049561-FE79-42A0-8C6F-906016EFBF90", -98, ",", "AAD63B65-07FA-47AA-9615-F73FCB109BDE", -100, ",", "11BF6CF6-A6F0-4FD9-9FA5-629A5FC8A2E9", -100, ",", "1CE92747-5A56-4D5B-81E1-8D69DC64AC34", -92, ",", "649086EF-5B35-4652-9860-B0E0E0BE5CF1", -99, ",", "6A827C4D-2EFD-41A4-A512-1FAD8552253A", -99, ",", "AF03B23C-9DFA-4EE0-A48D-31380C765567", -96, ",", "90DF68FA-17E5-41D0-8592-26DFA8F4AF17", -99, ",", "F3FC4833-9DF1-476D-855F-2FAC52DE953C", -99, ",", "26A6E9A7-A263-4636-8248-27E1CD69BE5E", -101, ",", "1F1787DF-B7B9-44D9-9D60-8E4069F36EBF", -93, ",", "920753A0-F6E5-40DA-8231-256BFCF0A5BF", -97, ",", "E254786B-E14C-4A29-B8F2-5CA5F7409ED6", -92, ",", "0FD54887-1563-4791-AC35-809B125B4697", -99, ",", "0C0EE22B-1FC4-4C2C-875E-5CA6A16307F2", -104, ",", "4BA0AE4B-D628-41D8-8706-46BF7AC2244B", -90, ",", "86E1D21C-A32E-4A31-BD69-96DA14D42BB2", -95, ",", "752F7835-2FB8-411F-B7AF-EFAC0A86BFC2", -96, ",", "CC7FD262-1A99-4AFF-A81E-1146AC8D062E", -87, ",", "50EEC0A0-5D1B-4FC0-9D62-6A5ADE9FA3DA", -98, ",", "7FCA84C6-AA3E-4DA5-A166-1E6E2F857826", -98, ",", "5D6C39A0-DC77-419B-8531-63EA94058880", -101, ",", "72A530E4-C966-46D7-A586-ABA44273A945", -102, ",", "4C9D09D5-BB2E-481F-AAE5-A8AB74F097F6", -92, ",", "66E870B6-9339-4232-AA16-198FCC95380E", -93, ",", "78BE2231-EE4D-475D-A13B-038877BC7299", -85, ",", "EFCD3B4F-CE1C-4FCD-B4A9-55098201E317", -101, ",", "9D5D485B-687C-44B2-9050-EB9663AB1E1C", -101, ",", "DA8684D9-E3D7-42B7-AEBB-7153FA307811", -99, ",", "E709C586-8EBE-4E53-8D0E-12925AAADAA8", -97, ",", "338B93AE-341C-4FEF-8123-7AC1EB931453", -92, ",", "D40F87D0-A29E-42EC-82A5-B68FF329CA2F", -103, ",", "37794F0F-FBAA-4A22-8315-728383B99FA2", -100, ",", "13D8BBC7-4EB2-420F-A3B6-7E45F063528E", -96, ",", "146AAF54-1C8E-481E-AFFE-1FEAFDFC177B", -97, ",", "243564F7-F153-489F-896C-8637CF186099", -87, ",", "CB5E6279-7A5C-4383-9847-F21348646B8A", -97, ",", "70446920-EEA5-4AC0-ABD1-AB12AE974880", -97, ",", "E6B43629-2E80-47DE-AE5B-3272383E4199", -97, ",", "474850B6-75E4-4B6D-A20D-500AFE53087B", -101, ",", "8C07C55F-CCC8-4408-B1CC-D4DB043B82B3", -102, ",", "9E7F813B-229D-434D-A1EE-304514252C25", -99, ",", "5EFD1AE2-5ED7-4317-9A06-471BE816C1BE", -97, ",", "80D63A95-68E3-41DF-85E0-D15EC5BDEBC2", -101, ",", "CEE08F96-9473-42E2-9333-E0A3112E2EE7", -98, ",", "87F7798E-B3AE-4B11-B87A-28804ACFEDFE", -98, ",", "EDBB95CC-62EA-4ED3-B6DB-40FA0453D437", -93, ",", "6D5EAE11-AD31-4E18-A412-F537FF914119", -103, ",", "FFE75305-668A-4305-B977-0F1FF8755A41", -97, ",", "0ED98E1F-41F1-4D63-A3D2-237DEF58B5D6", -101, ",", "D0E5BE17-1CFB-4AFF-9817-1A8292242C43", -87, ",", "B725EDDA-0587-40A7-961A-E839B988052D", -100, ",", "ED1E336D-7E8B-4DE8-BCCD-0FBE8FFAAC42", -103, ",", "93A73D5B-20A2-4515-BCAC-C135AF0E585E", -93, ",", "3C18B13A-0789-4A39-8C0C-F800555DE166", -95, ",", "05661D56-21BA-4FDC-9BA1-0DF1E9363A59", -94, ",", "2F305F53-71EF-4BA2-9414-0A0D3F18EDA7", -100, ",", "DEA48DD2-8D9A-4182-906D-2250E599C84E", -98, ",", "2BF8406C-200F-4CF6-9D9B-C8AB6AA4DA23", -97, ",", "D94B0F50-018B-44F9-AFB3-4E80322BE992", -101, ",", "03C11F5D-D18E-463C-ABE0-8C8259A9CA1E", -96, ",", "BC3EC984-FD44-442C-959C-9265D8493CDE", -97, ",", "8086E657-9147-4C0D-A119-B2D41BBF4972", -99, ",", "99ADF642-924C-4145-9ECA-0C34348C7E75", -99 ],
210 | "maxclass" : "umenu",
211 | "numinlets" : 1,
212 | "numoutlets" : 3,
213 | "outlettype" : [ "int", "", "" ],
214 | "parameter_enable" : 0,
215 | "patching_rect" : [ 232.0, 234.5, 185.0, 22.0 ]
216 | }
217 |
218 | }
219 | , {
220 | "box" : {
221 | "id" : "obj-21",
222 | "maxclass" : "message",
223 | "numinlets" : 2,
224 | "numoutlets" : 1,
225 | "outlettype" : [ "" ],
226 | "patching_rect" : [ 232.0, 272.5, 67.0, 22.0 ],
227 | "text" : "connect $1"
228 | }
229 |
230 | }
231 | , {
232 | "box" : {
233 | "id" : "obj-16",
234 | "maxclass" : "comment",
235 | "numinlets" : 1,
236 | "numoutlets" : 0,
237 | "patching_rect" : [ 104.0, 399.0, 111.0, 20.0 ],
238 | "text" : "Battery Level UUID"
239 | }
240 |
241 | }
242 | , {
243 | "box" : {
244 | "id" : "obj-11",
245 | "maxclass" : "comment",
246 | "numinlets" : 1,
247 | "numoutlets" : 0,
248 | "patching_rect" : [ 104.0, 367.0, 123.0, 20.0 ],
249 | "text" : "Battery Service UUID"
250 | }
251 |
252 | }
253 | , {
254 | "box" : {
255 | "id" : "obj-15",
256 | "maxclass" : "newobj",
257 | "numinlets" : 2,
258 | "numoutlets" : 2,
259 | "outlettype" : [ "", "" ],
260 | "patching_rect" : [ 28.0, 399.0, 67.0, 22.0 ],
261 | "text" : "route 2A19"
262 | }
263 |
264 | }
265 | , {
266 | "box" : {
267 | "id" : "obj-13",
268 | "maxclass" : "newobj",
269 | "numinlets" : 2,
270 | "numoutlets" : 2,
271 | "outlettype" : [ "", "" ],
272 | "patching_rect" : [ 28.0, 367.0, 67.0, 22.0 ],
273 | "text" : "route 180F"
274 | }
275 |
276 | }
277 | , {
278 | "box" : {
279 | "id" : "obj-10",
280 | "maxclass" : "message",
281 | "numinlets" : 2,
282 | "numoutlets" : 1,
283 | "outlettype" : [ "" ],
284 | "patching_rect" : [ 215.0, 144.0, 35.0, 22.0 ],
285 | "text" : "clear"
286 | }
287 |
288 | }
289 | , {
290 | "box" : {
291 | "id" : "obj-7",
292 | "maxclass" : "message",
293 | "numinlets" : 2,
294 | "numoutlets" : 1,
295 | "outlettype" : [ "" ],
296 | "patching_rect" : [ 172.0, 144.0, 39.0, 22.0 ],
297 | "text" : "found"
298 | }
299 |
300 | }
301 | , {
302 | "box" : {
303 | "id" : "obj-27",
304 | "maxclass" : "toggle",
305 | "numinlets" : 1,
306 | "numoutlets" : 1,
307 | "outlettype" : [ "int" ],
308 | "parameter_enable" : 0,
309 | "patching_rect" : [ 16.0, 152.0, 24.0, 24.0 ]
310 | }
311 |
312 | }
313 | , {
314 | "box" : {
315 | "id" : "obj-28",
316 | "maxclass" : "toggle",
317 | "numinlets" : 1,
318 | "numoutlets" : 1,
319 | "outlettype" : [ "int" ],
320 | "parameter_enable" : 0,
321 | "patching_rect" : [ 28.0, 222.0, 24.0, 24.0 ]
322 | }
323 |
324 | }
325 | , {
326 | "box" : {
327 | "id" : "obj-24",
328 | "maxclass" : "message",
329 | "numinlets" : 2,
330 | "numoutlets" : 1,
331 | "outlettype" : [ "" ],
332 | "patching_rect" : [ 28.0, 253.0, 57.0, 22.0 ],
333 | "text" : "report $1"
334 | }
335 |
336 | }
337 | , {
338 | "box" : {
339 | "id" : "obj-9",
340 | "maxclass" : "message",
341 | "numinlets" : 2,
342 | "numoutlets" : 1,
343 | "outlettype" : [ "" ],
344 | "patching_rect" : [ 16.0, 183.0, 51.0, 22.0 ],
345 | "text" : "scan $1"
346 | }
347 |
348 | }
349 | , {
350 | "box" : {
351 | "id" : "obj-1",
352 | "maxclass" : "newobj",
353 | "numinlets" : 1,
354 | "numoutlets" : 3,
355 | "outlettype" : [ "list", "list", "list" ],
356 | "patching_rect" : [ 28.0, 322.0, 71.5, 22.0 ],
357 | "text" : "max-ble"
358 | }
359 |
360 | }
361 | ],
362 | "lines" : [ {
363 | "patchline" : {
364 | "destination" : [ "obj-12", 0 ],
365 | "midpoints" : [ 90.0, 345.0, 219.0, 345.0, 219.0, 225.0, 228.0, 225.0, 228.0, 195.0, 241.5, 195.0 ],
366 | "source" : [ "obj-1", 2 ]
367 | }
368 |
369 | }
370 | , {
371 | "patchline" : {
372 | "destination" : [ "obj-13", 0 ],
373 | "midpoints" : [ 37.5, 345.0, 37.5, 345.0 ],
374 | "source" : [ "obj-1", 0 ]
375 | }
376 |
377 | }
378 | , {
379 | "patchline" : {
380 | "destination" : [ "obj-4", 0 ],
381 | "midpoints" : [ 224.5, 186.0, 181.5, 186.0 ],
382 | "source" : [ "obj-10", 0 ]
383 | }
384 |
385 | }
386 | , {
387 | "patchline" : {
388 | "destination" : [ "obj-2", 0 ],
389 | "midpoints" : [ 241.5, 225.0, 241.5, 225.0 ],
390 | "source" : [ "obj-12", 0 ]
391 | }
392 |
393 | }
394 | , {
395 | "patchline" : {
396 | "destination" : [ "obj-15", 0 ],
397 | "midpoints" : [ 37.5, 390.0, 37.5, 390.0 ],
398 | "source" : [ "obj-13", 0 ]
399 | }
400 |
401 | }
402 | , {
403 | "patchline" : {
404 | "destination" : [ "obj-14", 1 ],
405 | "midpoints" : [ 37.5, 435.0, 85.5, 435.0 ],
406 | "source" : [ "obj-15", 0 ]
407 | }
408 |
409 | }
410 | , {
411 | "patchline" : {
412 | "destination" : [ "obj-21", 0 ],
413 | "midpoints" : [ 241.5, 258.0, 241.5, 258.0 ],
414 | "source" : [ "obj-2", 0 ]
415 | }
416 |
417 | }
418 | , {
419 | "patchline" : {
420 | "destination" : [ "obj-35", 0 ],
421 | "source" : [ "obj-2", 2 ]
422 | }
423 |
424 | }
425 | , {
426 | "patchline" : {
427 | "destination" : [ "obj-1", 0 ],
428 | "midpoints" : [ 241.5, 309.0, 37.5, 309.0 ],
429 | "source" : [ "obj-21", 0 ]
430 | }
431 |
432 | }
433 | , {
434 | "patchline" : {
435 | "destination" : [ "obj-1", 0 ],
436 | "midpoints" : [ 37.5, 276.0, 37.5, 276.0 ],
437 | "source" : [ "obj-24", 0 ]
438 | }
439 |
440 | }
441 | , {
442 | "patchline" : {
443 | "destination" : [ "obj-33", 0 ],
444 | "source" : [ "obj-25", 2 ]
445 | }
446 |
447 | }
448 | , {
449 | "patchline" : {
450 | "destination" : [ "obj-25", 1 ],
451 | "source" : [ "obj-26", 0 ]
452 | }
453 |
454 | }
455 | , {
456 | "patchline" : {
457 | "destination" : [ "obj-9", 0 ],
458 | "midpoints" : [ 25.5, 177.0, 25.5, 177.0 ],
459 | "source" : [ "obj-27", 0 ]
460 | }
461 |
462 | }
463 | , {
464 | "patchline" : {
465 | "destination" : [ "obj-24", 0 ],
466 | "midpoints" : [ 37.5, 249.0, 37.5, 249.0 ],
467 | "source" : [ "obj-28", 0 ]
468 | }
469 |
470 | }
471 | , {
472 | "patchline" : {
473 | "destination" : [ "obj-34", 0 ],
474 | "source" : [ "obj-33", 0 ]
475 | }
476 |
477 | }
478 | , {
479 | "patchline" : {
480 | "destination" : [ "obj-1", 0 ],
481 | "source" : [ "obj-34", 0 ]
482 | }
483 |
484 | }
485 | , {
486 | "patchline" : {
487 | "destination" : [ "obj-26", 0 ],
488 | "source" : [ "obj-35", 1 ]
489 | }
490 |
491 | }
492 | , {
493 | "patchline" : {
494 | "destination" : [ "obj-36", 0 ],
495 | "source" : [ "obj-35", 0 ]
496 | }
497 |
498 | }
499 | , {
500 | "patchline" : {
501 | "destination" : [ "obj-25", 0 ],
502 | "source" : [ "obj-36", 0 ]
503 | }
504 |
505 | }
506 | , {
507 | "patchline" : {
508 | "destination" : [ "obj-1", 0 ],
509 | "midpoints" : [ 181.5, 309.0, 37.5, 309.0 ],
510 | "source" : [ "obj-4", 0 ]
511 | }
512 |
513 | }
514 | , {
515 | "patchline" : {
516 | "destination" : [ "obj-2", 0 ],
517 | "midpoints" : [ 213.5, 225.0, 241.5, 225.0 ],
518 | "source" : [ "obj-4", 1 ]
519 | }
520 |
521 | }
522 | , {
523 | "patchline" : {
524 | "destination" : [ "obj-2", 0 ],
525 | "source" : [ "obj-6", 0 ]
526 | }
527 |
528 | }
529 | , {
530 | "patchline" : {
531 | "destination" : [ "obj-4", 0 ],
532 | "midpoints" : [ 181.5, 168.0, 181.5, 168.0 ],
533 | "source" : [ "obj-7", 0 ]
534 | }
535 |
536 | }
537 | , {
538 | "patchline" : {
539 | "destination" : [ "obj-1", 0 ],
540 | "midpoints" : [ 25.5, 309.0, 37.5, 309.0 ],
541 | "source" : [ "obj-9", 0 ]
542 | }
543 |
544 | }
545 | ],
546 | "dependency_cache" : [ {
547 | "name" : "max-ble.mxo",
548 | "type" : "iLaX"
549 | }
550 | ],
551 | "autosave" : 0
552 | }
553 |
554 | }
555 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.filter-scan.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 59.0, 81.0, 640.0, 480.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-11",
43 | "linecount" : 2,
44 | "maxclass" : "message",
45 | "numinlets" : 2,
46 | "numoutlets" : 1,
47 | "outlettype" : [ "" ],
48 | "patching_rect" : [ 360.5, 301.0, 249.0, 35.0 ],
49 | "text" : "filter services 19B10000-E8F2-537E-4F6C-D104768A1214"
50 | }
51 |
52 | }
53 | , {
54 | "box" : {
55 | "id" : "obj-20",
56 | "maxclass" : "toggle",
57 | "numinlets" : 1,
58 | "numoutlets" : 1,
59 | "outlettype" : [ "int" ],
60 | "parameter_enable" : 0,
61 | "patching_rect" : [ 473.0, 208.0, 24.0, 24.0 ]
62 | }
63 |
64 | }
65 | , {
66 | "box" : {
67 | "id" : "obj-17",
68 | "maxclass" : "message",
69 | "numinlets" : 2,
70 | "numoutlets" : 1,
71 | "outlettype" : [ "" ],
72 | "patching_rect" : [ 473.0, 251.0, 87.0, 22.0 ],
73 | "text" : "filter iphone $1"
74 | }
75 |
76 | }
77 | , {
78 | "box" : {
79 | "id" : "obj-18",
80 | "maxclass" : "number",
81 | "numinlets" : 1,
82 | "numoutlets" : 2,
83 | "outlettype" : [ "", "bang" ],
84 | "parameter_enable" : 0,
85 | "patching_rect" : [ 378.0, 162.0, 50.0, 22.0 ]
86 | }
87 |
88 | }
89 | , {
90 | "box" : {
91 | "id" : "obj-13",
92 | "maxclass" : "message",
93 | "numinlets" : 2,
94 | "numoutlets" : 1,
95 | "outlettype" : [ "" ],
96 | "patching_rect" : [ 378.0, 199.0, 70.0, 22.0 ],
97 | "text" : "filter rssi $1"
98 | }
99 |
100 | }
101 | , {
102 | "box" : {
103 | "fontface" : 1,
104 | "id" : "obj-8",
105 | "maxclass" : "comment",
106 | "numinlets" : 1,
107 | "numoutlets" : 0,
108 | "patching_rect" : [ 378.0, 135.0, 135.0, 20.0 ],
109 | "text" : "Filters"
110 | }
111 |
112 | }
113 | , {
114 | "box" : {
115 | "bubble" : 1,
116 | "fontname" : "Arial",
117 | "fontsize" : 13.0,
118 | "id" : "obj-6",
119 | "maxclass" : "comment",
120 | "numinlets" : 1,
121 | "numoutlets" : 0,
122 | "patching_rect" : [ 194.0, 162.0, 147.0, 25.0 ],
123 | "text" : "Clear Found Devices"
124 | }
125 |
126 | }
127 | , {
128 | "box" : {
129 | "id" : "obj-14",
130 | "maxclass" : "comment",
131 | "numinlets" : 1,
132 | "numoutlets" : 0,
133 | "patching_rect" : [ 3.0, 75.0, 459.0, 20.0 ],
134 | "text" : "This patch demonstrates how to filter your scan results to help find the correct device"
135 | }
136 |
137 | }
138 | , {
139 | "box" : {
140 | "fontface" : 1,
141 | "id" : "obj-15",
142 | "maxclass" : "comment",
143 | "numinlets" : 1,
144 | "numoutlets" : 0,
145 | "patching_rect" : [ 3.0, 53.0, 135.0, 20.0 ],
146 | "text" : "Filtering Scan Results"
147 | }
148 |
149 | }
150 | , {
151 | "box" : {
152 | "fontsize" : 36.0,
153 | "id" : "obj-16",
154 | "maxclass" : "comment",
155 | "numinlets" : 1,
156 | "numoutlets" : 0,
157 | "patching_rect" : [ 3.0, 4.0, 137.0, 47.0 ],
158 | "text" : "max-ble"
159 | }
160 |
161 | }
162 | , {
163 | "box" : {
164 | "id" : "obj-12",
165 | "maxclass" : "newobj",
166 | "numinlets" : 1,
167 | "numoutlets" : 1,
168 | "outlettype" : [ "" ],
169 | "patching_rect" : [ 24.0, 381.0, 96.0, 22.0 ],
170 | "text" : "prepend append"
171 | }
172 |
173 | }
174 | , {
175 | "box" : {
176 | "id" : "obj-5",
177 | "maxclass" : "newobj",
178 | "numinlets" : 2,
179 | "numoutlets" : 2,
180 | "outlettype" : [ "", "" ],
181 | "patching_rect" : [ 24.0, 331.0, 42.0, 22.0 ],
182 | "text" : "gate 2"
183 | }
184 |
185 | }
186 | , {
187 | "box" : {
188 | "id" : "obj-4",
189 | "maxclass" : "newobj",
190 | "numinlets" : 1,
191 | "numoutlets" : 3,
192 | "outlettype" : [ "", "clear", "int" ],
193 | "patching_rect" : [ 107.0, 221.0, 61.0, 22.0 ],
194 | "text" : "t s clear 1"
195 | }
196 |
197 | }
198 | , {
199 | "box" : {
200 | "id" : "obj-2",
201 | "items" : [ "E938723E-C8A1-414C-8E9B-85CEC6999393", -66, ",", "47DD8C6D-A6AE-4369-846A-C3B8A6D0A4EC", -73, ",", "4A3C5C33-79CB-4A46-93BF-67B2BD228E6A", -62, ",", "371F9100-1AD9-4AB4-B34A-AAAEF226FDD6", -81, ",", "6183AE66-32E5-490D-BE5E-092DFFAABD20", -94, ",", "5D198709-B61B-4AD8-ACA8-E179E1DED74C", -70, ",", "EE426FAF-E960-4EB3-B0C0-E02856FE3CA0", -95, ",", "00A209DB-C270-4E43-956D-425968D20801", -93, ",", "77BED51C-E952-45E0-AFB5-5463957C6ED9", -91, ",", "08694D11-1A41-4962-8383-46A741E7D27F", -95, ",", "763A142B-EDA3-452D-8DFA-67DF0F59F3E0", -75 ],
202 | "maxclass" : "umenu",
203 | "numinlets" : 1,
204 | "numoutlets" : 3,
205 | "outlettype" : [ "int", "", "" ],
206 | "parameter_enable" : 0,
207 | "patching_rect" : [ 24.0, 417.0, 185.0, 22.0 ]
208 | }
209 |
210 | }
211 | , {
212 | "box" : {
213 | "bubble" : 1,
214 | "fontname" : "Arial",
215 | "fontsize" : 13.0,
216 | "id" : "obj-30",
217 | "maxclass" : "comment",
218 | "numinlets" : 1,
219 | "numoutlets" : 0,
220 | "patching_rect" : [ 151.0, 129.0, 136.0, 25.0 ],
221 | "text" : "List Found Devices"
222 | }
223 |
224 | }
225 | , {
226 | "box" : {
227 | "id" : "obj-10",
228 | "maxclass" : "message",
229 | "numinlets" : 2,
230 | "numoutlets" : 1,
231 | "outlettype" : [ "" ],
232 | "patching_rect" : [ 157.0, 162.0, 35.0, 22.0 ],
233 | "text" : "clear"
234 | }
235 |
236 | }
237 | , {
238 | "box" : {
239 | "id" : "obj-7",
240 | "maxclass" : "message",
241 | "numinlets" : 2,
242 | "numoutlets" : 1,
243 | "outlettype" : [ "" ],
244 | "patching_rect" : [ 107.0, 132.0, 39.0, 22.0 ],
245 | "text" : "found"
246 | }
247 |
248 | }
249 | , {
250 | "box" : {
251 | "id" : "obj-27",
252 | "maxclass" : "toggle",
253 | "numinlets" : 1,
254 | "numoutlets" : 1,
255 | "outlettype" : [ "int" ],
256 | "parameter_enable" : 0,
257 | "patching_rect" : [ 12.0, 131.0, 24.0, 24.0 ]
258 | }
259 |
260 | }
261 | , {
262 | "box" : {
263 | "id" : "obj-28",
264 | "maxclass" : "toggle",
265 | "numinlets" : 1,
266 | "numoutlets" : 1,
267 | "outlettype" : [ "int" ],
268 | "parameter_enable" : 0,
269 | "patching_rect" : [ 30.5, 190.0, 24.0, 24.0 ]
270 | }
271 |
272 | }
273 | , {
274 | "box" : {
275 | "id" : "obj-24",
276 | "maxclass" : "message",
277 | "numinlets" : 2,
278 | "numoutlets" : 1,
279 | "outlettype" : [ "" ],
280 | "patching_rect" : [ 30.5, 221.0, 57.0, 22.0 ],
281 | "text" : "report $1"
282 | }
283 |
284 | }
285 | , {
286 | "box" : {
287 | "id" : "obj-9",
288 | "maxclass" : "message",
289 | "numinlets" : 2,
290 | "numoutlets" : 1,
291 | "outlettype" : [ "" ],
292 | "patching_rect" : [ 12.0, 162.0, 51.0, 22.0 ],
293 | "text" : "scan $1"
294 | }
295 |
296 | }
297 | , {
298 | "box" : {
299 | "id" : "obj-1",
300 | "maxclass" : "newobj",
301 | "numinlets" : 1,
302 | "numoutlets" : 2,
303 | "outlettype" : [ "list", "list" ],
304 | "patching_rect" : [ 24.0, 286.0, 71.5, 22.0 ],
305 | "text" : "max-ble"
306 | }
307 |
308 | }
309 | ],
310 | "lines" : [ {
311 | "patchline" : {
312 | "destination" : [ "obj-5", 1 ],
313 | "midpoints" : [ 33.5, 318.0, 56.5, 318.0 ],
314 | "source" : [ "obj-1", 0 ]
315 | }
316 |
317 | }
318 | , {
319 | "patchline" : {
320 | "destination" : [ "obj-1", 0 ],
321 | "midpoints" : [ 166.5, 207.0, 99.0, 207.0, 99.0, 273.0, 33.5, 273.0 ],
322 | "source" : [ "obj-10", 0 ]
323 | }
324 |
325 | }
326 | , {
327 | "patchline" : {
328 | "destination" : [ "obj-1", 0 ],
329 | "source" : [ "obj-11", 0 ]
330 | }
331 |
332 | }
333 | , {
334 | "patchline" : {
335 | "destination" : [ "obj-2", 0 ],
336 | "midpoints" : [ 33.5, 405.0, 33.5, 405.0 ],
337 | "source" : [ "obj-12", 0 ]
338 | }
339 |
340 | }
341 | , {
342 | "patchline" : {
343 | "destination" : [ "obj-1", 0 ],
344 | "source" : [ "obj-13", 0 ]
345 | }
346 |
347 | }
348 | , {
349 | "patchline" : {
350 | "destination" : [ "obj-1", 0 ],
351 | "source" : [ "obj-17", 0 ]
352 | }
353 |
354 | }
355 | , {
356 | "patchline" : {
357 | "destination" : [ "obj-13", 0 ],
358 | "source" : [ "obj-18", 0 ]
359 | }
360 |
361 | }
362 | , {
363 | "patchline" : {
364 | "destination" : [ "obj-17", 0 ],
365 | "source" : [ "obj-20", 0 ]
366 | }
367 |
368 | }
369 | , {
370 | "patchline" : {
371 | "destination" : [ "obj-1", 0 ],
372 | "midpoints" : [ 40.0, 273.0, 33.5, 273.0 ],
373 | "source" : [ "obj-24", 0 ]
374 | }
375 |
376 | }
377 | , {
378 | "patchline" : {
379 | "destination" : [ "obj-9", 0 ],
380 | "midpoints" : [ 21.5, 156.0, 21.5, 156.0 ],
381 | "source" : [ "obj-27", 0 ]
382 | }
383 |
384 | }
385 | , {
386 | "patchline" : {
387 | "destination" : [ "obj-24", 0 ],
388 | "midpoints" : [ 40.0, 216.0, 40.0, 216.0 ],
389 | "source" : [ "obj-28", 0 ]
390 | }
391 |
392 | }
393 | , {
394 | "patchline" : {
395 | "destination" : [ "obj-1", 0 ],
396 | "midpoints" : [ 116.5, 273.0, 33.5, 273.0 ],
397 | "source" : [ "obj-4", 0 ]
398 | }
399 |
400 | }
401 | , {
402 | "patchline" : {
403 | "destination" : [ "obj-2", 0 ],
404 | "midpoints" : [ 137.5, 366.0, 9.0, 366.0, 9.0, 411.0, 33.5, 411.0 ],
405 | "source" : [ "obj-4", 1 ]
406 | }
407 |
408 | }
409 | , {
410 | "patchline" : {
411 | "destination" : [ "obj-5", 0 ],
412 | "midpoints" : [ 158.5, 318.0, 33.5, 318.0 ],
413 | "source" : [ "obj-4", 2 ]
414 | }
415 |
416 | }
417 | , {
418 | "patchline" : {
419 | "destination" : [ "obj-12", 0 ],
420 | "midpoints" : [ 33.5, 354.0, 33.5, 354.0 ],
421 | "source" : [ "obj-5", 0 ]
422 | }
423 |
424 | }
425 | , {
426 | "patchline" : {
427 | "destination" : [ "obj-4", 0 ],
428 | "midpoints" : [ 116.5, 147.0, 116.5, 147.0 ],
429 | "source" : [ "obj-7", 0 ]
430 | }
431 |
432 | }
433 | , {
434 | "patchline" : {
435 | "destination" : [ "obj-1", 0 ],
436 | "midpoints" : [ 21.5, 273.0, 33.5, 273.0 ],
437 | "source" : [ "obj-9", 0 ]
438 | }
439 |
440 | }
441 | , {
442 | "patchline" : {
443 | "destination" : [ "", 0 ],
444 | "source" : [ "obj-10", 0 ]
445 | }
446 |
447 | }
448 | ],
449 | "dependency_cache" : [ {
450 | "name" : "max-ble.mxo",
451 | "type" : "iLaX"
452 | }
453 | ],
454 | "autosave" : 0
455 | }
456 |
457 | }
458 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.formats.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 84.0, 106.0, 640.0, 480.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-27",
43 | "maxclass" : "message",
44 | "numinlets" : 2,
45 | "numoutlets" : 1,
46 | "outlettype" : [ "" ],
47 | "patching_rect" : [ 428.417747497558594, 290.0, 79.0, 22.0 ],
48 | "text" : "219 15 73 64"
49 | }
50 |
51 | }
52 | , {
53 | "box" : {
54 | "id" : "obj-28",
55 | "maxclass" : "newobj",
56 | "numinlets" : 2,
57 | "numoutlets" : 1,
58 | "outlettype" : [ "list" ],
59 | "patching_rect" : [ 428.417747497558594, 319.0, 71.0, 22.0 ],
60 | "text" : "byte-cast f<"
61 | }
62 |
63 | }
64 | , {
65 | "box" : {
66 | "id" : "obj-24",
67 | "maxclass" : "newobj",
68 | "numinlets" : 1,
69 | "numoutlets" : 0,
70 | "patching_rect" : [ 428.417747497558594, 348.5, 130.0, 22.0 ],
71 | "text" : "print \"little endian float\""
72 | }
73 |
74 | }
75 | , {
76 | "box" : {
77 | "id" : "obj-23",
78 | "maxclass" : "newobj",
79 | "numinlets" : 1,
80 | "numoutlets" : 0,
81 | "patching_rect" : [ 291.417747497558594, 348.5, 125.0, 22.0 ],
82 | "text" : "print \"big endian float\""
83 | }
84 |
85 | }
86 | , {
87 | "box" : {
88 | "id" : "obj-21",
89 | "maxclass" : "message",
90 | "numinlets" : 2,
91 | "numoutlets" : 1,
92 | "outlettype" : [ "" ],
93 | "patching_rect" : [ 164.917747497558594, 290.0, 45.0, 22.0 ],
94 | "text" : "0 0 0 1"
95 | }
96 |
97 | }
98 | , {
99 | "box" : {
100 | "id" : "obj-22",
101 | "maxclass" : "newobj",
102 | "numinlets" : 2,
103 | "numoutlets" : 1,
104 | "outlettype" : [ "list" ],
105 | "patching_rect" : [ 164.917747497558594, 319.0, 70.0, 22.0 ],
106 | "text" : "byte-cast i>"
107 | }
108 |
109 | }
110 | , {
111 | "box" : {
112 | "id" : "obj-19",
113 | "maxclass" : "message",
114 | "numinlets" : 2,
115 | "numoutlets" : 1,
116 | "outlettype" : [ "" ],
117 | "patching_rect" : [ 291.417747497558594, 163.5, 99.0, 22.0 ],
118 | "presentation_linecount" : 2,
119 | "text" : "255 255 255 254"
120 | }
121 |
122 | }
123 | , {
124 | "box" : {
125 | "id" : "obj-20",
126 | "maxclass" : "newobj",
127 | "numinlets" : 2,
128 | "numoutlets" : 1,
129 | "outlettype" : [ "list" ],
130 | "patching_rect" : [ 291.417747497558594, 199.0, 67.0, 22.0 ],
131 | "text" : "byte-cast h"
132 | }
133 |
134 | }
135 | , {
136 | "box" : {
137 | "id" : "obj-17",
138 | "maxclass" : "message",
139 | "numinlets" : 2,
140 | "numoutlets" : 1,
141 | "outlettype" : [ "" ],
142 | "patching_rect" : [ 428.417747497558594, 163.5, 99.0, 22.0 ],
143 | "presentation_linecount" : 2,
144 | "text" : "255 255 255 254"
145 | }
146 |
147 | }
148 | , {
149 | "box" : {
150 | "id" : "obj-18",
151 | "maxclass" : "newobj",
152 | "numinlets" : 2,
153 | "numoutlets" : 1,
154 | "outlettype" : [ "list" ],
155 | "patching_rect" : [ 428.417747497558594, 199.0, 74.0, 22.0 ],
156 | "text" : "byte-cast uh"
157 | }
158 |
159 | }
160 | , {
161 | "box" : {
162 | "id" : "obj-15",
163 | "linecount" : 2,
164 | "maxclass" : "message",
165 | "numinlets" : 2,
166 | "numoutlets" : 1,
167 | "outlettype" : [ "" ],
168 | "patching_rect" : [ 164.917747497558594, 157.0, 102.0, 35.0 ],
169 | "presentation_linecount" : 3,
170 | "text" : "255 255 255 255 255 255 255 254"
171 | }
172 |
173 | }
174 | , {
175 | "box" : {
176 | "id" : "obj-16",
177 | "maxclass" : "newobj",
178 | "numinlets" : 2,
179 | "numoutlets" : 1,
180 | "outlettype" : [ "list" ],
181 | "patching_rect" : [ 164.917747497558594, 199.0, 70.0, 22.0 ],
182 | "text" : "byte-cast ui"
183 | }
184 |
185 | }
186 | , {
187 | "box" : {
188 | "id" : "obj-13",
189 | "maxclass" : "newobj",
190 | "numinlets" : 1,
191 | "numoutlets" : 0,
192 | "patching_rect" : [ 38.417747497558594, 348.5, 120.0, 22.0 ],
193 | "text" : "print \"little endian int\""
194 | }
195 |
196 | }
197 | , {
198 | "box" : {
199 | "id" : "obj-12",
200 | "maxclass" : "newobj",
201 | "numinlets" : 1,
202 | "numoutlets" : 0,
203 | "patching_rect" : [ 164.917747497558594, 348.5, 115.0, 22.0 ],
204 | "text" : "print \"big endian int\""
205 | }
206 |
207 | }
208 | , {
209 | "box" : {
210 | "id" : "obj-11",
211 | "maxclass" : "newobj",
212 | "numinlets" : 1,
213 | "numoutlets" : 0,
214 | "patching_rect" : [ 291.417747497558594, 229.0, 90.0, 22.0 ],
215 | "text" : "print \"16-bit int\""
216 | }
217 |
218 | }
219 | , {
220 | "box" : {
221 | "id" : "obj-10",
222 | "maxclass" : "newobj",
223 | "numinlets" : 1,
224 | "numoutlets" : 0,
225 | "patching_rect" : [ 428.417747497558594, 229.0, 96.0, 22.0 ],
226 | "text" : "print \"16-bit uint\""
227 | }
228 |
229 | }
230 | , {
231 | "box" : {
232 | "id" : "obj-4",
233 | "maxclass" : "newobj",
234 | "numinlets" : 1,
235 | "numoutlets" : 0,
236 | "patching_rect" : [ 164.917747497558594, 229.0, 96.0, 22.0 ],
237 | "text" : "print \"32-bit uint\""
238 | }
239 |
240 | }
241 | , {
242 | "box" : {
243 | "id" : "obj-3",
244 | "maxclass" : "newobj",
245 | "numinlets" : 1,
246 | "numoutlets" : 0,
247 | "patching_rect" : [ 38.417747497558594, 229.0, 90.0, 22.0 ],
248 | "text" : "print \"32-bit int\""
249 | }
250 |
251 | }
252 | , {
253 | "box" : {
254 | "id" : "obj-6",
255 | "linecount" : 2,
256 | "maxclass" : "message",
257 | "numinlets" : 2,
258 | "numoutlets" : 1,
259 | "outlettype" : [ "" ],
260 | "patching_rect" : [ 38.417747497558594, 157.0, 101.0, 35.0 ],
261 | "presentation_linecount" : 3,
262 | "text" : "255 255 255 255 255 255 255 254"
263 | }
264 |
265 | }
266 | , {
267 | "box" : {
268 | "id" : "obj-7",
269 | "maxclass" : "newobj",
270 | "numinlets" : 2,
271 | "numoutlets" : 1,
272 | "outlettype" : [ "list" ],
273 | "patching_rect" : [ 38.417747497558594, 199.0, 90.0, 22.0 ],
274 | "text" : "byte-cast i"
275 | }
276 |
277 | }
278 | , {
279 | "box" : {
280 | "id" : "obj-8",
281 | "maxclass" : "message",
282 | "numinlets" : 2,
283 | "numoutlets" : 1,
284 | "outlettype" : [ "" ],
285 | "patching_rect" : [ 291.417747497558594, 290.0, 79.0, 22.0 ],
286 | "text" : "64 73 15 219"
287 | }
288 |
289 | }
290 | , {
291 | "box" : {
292 | "id" : "obj-9",
293 | "maxclass" : "newobj",
294 | "numinlets" : 2,
295 | "numoutlets" : 1,
296 | "outlettype" : [ "list" ],
297 | "patching_rect" : [ 291.417747497558594, 319.0, 71.0, 22.0 ],
298 | "text" : "byte-cast f>"
299 | }
300 |
301 | }
302 | , {
303 | "box" : {
304 | "id" : "obj-34",
305 | "maxclass" : "message",
306 | "numinlets" : 2,
307 | "numoutlets" : 1,
308 | "outlettype" : [ "" ],
309 | "patching_rect" : [ 38.417747497558594, 290.0, 45.0, 22.0 ],
310 | "text" : "1 0 0 0"
311 | }
312 |
313 | }
314 | , {
315 | "box" : {
316 | "id" : "obj-33",
317 | "maxclass" : "newobj",
318 | "numinlets" : 2,
319 | "numoutlets" : 1,
320 | "outlettype" : [ "list" ],
321 | "patching_rect" : [ 38.417747497558594, 319.0, 70.0, 22.0 ],
322 | "text" : "byte-cast i<"
323 | }
324 |
325 | }
326 | , {
327 | "box" : {
328 | "border" : 0,
329 | "filename" : "helpdetails.js",
330 | "id" : "obj-26",
331 | "ignoreclick" : 1,
332 | "jsarguments" : [ "byte-cast" ],
333 | "maxclass" : "jsui",
334 | "numinlets" : 1,
335 | "numoutlets" : 1,
336 | "outlettype" : [ "" ],
337 | "parameter_enable" : 0,
338 | "patching_rect" : [ 0.0, -1.0, 539.0, 117.0 ]
339 | }
340 |
341 | }
342 | ],
343 | "lines" : [ {
344 | "patchline" : {
345 | "destination" : [ "obj-16", 0 ],
346 | "source" : [ "obj-15", 0 ]
347 | }
348 |
349 | }
350 | , {
351 | "patchline" : {
352 | "destination" : [ "obj-4", 0 ],
353 | "source" : [ "obj-16", 0 ]
354 | }
355 |
356 | }
357 | , {
358 | "patchline" : {
359 | "destination" : [ "obj-18", 0 ],
360 | "source" : [ "obj-17", 0 ]
361 | }
362 |
363 | }
364 | , {
365 | "patchline" : {
366 | "destination" : [ "obj-10", 0 ],
367 | "source" : [ "obj-18", 0 ]
368 | }
369 |
370 | }
371 | , {
372 | "patchline" : {
373 | "destination" : [ "obj-20", 0 ],
374 | "source" : [ "obj-19", 0 ]
375 | }
376 |
377 | }
378 | , {
379 | "patchline" : {
380 | "destination" : [ "obj-11", 0 ],
381 | "source" : [ "obj-20", 0 ]
382 | }
383 |
384 | }
385 | , {
386 | "patchline" : {
387 | "destination" : [ "obj-22", 0 ],
388 | "source" : [ "obj-21", 0 ]
389 | }
390 |
391 | }
392 | , {
393 | "patchline" : {
394 | "destination" : [ "obj-12", 0 ],
395 | "source" : [ "obj-22", 0 ]
396 | }
397 |
398 | }
399 | , {
400 | "patchline" : {
401 | "destination" : [ "obj-28", 0 ],
402 | "source" : [ "obj-27", 0 ]
403 | }
404 |
405 | }
406 | , {
407 | "patchline" : {
408 | "destination" : [ "obj-24", 0 ],
409 | "source" : [ "obj-28", 0 ]
410 | }
411 |
412 | }
413 | , {
414 | "patchline" : {
415 | "destination" : [ "obj-13", 0 ],
416 | "source" : [ "obj-33", 0 ]
417 | }
418 |
419 | }
420 | , {
421 | "patchline" : {
422 | "destination" : [ "obj-33", 0 ],
423 | "source" : [ "obj-34", 0 ]
424 | }
425 |
426 | }
427 | , {
428 | "patchline" : {
429 | "destination" : [ "obj-7", 0 ],
430 | "source" : [ "obj-6", 0 ]
431 | }
432 |
433 | }
434 | , {
435 | "patchline" : {
436 | "destination" : [ "obj-3", 0 ],
437 | "source" : [ "obj-7", 0 ]
438 | }
439 |
440 | }
441 | , {
442 | "patchline" : {
443 | "destination" : [ "obj-9", 0 ],
444 | "source" : [ "obj-8", 0 ]
445 | }
446 |
447 | }
448 | , {
449 | "patchline" : {
450 | "destination" : [ "obj-23", 0 ],
451 | "source" : [ "obj-9", 0 ]
452 | }
453 |
454 | }
455 | ],
456 | "dependency_cache" : [ {
457 | "name" : "helpdetails.js",
458 | "bootpath" : "C74:/help/resources",
459 | "type" : "TEXT",
460 | "implicit" : 1
461 | }
462 | , {
463 | "name" : "byte-cast.mxo",
464 | "type" : "iLaX"
465 | }
466 | ],
467 | "autosave" : 0
468 | }
469 |
470 | }
471 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.rssi.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 109.0, 131.0, 372.0, 480.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-36",
43 | "maxclass" : "button",
44 | "numinlets" : 1,
45 | "numoutlets" : 1,
46 | "outlettype" : [ "bang" ],
47 | "parameter_enable" : 0,
48 | "patching_rect" : [ 240.0, 277.0, 24.0, 24.0 ]
49 | }
50 |
51 | }
52 | , {
53 | "box" : {
54 | "id" : "obj-34",
55 | "maxclass" : "toggle",
56 | "numinlets" : 1,
57 | "numoutlets" : 1,
58 | "outlettype" : [ "int" ],
59 | "parameter_enable" : 0,
60 | "patching_rect" : [ 186.25, 141.0, 24.0, 24.0 ]
61 | }
62 |
63 | }
64 | , {
65 | "box" : {
66 | "id" : "obj-31",
67 | "maxclass" : "newobj",
68 | "numinlets" : 2,
69 | "numoutlets" : 1,
70 | "outlettype" : [ "bang" ],
71 | "patching_rect" : [ 186.25, 169.0, 69.0, 22.0 ],
72 | "text" : "metro 1000"
73 | }
74 |
75 | }
76 | , {
77 | "box" : {
78 | "id" : "obj-27",
79 | "maxclass" : "toggle",
80 | "numinlets" : 1,
81 | "numoutlets" : 1,
82 | "outlettype" : [ "int" ],
83 | "parameter_enable" : 0,
84 | "patching_rect" : [ 85.0, 119.0, 24.0, 24.0 ]
85 | }
86 |
87 | }
88 | , {
89 | "box" : {
90 | "id" : "obj-30",
91 | "maxclass" : "message",
92 | "numinlets" : 2,
93 | "numoutlets" : 1,
94 | "outlettype" : [ "" ],
95 | "patching_rect" : [ 85.0, 150.0, 51.0, 22.0 ],
96 | "text" : "scan $1"
97 | }
98 |
99 | }
100 | , {
101 | "box" : {
102 | "id" : "obj-28",
103 | "maxclass" : "toggle",
104 | "numinlets" : 1,
105 | "numoutlets" : 1,
106 | "outlettype" : [ "int" ],
107 | "parameter_enable" : 0,
108 | "patching_rect" : [ 21.0, 119.0, 24.0, 24.0 ]
109 | }
110 |
111 | }
112 | , {
113 | "box" : {
114 | "id" : "obj-24",
115 | "maxclass" : "message",
116 | "numinlets" : 2,
117 | "numoutlets" : 1,
118 | "outlettype" : [ "" ],
119 | "patching_rect" : [ 21.0, 150.0, 57.0, 22.0 ],
120 | "text" : "report $1"
121 | }
122 |
123 | }
124 | , {
125 | "box" : {
126 | "id" : "obj-26",
127 | "maxclass" : "newobj",
128 | "numinlets" : 2,
129 | "numoutlets" : 2,
130 | "outlettype" : [ "", "" ],
131 | "patching_rect" : [ 55.5, 313.0, 58.0, 22.0 ],
132 | "text" : "route rssi"
133 | }
134 |
135 | }
136 | , {
137 | "box" : {
138 | "id" : "obj-25",
139 | "maxclass" : "message",
140 | "numinlets" : 2,
141 | "numoutlets" : 1,
142 | "outlettype" : [ "" ],
143 | "patching_rect" : [ 186.25, 198.0, 75.0, 22.0 ],
144 | "text" : "device 0 rssi"
145 | }
146 |
147 | }
148 | , {
149 | "box" : {
150 | "id" : "obj-22",
151 | "maxclass" : "message",
152 | "numinlets" : 2,
153 | "numoutlets" : 1,
154 | "outlettype" : [ "" ],
155 | "patching_rect" : [ 24.5, 355.0, 50.0, 22.0 ],
156 | "text" : "-49"
157 | }
158 |
159 | }
160 | , {
161 | "box" : {
162 | "id" : "obj-32",
163 | "maxclass" : "newobj",
164 | "numinlets" : 2,
165 | "numoutlets" : 2,
166 | "outlettype" : [ "", "" ],
167 | "patching_rect" : [ 19.5, 279.0, 55.0, 22.0 ],
168 | "text" : "zl slice 1"
169 | }
170 |
171 | }
172 | , {
173 | "box" : {
174 | "id" : "obj-21",
175 | "linecount" : 2,
176 | "maxclass" : "comment",
177 | "numinlets" : 1,
178 | "numoutlets" : 0,
179 | "patching_rect" : [ 3.0, 75.0, 330.0, 33.0 ],
180 | "text" : "Keep a track of how far away a device is by requesting RSSI\nNow you can play Hot or Cold"
181 | }
182 |
183 | }
184 | , {
185 | "box" : {
186 | "fontface" : 1,
187 | "id" : "obj-19",
188 | "maxclass" : "comment",
189 | "numinlets" : 1,
190 | "numoutlets" : 0,
191 | "patching_rect" : [ 3.0, 53.0, 182.0, 20.0 ],
192 | "text" : "Logging RSSI"
193 | }
194 |
195 | }
196 | , {
197 | "box" : {
198 | "fontsize" : 36.0,
199 | "id" : "obj-18",
200 | "maxclass" : "comment",
201 | "numinlets" : 1,
202 | "numoutlets" : 0,
203 | "patching_rect" : [ 3.0, 4.0, 137.0, 47.0 ],
204 | "text" : "max-ble"
205 | }
206 |
207 | }
208 | , {
209 | "box" : {
210 | "id" : "obj-12",
211 | "maxclass" : "message",
212 | "numinlets" : 2,
213 | "numoutlets" : 1,
214 | "outlettype" : [ "" ],
215 | "patching_rect" : [ 145.25, 150.0, 35.0, 22.0 ],
216 | "text" : "clear"
217 | }
218 |
219 | }
220 | , {
221 | "box" : {
222 | "id" : "obj-1",
223 | "maxclass" : "newobj",
224 | "numinlets" : 1,
225 | "numoutlets" : 2,
226 | "outlettype" : [ "list", "list" ],
227 | "patching_rect" : [ 19.5, 240.0, 71.5, 22.0 ],
228 | "text" : "max-ble"
229 | }
230 |
231 | }
232 | ],
233 | "lines" : [ {
234 | "patchline" : {
235 | "destination" : [ "obj-32", 0 ],
236 | "source" : [ "obj-1", 0 ]
237 | }
238 |
239 | }
240 | , {
241 | "patchline" : {
242 | "destination" : [ "obj-1", 0 ],
243 | "source" : [ "obj-12", 0 ]
244 | }
245 |
246 | }
247 | , {
248 | "patchline" : {
249 | "destination" : [ "obj-1", 0 ],
250 | "source" : [ "obj-24", 0 ]
251 | }
252 |
253 | }
254 | , {
255 | "patchline" : {
256 | "destination" : [ "obj-1", 0 ],
257 | "source" : [ "obj-25", 0 ]
258 | }
259 |
260 | }
261 | , {
262 | "patchline" : {
263 | "destination" : [ "obj-22", 1 ],
264 | "source" : [ "obj-26", 0 ]
265 | }
266 |
267 | }
268 | , {
269 | "patchline" : {
270 | "destination" : [ "obj-30", 0 ],
271 | "source" : [ "obj-27", 0 ]
272 | }
273 |
274 | }
275 | , {
276 | "patchline" : {
277 | "destination" : [ "obj-24", 0 ],
278 | "source" : [ "obj-28", 0 ]
279 | }
280 |
281 | }
282 | , {
283 | "patchline" : {
284 | "destination" : [ "obj-1", 0 ],
285 | "source" : [ "obj-30", 0 ]
286 | }
287 |
288 | }
289 | , {
290 | "patchline" : {
291 | "destination" : [ "obj-25", 0 ],
292 | "source" : [ "obj-31", 0 ]
293 | }
294 |
295 | }
296 | , {
297 | "patchline" : {
298 | "destination" : [ "obj-26", 0 ],
299 | "order" : 1,
300 | "source" : [ "obj-32", 1 ]
301 | }
302 |
303 | }
304 | , {
305 | "patchline" : {
306 | "destination" : [ "obj-36", 0 ],
307 | "order" : 0,
308 | "source" : [ "obj-32", 1 ]
309 | }
310 |
311 | }
312 | , {
313 | "patchline" : {
314 | "destination" : [ "obj-31", 0 ],
315 | "source" : [ "obj-34", 0 ]
316 | }
317 |
318 | }
319 | ],
320 | "dependency_cache" : [ {
321 | "name" : "max-ble.mxo",
322 | "type" : "iLaX"
323 | }
324 | ],
325 | "autosave" : 0
326 | }
327 |
328 | }
329 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.simple-max-ble.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 34.0, 56.0, 640.0, 480.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-21",
43 | "linecount" : 3,
44 | "maxclass" : "comment",
45 | "numinlets" : 1,
46 | "numoutlets" : 0,
47 | "patching_rect" : [ 3.0, 75.0, 560.0, 47.0 ],
48 | "text" : "max-ble will currently search for BLE devices and store a list internally. Dicovered devices will be printed to the Max Console. Upon connecting to a device the SErvice UUID, Characteristic UUID and raw bytes will be sent out as a list. This list can be parsed using the route object"
49 | }
50 |
51 | }
52 | , {
53 | "box" : {
54 | "fontface" : 1,
55 | "id" : "obj-19",
56 | "maxclass" : "comment",
57 | "numinlets" : 1,
58 | "numoutlets" : 0,
59 | "patching_rect" : [ 3.0, 53.0, 182.0, 20.0 ],
60 | "text" : "Bluetooth Low Energy for Max"
61 | }
62 |
63 | }
64 | , {
65 | "box" : {
66 | "fontsize" : 36.0,
67 | "id" : "obj-18",
68 | "maxclass" : "comment",
69 | "numinlets" : 1,
70 | "numoutlets" : 0,
71 | "patching_rect" : [ 3.0, 4.0, 137.0, 47.0 ],
72 | "text" : "max-ble"
73 | }
74 |
75 | }
76 | , {
77 | "box" : {
78 | "id" : "obj-17",
79 | "maxclass" : "comment",
80 | "numinlets" : 1,
81 | "numoutlets" : 0,
82 | "patching_rect" : [ 269.5, 423.0, 143.0, 20.0 ],
83 | "text" : "Characteristic Bytes"
84 | }
85 |
86 | }
87 | , {
88 | "box" : {
89 | "id" : "obj-16",
90 | "maxclass" : "comment",
91 | "numinlets" : 1,
92 | "numoutlets" : 0,
93 | "patching_rect" : [ 94.0, 374.0, 111.0, 20.0 ],
94 | "text" : "Battery Level UUID"
95 | }
96 |
97 | }
98 | , {
99 | "box" : {
100 | "id" : "obj-11",
101 | "maxclass" : "comment",
102 | "numinlets" : 1,
103 | "numoutlets" : 0,
104 | "patching_rect" : [ 94.0, 335.0, 79.0, 20.0 ],
105 | "text" : "Battery UUID"
106 | }
107 |
108 | }
109 | , {
110 | "box" : {
111 | "id" : "obj-20",
112 | "maxclass" : "newobj",
113 | "numinlets" : 2,
114 | "numoutlets" : 2,
115 | "outlettype" : [ "", "" ],
116 | "patching_rect" : [ 21.0, 374.0, 67.0, 22.0 ],
117 | "text" : "route 2A19"
118 | }
119 |
120 | }
121 | , {
122 | "box" : {
123 | "id" : "obj-15",
124 | "maxclass" : "message",
125 | "numinlets" : 2,
126 | "numoutlets" : 1,
127 | "outlettype" : [ "" ],
128 | "patching_rect" : [ 21.0, 423.0, 243.0, 22.0 ],
129 | "text" : "51"
130 | }
131 |
132 | }
133 | , {
134 | "box" : {
135 | "id" : "obj-13",
136 | "maxclass" : "newobj",
137 | "numinlets" : 2,
138 | "numoutlets" : 2,
139 | "outlettype" : [ "", "" ],
140 | "patching_rect" : [ 21.0, 334.0, 67.0, 22.0 ],
141 | "text" : "route 180F"
142 | }
143 |
144 | }
145 | , {
146 | "box" : {
147 | "id" : "obj-14",
148 | "maxclass" : "comment",
149 | "numinlets" : 1,
150 | "numoutlets" : 0,
151 | "patching_rect" : [ 165.25, 228.0, 190.0, 20.0 ],
152 | "text" : "clear list of discovered peripherals"
153 | }
154 |
155 | }
156 | , {
157 | "box" : {
158 | "id" : "obj-12",
159 | "maxclass" : "message",
160 | "numinlets" : 2,
161 | "numoutlets" : 1,
162 | "outlettype" : [ "" ],
163 | "patching_rect" : [ 122.25, 228.0, 35.0, 22.0 ],
164 | "text" : "clear"
165 | }
166 |
167 | }
168 | , {
169 | "box" : {
170 | "id" : "obj-10",
171 | "maxclass" : "comment",
172 | "numinlets" : 1,
173 | "numoutlets" : 0,
174 | "patching_rect" : [ 217.5, 256.0, 247.0, 20.0 ],
175 | "text" : "Connect to discovered peripheral at index $1"
176 | }
177 |
178 | }
179 | , {
180 | "box" : {
181 | "id" : "obj-9",
182 | "maxclass" : "comment",
183 | "numinlets" : 1,
184 | "numoutlets" : 0,
185 | "patching_rect" : [ 136.0, 202.0, 253.0, 20.0 ],
186 | "text" : "list discovered peripherals in the Max Console"
187 | }
188 |
189 | }
190 | , {
191 | "box" : {
192 | "id" : "obj-7",
193 | "maxclass" : "message",
194 | "numinlets" : 2,
195 | "numoutlets" : 1,
196 | "outlettype" : [ "" ],
197 | "patching_rect" : [ 89.5, 202.0, 39.0, 22.0 ],
198 | "text" : "found"
199 | }
200 |
201 | }
202 | , {
203 | "box" : {
204 | "id" : "obj-6",
205 | "maxclass" : "comment",
206 | "numinlets" : 1,
207 | "numoutlets" : 0,
208 | "patching_rect" : [ 97.75, 175.0, 84.0, 20.0 ],
209 | "text" : "stop scanning"
210 | }
211 |
212 | }
213 | , {
214 | "box" : {
215 | "id" : "obj-4",
216 | "maxclass" : "comment",
217 | "numinlets" : 1,
218 | "numoutlets" : 0,
219 | "patching_rect" : [ 67.0, 147.0, 84.0, 20.0 ],
220 | "text" : "start scanning"
221 | }
222 |
223 | }
224 | , {
225 | "box" : {
226 | "id" : "obj-8",
227 | "maxclass" : "message",
228 | "numinlets" : 2,
229 | "numoutlets" : 1,
230 | "outlettype" : [ "" ],
231 | "patching_rect" : [ 152.0, 256.0, 61.0, 22.0 ],
232 | "text" : "connect 1"
233 | }
234 |
235 | }
236 | , {
237 | "box" : {
238 | "id" : "obj-5",
239 | "maxclass" : "message",
240 | "numinlets" : 2,
241 | "numoutlets" : 1,
242 | "outlettype" : [ "" ],
243 | "patching_rect" : [ 59.0, 175.0, 31.0, 22.0 ],
244 | "text" : "stop"
245 | }
246 |
247 | }
248 | , {
249 | "box" : {
250 | "id" : "obj-3",
251 | "maxclass" : "message",
252 | "numinlets" : 2,
253 | "numoutlets" : 1,
254 | "outlettype" : [ "" ],
255 | "patching_rect" : [ 23.0, 146.0, 34.0, 22.0 ],
256 | "text" : "scan"
257 | }
258 |
259 | }
260 | , {
261 | "box" : {
262 | "id" : "obj-1",
263 | "maxclass" : "newobj",
264 | "numinlets" : 1,
265 | "numoutlets" : 1,
266 | "outlettype" : [ "list" ],
267 | "patching_rect" : [ 21.0, 298.0, 71.5, 22.0 ],
268 | "text" : "max-ble"
269 | }
270 |
271 | }
272 | ],
273 | "lines" : [ {
274 | "patchline" : {
275 | "destination" : [ "obj-13", 0 ],
276 | "source" : [ "obj-1", 0 ]
277 | }
278 |
279 | }
280 | , {
281 | "patchline" : {
282 | "destination" : [ "obj-1", 0 ],
283 | "source" : [ "obj-12", 0 ]
284 | }
285 |
286 | }
287 | , {
288 | "patchline" : {
289 | "destination" : [ "obj-20", 0 ],
290 | "source" : [ "obj-13", 0 ]
291 | }
292 |
293 | }
294 | , {
295 | "patchline" : {
296 | "destination" : [ "obj-15", 1 ],
297 | "source" : [ "obj-20", 0 ]
298 | }
299 |
300 | }
301 | , {
302 | "patchline" : {
303 | "destination" : [ "obj-1", 0 ],
304 | "source" : [ "obj-3", 0 ]
305 | }
306 |
307 | }
308 | , {
309 | "patchline" : {
310 | "destination" : [ "obj-1", 0 ],
311 | "source" : [ "obj-5", 0 ]
312 | }
313 |
314 | }
315 | , {
316 | "patchline" : {
317 | "destination" : [ "obj-1", 0 ],
318 | "source" : [ "obj-7", 0 ]
319 | }
320 |
321 | }
322 | , {
323 | "patchline" : {
324 | "destination" : [ "obj-1", 0 ],
325 | "source" : [ "obj-8", 0 ]
326 | }
327 |
328 | }
329 | ],
330 | "dependency_cache" : [ {
331 | "name" : "max-ble.mxo",
332 | "type" : "iLaX"
333 | }
334 | ],
335 | "autosave" : 0
336 | }
337 |
338 | }
339 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.subscribing.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 84.0, 106.0, 410.0, 480.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-2",
43 | "maxclass" : "newobj",
44 | "numinlets" : 1,
45 | "numoutlets" : 0,
46 | "patching_rect" : [ 200.0, 380.0, 95.0, 22.0 ],
47 | "text" : "print Notification"
48 | }
49 |
50 | }
51 | , {
52 | "box" : {
53 | "id" : "obj-37",
54 | "maxclass" : "newobj",
55 | "numinlets" : 2,
56 | "numoutlets" : 2,
57 | "outlettype" : [ "", "" ],
58 | "patching_rect" : [ 14.0, 287.0, 55.0, 22.0 ],
59 | "text" : "zl slice 2"
60 | }
61 |
62 | }
63 | , {
64 | "box" : {
65 | "id" : "obj-36",
66 | "maxclass" : "message",
67 | "numinlets" : 2,
68 | "numoutlets" : 1,
69 | "outlettype" : [ "" ],
70 | "patching_rect" : [ 205.5, 218.0, 141.0, 22.0 ],
71 | "text" : "device 0 subscribe $1 $2"
72 | }
73 |
74 | }
75 | , {
76 | "box" : {
77 | "id" : "obj-34",
78 | "maxclass" : "message",
79 | "numinlets" : 2,
80 | "numoutlets" : 1,
81 | "outlettype" : [ "" ],
82 | "patching_rect" : [ 125.0, 298.0, 35.0, 22.0 ],
83 | "text" : "clear"
84 | }
85 |
86 | }
87 | , {
88 | "box" : {
89 | "id" : "obj-32",
90 | "maxclass" : "button",
91 | "numinlets" : 1,
92 | "numoutlets" : 1,
93 | "outlettype" : [ "bang" ],
94 | "parameter_enable" : 0,
95 | "patching_rect" : [ 125.0, 258.0, 24.0, 24.0 ]
96 | }
97 |
98 | }
99 | , {
100 | "box" : {
101 | "id" : "obj-30",
102 | "maxclass" : "newobj",
103 | "numinlets" : 1,
104 | "numoutlets" : 1,
105 | "outlettype" : [ "" ],
106 | "patching_rect" : [ 14.0, 330.0, 96.0, 22.0 ],
107 | "text" : "prepend append"
108 | }
109 |
110 | }
111 | , {
112 | "box" : {
113 | "id" : "obj-29",
114 | "items" : [ "180F", "2A19", ",", "1805", "2A2B", ",", "1805", "2A0F", ",", "180A", "2A29", ",", "180A", "2A24" ],
115 | "maxclass" : "umenu",
116 | "numinlets" : 1,
117 | "numoutlets" : 3,
118 | "outlettype" : [ "int", "", "" ],
119 | "parameter_enable" : 0,
120 | "patching_rect" : [ 14.0, 380.0, 100.0, 22.0 ]
121 | }
122 |
123 | }
124 | , {
125 | "box" : {
126 | "id" : "obj-27",
127 | "maxclass" : "toggle",
128 | "numinlets" : 1,
129 | "numoutlets" : 1,
130 | "outlettype" : [ "int" ],
131 | "parameter_enable" : 0,
132 | "patching_rect" : [ 81.0, 154.0, 24.0, 24.0 ]
133 | }
134 |
135 | }
136 | , {
137 | "box" : {
138 | "id" : "obj-28",
139 | "maxclass" : "toggle",
140 | "numinlets" : 1,
141 | "numoutlets" : 1,
142 | "outlettype" : [ "int" ],
143 | "parameter_enable" : 0,
144 | "patching_rect" : [ 14.0, 154.0, 24.0, 24.0 ]
145 | }
146 |
147 | }
148 | , {
149 | "box" : {
150 | "id" : "obj-24",
151 | "maxclass" : "message",
152 | "numinlets" : 2,
153 | "numoutlets" : 1,
154 | "outlettype" : [ "" ],
155 | "patching_rect" : [ 14.0, 185.0, 57.0, 22.0 ],
156 | "text" : "report $1"
157 | }
158 |
159 | }
160 | , {
161 | "box" : {
162 | "id" : "obj-21",
163 | "linecount" : 2,
164 | "maxclass" : "comment",
165 | "numinlets" : 1,
166 | "numoutlets" : 0,
167 | "patching_rect" : [ 1.0, 71.0, 352.0, 33.0 ],
168 | "text" : "You can subscribe to a particular Service's Characteristic. Everytime the value updates it will be output from max-ble"
169 | }
170 |
171 | }
172 | , {
173 | "box" : {
174 | "fontface" : 1,
175 | "id" : "obj-19",
176 | "maxclass" : "comment",
177 | "numinlets" : 1,
178 | "numoutlets" : 0,
179 | "patching_rect" : [ 1.0, 49.0, 182.0, 20.0 ],
180 | "text" : "Subscribing to Characteristic"
181 | }
182 |
183 | }
184 | , {
185 | "box" : {
186 | "fontsize" : 36.0,
187 | "id" : "obj-18",
188 | "maxclass" : "comment",
189 | "numinlets" : 1,
190 | "numoutlets" : 0,
191 | "patching_rect" : [ 1.0, 0.0, 137.0, 47.0 ],
192 | "text" : "max-ble"
193 | }
194 |
195 | }
196 | , {
197 | "box" : {
198 | "id" : "obj-8",
199 | "maxclass" : "message",
200 | "numinlets" : 2,
201 | "numoutlets" : 1,
202 | "outlettype" : [ "" ],
203 | "patching_rect" : [ 144.0, 185.0, 61.0, 22.0 ],
204 | "text" : "connect 0"
205 | }
206 |
207 | }
208 | , {
209 | "box" : {
210 | "id" : "obj-3",
211 | "maxclass" : "message",
212 | "numinlets" : 2,
213 | "numoutlets" : 1,
214 | "outlettype" : [ "" ],
215 | "patching_rect" : [ 81.0, 185.0, 51.0, 22.0 ],
216 | "text" : "scan $1"
217 | }
218 |
219 | }
220 | , {
221 | "box" : {
222 | "id" : "obj-1",
223 | "maxclass" : "newobj",
224 | "numinlets" : 1,
225 | "numoutlets" : 2,
226 | "outlettype" : [ "list", "list" ],
227 | "patching_rect" : [ 14.0, 255.0, 71.5, 22.0 ],
228 | "text" : "max-ble"
229 | }
230 |
231 | }
232 | ],
233 | "lines" : [ {
234 | "patchline" : {
235 | "destination" : [ "obj-2", 0 ],
236 | "source" : [ "obj-1", 1 ]
237 | }
238 |
239 | }
240 | , {
241 | "patchline" : {
242 | "destination" : [ "obj-37", 0 ],
243 | "source" : [ "obj-1", 0 ]
244 | }
245 |
246 | }
247 | , {
248 | "patchline" : {
249 | "destination" : [ "obj-1", 0 ],
250 | "source" : [ "obj-24", 0 ]
251 | }
252 |
253 | }
254 | , {
255 | "patchline" : {
256 | "destination" : [ "obj-3", 0 ],
257 | "source" : [ "obj-27", 0 ]
258 | }
259 |
260 | }
261 | , {
262 | "patchline" : {
263 | "destination" : [ "obj-24", 0 ],
264 | "source" : [ "obj-28", 0 ]
265 | }
266 |
267 | }
268 | , {
269 | "patchline" : {
270 | "destination" : [ "obj-36", 0 ],
271 | "midpoints" : [ 64.0, 408.0, 192.0, 408.0, 192.0, 213.0, 215.0, 213.0 ],
272 | "source" : [ "obj-29", 1 ]
273 | }
274 |
275 | }
276 | , {
277 | "patchline" : {
278 | "destination" : [ "obj-1", 0 ],
279 | "source" : [ "obj-3", 0 ]
280 | }
281 |
282 | }
283 | , {
284 | "patchline" : {
285 | "destination" : [ "obj-29", 0 ],
286 | "source" : [ "obj-30", 0 ]
287 | }
288 |
289 | }
290 | , {
291 | "patchline" : {
292 | "destination" : [ "obj-34", 0 ],
293 | "source" : [ "obj-32", 0 ]
294 | }
295 |
296 | }
297 | , {
298 | "patchline" : {
299 | "destination" : [ "obj-29", 0 ],
300 | "midpoints" : [ 134.5, 366.0, 23.5, 366.0 ],
301 | "source" : [ "obj-34", 0 ]
302 | }
303 |
304 | }
305 | , {
306 | "patchline" : {
307 | "destination" : [ "obj-1", 0 ],
308 | "source" : [ "obj-36", 0 ]
309 | }
310 |
311 | }
312 | , {
313 | "patchline" : {
314 | "destination" : [ "obj-30", 0 ],
315 | "source" : [ "obj-37", 0 ]
316 | }
317 |
318 | }
319 | , {
320 | "patchline" : {
321 | "destination" : [ "obj-1", 0 ],
322 | "order" : 1,
323 | "source" : [ "obj-8", 0 ]
324 | }
325 |
326 | }
327 | , {
328 | "patchline" : {
329 | "destination" : [ "obj-32", 0 ],
330 | "order" : 0,
331 | "source" : [ "obj-8", 0 ]
332 | }
333 |
334 | }
335 | ],
336 | "dependency_cache" : [ {
337 | "name" : "max-ble.mxo",
338 | "type" : "iLaX"
339 | }
340 | ],
341 | "autosave" : 0
342 | }
343 |
344 | }
345 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/examples/mhl.using-umenus.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 59.0, 81.0, 463.0, 604.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "boxes" : [ {
41 | "box" : {
42 | "id" : "obj-10",
43 | "maxclass" : "message",
44 | "numinlets" : 2,
45 | "numoutlets" : 1,
46 | "outlettype" : [ "" ],
47 | "patching_rect" : [ 197.0, 185.0, 35.0, 22.0 ],
48 | "text" : "clear"
49 | }
50 |
51 | }
52 | , {
53 | "box" : {
54 | "id" : "obj-8",
55 | "maxclass" : "message",
56 | "numinlets" : 2,
57 | "numoutlets" : 1,
58 | "outlettype" : [ "" ],
59 | "patching_rect" : [ 322.0, 168.0, 41.0, 22.0 ],
60 | "text" : "set $1"
61 | }
62 |
63 | }
64 | , {
65 | "box" : {
66 | "id" : "obj-6",
67 | "maxclass" : "newobj",
68 | "numinlets" : 1,
69 | "numoutlets" : 1,
70 | "outlettype" : [ "" ],
71 | "patching_rect" : [ 322.0, 197.0, 53.0, 22.0 ],
72 | "text" : "prepend"
73 | }
74 |
75 | }
76 | , {
77 | "box" : {
78 | "id" : "obj-5",
79 | "maxclass" : "newobj",
80 | "numinlets" : 2,
81 | "numoutlets" : 2,
82 | "outlettype" : [ "", "" ],
83 | "patching_rect" : [ 37.0, 406.0, 55.0, 22.0 ],
84 | "text" : "zl slice 3"
85 | }
86 |
87 | }
88 | , {
89 | "box" : {
90 | "id" : "obj-32",
91 | "linecount" : 2,
92 | "maxclass" : "comment",
93 | "numinlets" : 1,
94 | "numoutlets" : 0,
95 | "patching_rect" : [ 134.5, 495.0, 150.0, 33.0 ],
96 | "presentation_linecount" : 2,
97 | "text" : "Found Devices\nUUID, RSSI"
98 | }
99 |
100 | }
101 | , {
102 | "box" : {
103 | "id" : "obj-31",
104 | "maxclass" : "comment",
105 | "numinlets" : 1,
106 | "numoutlets" : 0,
107 | "patching_rect" : [ 313.5, 432.0, 132.0, 20.0 ],
108 | "text" : "Service : Characteristic"
109 | }
110 |
111 | }
112 | , {
113 | "box" : {
114 | "id" : "obj-25",
115 | "items" : "",
116 | "maxclass" : "umenu",
117 | "numinlets" : 1,
118 | "numoutlets" : 3,
119 | "outlettype" : [ "int", "", "" ],
120 | "parameter_enable" : 0,
121 | "patching_rect" : [ 197.0, 430.0, 100.0, 22.0 ]
122 | }
123 |
124 | }
125 | , {
126 | "box" : {
127 | "id" : "obj-22",
128 | "maxclass" : "newobj",
129 | "numinlets" : 1,
130 | "numoutlets" : 3,
131 | "outlettype" : [ "", "clear", "int" ],
132 | "patching_rect" : [ 209.0, 302.0, 61.0, 22.0 ],
133 | "text" : "t s clear 2"
134 | }
135 |
136 | }
137 | , {
138 | "box" : {
139 | "id" : "obj-20",
140 | "maxclass" : "message",
141 | "numinlets" : 2,
142 | "numoutlets" : 1,
143 | "outlettype" : [ "" ],
144 | "patching_rect" : [ 209.0, 265.0, 67.0, 22.0 ],
145 | "text" : "connect $1"
146 | }
147 |
148 | }
149 | , {
150 | "box" : {
151 | "id" : "obj-14",
152 | "maxclass" : "newobj",
153 | "numinlets" : 2,
154 | "numoutlets" : 2,
155 | "outlettype" : [ "", "" ],
156 | "patching_rect" : [ 14.0, 373.0, 42.0, 22.0 ],
157 | "text" : "gate 2"
158 | }
159 |
160 | }
161 | , {
162 | "box" : {
163 | "id" : "obj-2",
164 | "maxclass" : "newobj",
165 | "numinlets" : 1,
166 | "numoutlets" : 3,
167 | "outlettype" : [ "", "clear", "int" ],
168 | "patching_rect" : [ 142.0, 224.0, 61.0, 22.0 ],
169 | "text" : "t s clear 1"
170 | }
171 |
172 | }
173 | , {
174 | "box" : {
175 | "id" : "obj-4",
176 | "maxclass" : "message",
177 | "numinlets" : 2,
178 | "numoutlets" : 1,
179 | "outlettype" : [ "" ],
180 | "patching_rect" : [ 142.0, 185.0, 39.0, 22.0 ],
181 | "text" : "found"
182 | }
183 |
184 | }
185 | , {
186 | "box" : {
187 | "id" : "obj-36",
188 | "maxclass" : "message",
189 | "numinlets" : 2,
190 | "numoutlets" : 1,
191 | "outlettype" : [ "" ],
192 | "patching_rect" : [ 286.5, 235.0, 148.0, 22.0 ],
193 | "text" : "device $1 subscribe $1 $2"
194 | }
195 |
196 | }
197 | , {
198 | "box" : {
199 | "id" : "obj-30",
200 | "maxclass" : "newobj",
201 | "numinlets" : 1,
202 | "numoutlets" : 1,
203 | "outlettype" : [ "" ],
204 | "patching_rect" : [ 14.0, 332.0, 96.0, 22.0 ],
205 | "text" : "prepend append"
206 | }
207 |
208 | }
209 | , {
210 | "box" : {
211 | "id" : "obj-29",
212 | "items" : "",
213 | "maxclass" : "umenu",
214 | "numinlets" : 1,
215 | "numoutlets" : 3,
216 | "outlettype" : [ "int", "", "" ],
217 | "parameter_enable" : 0,
218 | "patching_rect" : [ 14.0, 495.0, 100.0, 22.0 ]
219 | }
220 |
221 | }
222 | , {
223 | "box" : {
224 | "id" : "obj-27",
225 | "maxclass" : "toggle",
226 | "numinlets" : 1,
227 | "numoutlets" : 1,
228 | "outlettype" : [ "int" ],
229 | "parameter_enable" : 0,
230 | "patching_rect" : [ 81.0, 154.0, 24.0, 24.0 ]
231 | }
232 |
233 | }
234 | , {
235 | "box" : {
236 | "id" : "obj-28",
237 | "maxclass" : "toggle",
238 | "numinlets" : 1,
239 | "numoutlets" : 1,
240 | "outlettype" : [ "int" ],
241 | "parameter_enable" : 0,
242 | "patching_rect" : [ 14.0, 154.0, 24.0, 24.0 ]
243 | }
244 |
245 | }
246 | , {
247 | "box" : {
248 | "id" : "obj-24",
249 | "maxclass" : "message",
250 | "numinlets" : 2,
251 | "numoutlets" : 1,
252 | "outlettype" : [ "" ],
253 | "patching_rect" : [ 14.0, 185.0, 57.0, 22.0 ],
254 | "text" : "report $1"
255 | }
256 |
257 | }
258 | , {
259 | "box" : {
260 | "id" : "obj-21",
261 | "linecount" : 2,
262 | "maxclass" : "comment",
263 | "numinlets" : 1,
264 | "numoutlets" : 0,
265 | "patching_rect" : [ 1.0, 71.0, 352.0, 33.0 ],
266 | "presentation_linecount" : 2,
267 | "text" : "This example demonstrates the usage of umenus in conjunction with max-ble to show to connect to devices programmatically"
268 | }
269 |
270 | }
271 | , {
272 | "box" : {
273 | "fontface" : 1,
274 | "id" : "obj-19",
275 | "maxclass" : "comment",
276 | "numinlets" : 1,
277 | "numoutlets" : 0,
278 | "patching_rect" : [ 1.0, 49.0, 182.0, 20.0 ],
279 | "text" : "Using max-ble with umenu"
280 | }
281 |
282 | }
283 | , {
284 | "box" : {
285 | "fontsize" : 36.0,
286 | "id" : "obj-18",
287 | "maxclass" : "comment",
288 | "numinlets" : 1,
289 | "numoutlets" : 0,
290 | "patching_rect" : [ 1.0, 0.0, 137.0, 47.0 ],
291 | "text" : "max-ble"
292 | }
293 |
294 | }
295 | , {
296 | "box" : {
297 | "id" : "obj-3",
298 | "maxclass" : "message",
299 | "numinlets" : 2,
300 | "numoutlets" : 1,
301 | "outlettype" : [ "" ],
302 | "patching_rect" : [ 81.0, 185.0, 51.0, 22.0 ],
303 | "text" : "scan $1"
304 | }
305 |
306 | }
307 | , {
308 | "box" : {
309 | "id" : "obj-1",
310 | "maxclass" : "newobj",
311 | "numinlets" : 1,
312 | "numoutlets" : 2,
313 | "outlettype" : [ "list", "list" ],
314 | "patching_rect" : [ 14.0, 302.0, 71.5, 22.0 ],
315 | "text" : "max-ble"
316 | }
317 |
318 | }
319 | ],
320 | "lines" : [ {
321 | "patchline" : {
322 | "destination" : [ "obj-30", 0 ],
323 | "midpoints" : [ 23.5, 327.0, 23.5, 327.0 ],
324 | "source" : [ "obj-1", 0 ]
325 | }
326 |
327 | }
328 | , {
329 | "patchline" : {
330 | "destination" : [ "obj-2", 0 ],
331 | "source" : [ "obj-10", 0 ]
332 | }
333 |
334 | }
335 | , {
336 | "patchline" : {
337 | "destination" : [ "obj-29", 0 ],
338 | "midpoints" : [ 23.5, 396.0, 23.5, 396.0 ],
339 | "source" : [ "obj-14", 0 ]
340 | }
341 |
342 | }
343 | , {
344 | "patchline" : {
345 | "destination" : [ "obj-5", 0 ],
346 | "midpoints" : [ 46.5, 396.0, 46.5, 396.0 ],
347 | "source" : [ "obj-14", 1 ]
348 | }
349 |
350 | }
351 | , {
352 | "patchline" : {
353 | "destination" : [ "obj-1", 0 ],
354 | "midpoints" : [ 151.5, 288.0, 23.5, 288.0 ],
355 | "source" : [ "obj-2", 0 ]
356 | }
357 |
358 | }
359 | , {
360 | "patchline" : {
361 | "destination" : [ "obj-14", 0 ],
362 | "midpoints" : [ 193.5, 369.0, 23.5, 369.0 ],
363 | "source" : [ "obj-2", 2 ]
364 | }
365 |
366 | }
367 | , {
368 | "patchline" : {
369 | "destination" : [ "obj-29", 0 ],
370 | "midpoints" : [ 172.5, 480.0, 23.5, 480.0 ],
371 | "source" : [ "obj-2", 1 ]
372 | }
373 |
374 | }
375 | , {
376 | "patchline" : {
377 | "destination" : [ "obj-22", 0 ],
378 | "midpoints" : [ 218.5, 288.0, 218.5, 288.0 ],
379 | "source" : [ "obj-20", 0 ]
380 | }
381 |
382 | }
383 | , {
384 | "patchline" : {
385 | "destination" : [ "obj-1", 0 ],
386 | "midpoints" : [ 218.5, 327.0, 120.0, 327.0, 120.0, 288.0, 23.5, 288.0 ],
387 | "source" : [ "obj-22", 0 ]
388 | }
389 |
390 | }
391 | , {
392 | "patchline" : {
393 | "destination" : [ "obj-14", 0 ],
394 | "midpoints" : [ 260.5, 369.0, 23.5, 369.0 ],
395 | "source" : [ "obj-22", 2 ]
396 | }
397 |
398 | }
399 | , {
400 | "patchline" : {
401 | "destination" : [ "obj-25", 0 ],
402 | "midpoints" : [ 239.5, 417.0, 206.5, 417.0 ],
403 | "source" : [ "obj-22", 1 ]
404 | }
405 |
406 | }
407 | , {
408 | "patchline" : {
409 | "destination" : [ "obj-1", 0 ],
410 | "midpoints" : [ 23.5, 210.0, 23.5, 210.0 ],
411 | "source" : [ "obj-24", 0 ]
412 | }
413 |
414 | }
415 | , {
416 | "patchline" : {
417 | "destination" : [ "obj-6", 0 ],
418 | "midpoints" : [ 247.0, 462.0, 309.0, 462.0, 309.0, 267.0, 282.0, 267.0, 282.0, 192.0, 331.5, 192.0 ],
419 | "source" : [ "obj-25", 1 ]
420 | }
421 |
422 | }
423 | , {
424 | "patchline" : {
425 | "destination" : [ "obj-3", 0 ],
426 | "midpoints" : [ 90.5, 180.0, 90.5, 180.0 ],
427 | "source" : [ "obj-27", 0 ]
428 | }
429 |
430 | }
431 | , {
432 | "patchline" : {
433 | "destination" : [ "obj-24", 0 ],
434 | "midpoints" : [ 23.5, 180.0, 23.5, 180.0 ],
435 | "source" : [ "obj-28", 0 ]
436 | }
437 |
438 | }
439 | , {
440 | "patchline" : {
441 | "destination" : [ "obj-20", 0 ],
442 | "midpoints" : [ 23.5, 528.0, 132.0, 528.0, 132.0, 264.0, 204.0, 264.0, 204.0, 261.0, 218.5, 261.0 ],
443 | "order" : 1,
444 | "source" : [ "obj-29", 0 ]
445 | }
446 |
447 | }
448 | , {
449 | "patchline" : {
450 | "destination" : [ "obj-8", 0 ],
451 | "midpoints" : [ 23.5, 528.0, 132.0, 528.0, 132.0, 264.0, 204.0, 264.0, 204.0, 252.0, 273.0, 252.0, 273.0, 162.0, 331.5, 162.0 ],
452 | "order" : 0,
453 | "source" : [ "obj-29", 0 ]
454 | }
455 |
456 | }
457 | , {
458 | "patchline" : {
459 | "destination" : [ "obj-1", 0 ],
460 | "midpoints" : [ 90.5, 288.0, 23.5, 288.0 ],
461 | "source" : [ "obj-3", 0 ]
462 | }
463 |
464 | }
465 | , {
466 | "patchline" : {
467 | "destination" : [ "obj-14", 1 ],
468 | "midpoints" : [ 23.5, 366.0, 46.5, 366.0 ],
469 | "source" : [ "obj-30", 0 ]
470 | }
471 |
472 | }
473 | , {
474 | "patchline" : {
475 | "destination" : [ "obj-1", 0 ],
476 | "midpoints" : [ 296.0, 288.0, 23.5, 288.0 ],
477 | "source" : [ "obj-36", 0 ]
478 | }
479 |
480 | }
481 | , {
482 | "patchline" : {
483 | "destination" : [ "obj-2", 0 ],
484 | "midpoints" : [ 151.5, 212.0, 151.5, 212.0 ],
485 | "source" : [ "obj-4", 0 ]
486 | }
487 |
488 | }
489 | , {
490 | "patchline" : {
491 | "destination" : [ "obj-25", 0 ],
492 | "midpoints" : [ 46.5, 438.0, 183.0, 438.0, 183.0, 426.0, 206.5, 426.0 ],
493 | "source" : [ "obj-5", 0 ]
494 | }
495 |
496 | }
497 | , {
498 | "patchline" : {
499 | "destination" : [ "obj-36", 0 ],
500 | "midpoints" : [ 331.5, 222.0, 296.0, 222.0 ],
501 | "source" : [ "obj-6", 0 ]
502 | }
503 |
504 | }
505 | , {
506 | "patchline" : {
507 | "destination" : [ "obj-6", 0 ],
508 | "midpoints" : [ 331.5, 192.0, 331.5, 192.0 ],
509 | "source" : [ "obj-8", 0 ]
510 | }
511 |
512 | }
513 | ],
514 | "dependency_cache" : [ {
515 | "name" : "max-ble.mxo",
516 | "type" : "iLaX"
517 | }
518 | ],
519 | "autosave" : 0
520 | }
521 |
522 | }
523 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/extras/Max Hardware Library Objects.maxpat:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 438.0, 175.0, 705.0, 346.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Lato Light",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 5.0, 5.0 ],
21 | "gridsnaponopen" : 2,
22 | "objectsnaponopen" : 0,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 2,
26 | "toptoolbarpinned" : 2,
27 | "righttoolbarpinned" : 2,
28 | "bottomtoolbarpinned" : 2,
29 | "toolbars_unpinned_last_save" : 15,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "tap",
39 | "subpatcher_template" : "tap.template",
40 | "boxes" : [ {
41 | "box" : {
42 | "fontsize" : 24.0,
43 | "id" : "obj-26",
44 | "maxclass" : "textbutton",
45 | "numinlets" : 1,
46 | "numoutlets" : 3,
47 | "outlettype" : [ "", "", "int" ],
48 | "parameter_enable" : 0,
49 | "patching_rect" : [ 220.0, 247.0, 274.0, 43.0 ],
50 | "text" : "Click for Documentation"
51 | }
52 |
53 | }
54 | , {
55 | "box" : {
56 | "hidden" : 1,
57 | "id" : "obj-22",
58 | "linecount" : 2,
59 | "maxclass" : "message",
60 | "numinlets" : 2,
61 | "numoutlets" : 1,
62 | "outlettype" : [ "" ],
63 | "patching_rect" : [ 220.0, 296.0, 298.0, 37.0 ],
64 | "presentation_linecount" : 2,
65 | "text" : ";\rmax opendoc max_hardware_library_topic.maxvig.xml"
66 | }
67 |
68 | }
69 | , {
70 | "box" : {
71 | "id" : "obj-16",
72 | "maxclass" : "newobj",
73 | "numinlets" : 2,
74 | "numoutlets" : 0,
75 | "patching_rect" : [ 451.0, 183.0, 57.0, 23.0 ],
76 | "text" : "byte-cast"
77 | }
78 |
79 | }
80 | , {
81 | "box" : {
82 | "id" : "obj-15",
83 | "maxclass" : "newobj",
84 | "numinlets" : 1,
85 | "numoutlets" : 3,
86 | "outlettype" : [ "list", "list", "list" ],
87 | "patching_rect" : [ 198.0, 183.0, 51.0, 23.0 ],
88 | "text" : "max-ble"
89 | }
90 |
91 | }
92 | , {
93 | "box" : {
94 | "fontsize" : 18.0,
95 | "id" : "obj-13",
96 | "maxclass" : "comment",
97 | "numinlets" : 1,
98 | "numoutlets" : 0,
99 | "patching_rect" : [ 160.5, 134.0, 393.0, 28.0 ],
100 | "text" : "objects for interacting with hardware electronics "
101 | }
102 |
103 | }
104 | , {
105 | "box" : {
106 | "fontsize" : 64.0,
107 | "id" : "obj-11",
108 | "maxclass" : "comment",
109 | "numinlets" : 1,
110 | "numoutlets" : 0,
111 | "patching_rect" : [ 38.0, 38.0, 638.0, 83.0 ],
112 | "text" : "Max Hardware Library"
113 | }
114 |
115 | }
116 | ],
117 | "lines" : [ {
118 | "patchline" : {
119 | "destination" : [ "obj-22", 0 ],
120 | "hidden" : 1,
121 | "source" : [ "obj-26", 0 ]
122 | }
123 |
124 | }
125 | ],
126 | "dependency_cache" : [ {
127 | "name" : "max-ble.mxo",
128 | "type" : "iLaX"
129 | }
130 | , {
131 | "name" : "byte-cast.mxo",
132 | "type" : "iLaX"
133 | }
134 | ],
135 | "autosave" : 0,
136 | "styles" : [ {
137 | "name" : "tap",
138 | "default" : {
139 | "fontname" : [ "Lato Light" ]
140 | }
141 | ,
142 | "parentstyle" : "",
143 | "multi" : 0
144 | }
145 | ]
146 | }
147 |
148 | }
149 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/extras/ble-notify/ble-notify.ino:
--------------------------------------------------------------------------------
1 | /*
2 | Get LED Data From Max
3 |
4 | This example creates a BLE peripheral with service that contains a
5 | characteristic to control an LED.
6 |
7 | The Service and Characteristic UUIDs can be generated with the uuidgen shell program
8 | or go to https://www.uuidgenerator.net
9 |
10 | The circuit:
11 | - Arduino MKR WiFi 1010, Arduino Uno WiFi Rev2 board, Arduino Nano 33 IoT,
12 | Arduino Nano 33 BLE, or Arduino Nano 33 BLE Sense board.
13 |
14 | This example code is in the public domain.
15 | */
16 | //------------------------------------------------------------------------------------------
17 | #include
18 | //------------------------------------------------------------------------------------------
19 | // LED Service UUID Device UUID
20 | BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214");
21 | // Switch Characteristic UUID
22 | BLEByteCharacteristic switchCharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLENotify);
23 | //------------------------------------------------------------------------------------------
24 | const int ledPin = LED_BUILTIN; // pin to use for the LED
25 | bool ledState = false;
26 | unsigned long switchTime = 1000;
27 | unsigned long previousTime = 0;
28 | //------------------------------------------------------------------------------------------
29 | void setup()
30 | {
31 | Serial.begin(9600);
32 | // while (!Serial);
33 |
34 | pinMode(ledPin, OUTPUT);
35 |
36 | if (!BLE.begin())
37 | halt("starting BLE failed!");
38 |
39 | BLE.setLocalName("LED");
40 | BLE.setAdvertisedService(ledService);
41 |
42 | // add the characteristic to the service
43 | ledService.addCharacteristic(switchCharacteristic);
44 | BLE.addService(ledService);
45 |
46 | switchCharacteristic.writeValue(ledState); // set the initial value for the characeristic:
47 |
48 | BLE.advertise(); // start advertising
49 |
50 | Serial.println("BLE LED Peripheral");
51 | }
52 |
53 | //------------------------------------------------------------------------------------------
54 |
55 | void loop()
56 | {
57 | BLE.poll();
58 | BLEDevice central = BLE.central();
59 | if (millis() - previousTime > switchTime)
60 | {
61 | previousTime = millis();
62 | ledState = !ledState;
63 | Serial.println(((ledState) ? "On" : "Off"));
64 | switchCharacteristic.writeValue(((ledState) ? 0x1 : 0x10));
65 | digitalWrite(LED_BUILTIN, ledState);
66 | }
67 | }
68 |
69 | //------------------------------------------------------------------------------------------
70 |
71 | void halt(const char* error)
72 | {
73 | Serial.println(error);
74 | while (1);
75 | }
76 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/help/byte-cast.maxhelp:
--------------------------------------------------------------------------------
1 | {
2 | "patcher" : {
3 | "fileversion" : 1,
4 | "appversion" : {
5 | "major" : 8,
6 | "minor" : 1,
7 | "revision" : 3,
8 | "architecture" : "x64",
9 | "modernui" : 1
10 | }
11 | ,
12 | "classnamespace" : "box",
13 | "rect" : [ 59.0, 81.0, 634.0, 540.0 ],
14 | "bglocked" : 0,
15 | "openinpresentation" : 0,
16 | "default_fontsize" : 12.0,
17 | "default_fontface" : 0,
18 | "default_fontname" : "Arial",
19 | "gridonopen" : 1,
20 | "gridsize" : [ 15.0, 15.0 ],
21 | "gridsnaponopen" : 1,
22 | "objectsnaponopen" : 1,
23 | "statusbarvisible" : 2,
24 | "toolbarvisible" : 1,
25 | "lefttoolbarpinned" : 0,
26 | "toptoolbarpinned" : 0,
27 | "righttoolbarpinned" : 0,
28 | "bottomtoolbarpinned" : 0,
29 | "toolbars_unpinned_last_save" : 0,
30 | "tallnewobj" : 0,
31 | "boxanimatetime" : 200,
32 | "enablehscroll" : 1,
33 | "enablevscroll" : 1,
34 | "devicewidth" : 0.0,
35 | "description" : "",
36 | "digest" : "",
37 | "tags" : "",
38 | "style" : "",
39 | "subpatcher_template" : "",
40 | "showrootpatcherontab" : 0,
41 | "showontab" : 0,
42 | "boxes" : [ {
43 | "box" : {
44 | "id" : "obj-3",
45 | "maxclass" : "newobj",
46 | "numinlets" : 0,
47 | "numoutlets" : 0,
48 | "patcher" : {
49 | "fileversion" : 1,
50 | "appversion" : {
51 | "major" : 8,
52 | "minor" : 1,
53 | "revision" : 3,
54 | "architecture" : "x64",
55 | "modernui" : 1
56 | }
57 | ,
58 | "classnamespace" : "box",
59 | "rect" : [ 0.0, 26.0, 634.0, 514.0 ],
60 | "bglocked" : 0,
61 | "openinpresentation" : 0,
62 | "default_fontsize" : 12.0,
63 | "default_fontface" : 0,
64 | "default_fontname" : "Arial",
65 | "gridonopen" : 1,
66 | "gridsize" : [ 15.0, 15.0 ],
67 | "gridsnaponopen" : 1,
68 | "objectsnaponopen" : 1,
69 | "statusbarvisible" : 2,
70 | "toolbarvisible" : 1,
71 | "lefttoolbarpinned" : 0,
72 | "toptoolbarpinned" : 0,
73 | "righttoolbarpinned" : 0,
74 | "bottomtoolbarpinned" : 0,
75 | "toolbars_unpinned_last_save" : 0,
76 | "tallnewobj" : 0,
77 | "boxanimatetime" : 200,
78 | "enablehscroll" : 1,
79 | "enablevscroll" : 1,
80 | "devicewidth" : 0.0,
81 | "description" : "",
82 | "digest" : "",
83 | "tags" : "",
84 | "style" : "",
85 | "subpatcher_template" : "",
86 | "showontab" : 1,
87 | "boxes" : [ {
88 | "box" : {
89 | "id" : "obj-27",
90 | "maxclass" : "message",
91 | "numinlets" : 2,
92 | "numoutlets" : 1,
93 | "outlettype" : [ "" ],
94 | "patching_rect" : [ 428.417747497558594, 290.0, 79.0, 22.0 ],
95 | "text" : "219 15 73 64"
96 | }
97 |
98 | }
99 | , {
100 | "box" : {
101 | "id" : "obj-28",
102 | "maxclass" : "newobj",
103 | "numinlets" : 2,
104 | "numoutlets" : 1,
105 | "outlettype" : [ "list" ],
106 | "patching_rect" : [ 428.417747497558594, 319.0, 71.0, 22.0 ],
107 | "text" : "byte-cast f<"
108 | }
109 |
110 | }
111 | , {
112 | "box" : {
113 | "id" : "obj-24",
114 | "maxclass" : "newobj",
115 | "numinlets" : 1,
116 | "numoutlets" : 0,
117 | "patching_rect" : [ 428.417747497558594, 348.5, 130.0, 22.0 ],
118 | "text" : "print \"little endian float\""
119 | }
120 |
121 | }
122 | , {
123 | "box" : {
124 | "id" : "obj-23",
125 | "maxclass" : "newobj",
126 | "numinlets" : 1,
127 | "numoutlets" : 0,
128 | "patching_rect" : [ 291.417747497558594, 348.5, 125.0, 22.0 ],
129 | "text" : "print \"big endian float\""
130 | }
131 |
132 | }
133 | , {
134 | "box" : {
135 | "id" : "obj-21",
136 | "maxclass" : "message",
137 | "numinlets" : 2,
138 | "numoutlets" : 1,
139 | "outlettype" : [ "" ],
140 | "patching_rect" : [ 164.917747497558594, 290.0, 45.0, 22.0 ],
141 | "text" : "0 0 0 1"
142 | }
143 |
144 | }
145 | , {
146 | "box" : {
147 | "id" : "obj-22",
148 | "maxclass" : "newobj",
149 | "numinlets" : 2,
150 | "numoutlets" : 1,
151 | "outlettype" : [ "list" ],
152 | "patching_rect" : [ 164.917747497558594, 319.0, 70.0, 22.0 ],
153 | "text" : "byte-cast i>"
154 | }
155 |
156 | }
157 | , {
158 | "box" : {
159 | "id" : "obj-19",
160 | "maxclass" : "message",
161 | "numinlets" : 2,
162 | "numoutlets" : 1,
163 | "outlettype" : [ "" ],
164 | "patching_rect" : [ 291.417747497558594, 163.5, 99.0, 22.0 ],
165 | "text" : "255 255 255 254"
166 | }
167 |
168 | }
169 | , {
170 | "box" : {
171 | "id" : "obj-20",
172 | "maxclass" : "newobj",
173 | "numinlets" : 2,
174 | "numoutlets" : 1,
175 | "outlettype" : [ "list" ],
176 | "patching_rect" : [ 291.417747497558594, 199.0, 67.0, 22.0 ],
177 | "text" : "byte-cast h"
178 | }
179 |
180 | }
181 | , {
182 | "box" : {
183 | "id" : "obj-17",
184 | "maxclass" : "message",
185 | "numinlets" : 2,
186 | "numoutlets" : 1,
187 | "outlettype" : [ "" ],
188 | "patching_rect" : [ 428.417747497558594, 163.5, 99.0, 22.0 ],
189 | "text" : "255 255 255 254"
190 | }
191 |
192 | }
193 | , {
194 | "box" : {
195 | "id" : "obj-18",
196 | "maxclass" : "newobj",
197 | "numinlets" : 2,
198 | "numoutlets" : 1,
199 | "outlettype" : [ "list" ],
200 | "patching_rect" : [ 428.417747497558594, 199.0, 74.0, 22.0 ],
201 | "text" : "byte-cast uh"
202 | }
203 |
204 | }
205 | , {
206 | "box" : {
207 | "id" : "obj-15",
208 | "linecount" : 2,
209 | "maxclass" : "message",
210 | "numinlets" : 2,
211 | "numoutlets" : 1,
212 | "outlettype" : [ "" ],
213 | "patching_rect" : [ 164.917747497558594, 157.0, 102.0, 35.0 ],
214 | "text" : "255 255 255 255 255 255 255 254"
215 | }
216 |
217 | }
218 | , {
219 | "box" : {
220 | "id" : "obj-16",
221 | "maxclass" : "newobj",
222 | "numinlets" : 2,
223 | "numoutlets" : 1,
224 | "outlettype" : [ "list" ],
225 | "patching_rect" : [ 164.917747497558594, 199.0, 70.0, 22.0 ],
226 | "text" : "byte-cast ui"
227 | }
228 |
229 | }
230 | , {
231 | "box" : {
232 | "id" : "obj-13",
233 | "maxclass" : "newobj",
234 | "numinlets" : 1,
235 | "numoutlets" : 0,
236 | "patching_rect" : [ 38.417747497558594, 348.5, 120.0, 22.0 ],
237 | "text" : "print \"little endian int\""
238 | }
239 |
240 | }
241 | , {
242 | "box" : {
243 | "id" : "obj-12",
244 | "maxclass" : "newobj",
245 | "numinlets" : 1,
246 | "numoutlets" : 0,
247 | "patching_rect" : [ 164.917747497558594, 348.5, 115.0, 22.0 ],
248 | "text" : "print \"big endian int\""
249 | }
250 |
251 | }
252 | , {
253 | "box" : {
254 | "id" : "obj-11",
255 | "maxclass" : "newobj",
256 | "numinlets" : 1,
257 | "numoutlets" : 0,
258 | "patching_rect" : [ 291.417747497558594, 229.0, 90.0, 22.0 ],
259 | "text" : "print \"16-bit int\""
260 | }
261 |
262 | }
263 | , {
264 | "box" : {
265 | "id" : "obj-10",
266 | "maxclass" : "newobj",
267 | "numinlets" : 1,
268 | "numoutlets" : 0,
269 | "patching_rect" : [ 428.417747497558594, 229.0, 96.0, 22.0 ],
270 | "text" : "print \"16-bit uint\""
271 | }
272 |
273 | }
274 | , {
275 | "box" : {
276 | "id" : "obj-4",
277 | "maxclass" : "newobj",
278 | "numinlets" : 1,
279 | "numoutlets" : 0,
280 | "patching_rect" : [ 164.917747497558594, 229.0, 96.0, 22.0 ],
281 | "text" : "print \"32-bit uint\""
282 | }
283 |
284 | }
285 | , {
286 | "box" : {
287 | "id" : "obj-3",
288 | "maxclass" : "newobj",
289 | "numinlets" : 1,
290 | "numoutlets" : 0,
291 | "patching_rect" : [ 38.417747497558594, 229.0, 90.0, 22.0 ],
292 | "text" : "print \"32-bit int\""
293 | }
294 |
295 | }
296 | , {
297 | "box" : {
298 | "id" : "obj-6",
299 | "linecount" : 2,
300 | "maxclass" : "message",
301 | "numinlets" : 2,
302 | "numoutlets" : 1,
303 | "outlettype" : [ "" ],
304 | "patching_rect" : [ 38.417747497558594, 157.0, 102.0, 35.0 ],
305 | "text" : "255 255 255 255 255 255 255 254"
306 | }
307 |
308 | }
309 | , {
310 | "box" : {
311 | "id" : "obj-7",
312 | "maxclass" : "newobj",
313 | "numinlets" : 2,
314 | "numoutlets" : 1,
315 | "outlettype" : [ "list" ],
316 | "patching_rect" : [ 38.417747497558594, 199.0, 90.0, 22.0 ],
317 | "text" : "byte-cast i"
318 | }
319 |
320 | }
321 | , {
322 | "box" : {
323 | "id" : "obj-8",
324 | "maxclass" : "message",
325 | "numinlets" : 2,
326 | "numoutlets" : 1,
327 | "outlettype" : [ "" ],
328 | "patching_rect" : [ 291.417747497558594, 290.0, 79.0, 22.0 ],
329 | "text" : "64 73 15 219"
330 | }
331 |
332 | }
333 | , {
334 | "box" : {
335 | "id" : "obj-9",
336 | "maxclass" : "newobj",
337 | "numinlets" : 2,
338 | "numoutlets" : 1,
339 | "outlettype" : [ "list" ],
340 | "patching_rect" : [ 291.417747497558594, 319.0, 71.0, 22.0 ],
341 | "text" : "byte-cast f>"
342 | }
343 |
344 | }
345 | , {
346 | "box" : {
347 | "id" : "obj-34",
348 | "maxclass" : "message",
349 | "numinlets" : 2,
350 | "numoutlets" : 1,
351 | "outlettype" : [ "" ],
352 | "patching_rect" : [ 38.417747497558594, 290.0, 45.0, 22.0 ],
353 | "text" : "1 0 0 0"
354 | }
355 |
356 | }
357 | , {
358 | "box" : {
359 | "id" : "obj-33",
360 | "maxclass" : "newobj",
361 | "numinlets" : 2,
362 | "numoutlets" : 1,
363 | "outlettype" : [ "list" ],
364 | "patching_rect" : [ 38.417747497558594, 319.0, 70.0, 22.0 ],
365 | "text" : "byte-cast i<"
366 | }
367 |
368 | }
369 | , {
370 | "box" : {
371 | "border" : 0,
372 | "filename" : "helpdetails.js",
373 | "id" : "obj-26",
374 | "ignoreclick" : 1,
375 | "jsarguments" : [ "byte-cast" ],
376 | "maxclass" : "jsui",
377 | "numinlets" : 1,
378 | "numoutlets" : 1,
379 | "outlettype" : [ "" ],
380 | "parameter_enable" : 0,
381 | "patching_rect" : [ 0.0, 0.0, 539.0, 117.0 ]
382 | }
383 |
384 | }
385 | ],
386 | "lines" : [ {
387 | "patchline" : {
388 | "destination" : [ "obj-16", 0 ],
389 | "source" : [ "obj-15", 0 ]
390 | }
391 |
392 | }
393 | , {
394 | "patchline" : {
395 | "destination" : [ "obj-4", 0 ],
396 | "source" : [ "obj-16", 0 ]
397 | }
398 |
399 | }
400 | , {
401 | "patchline" : {
402 | "destination" : [ "obj-18", 0 ],
403 | "source" : [ "obj-17", 0 ]
404 | }
405 |
406 | }
407 | , {
408 | "patchline" : {
409 | "destination" : [ "obj-10", 0 ],
410 | "source" : [ "obj-18", 0 ]
411 | }
412 |
413 | }
414 | , {
415 | "patchline" : {
416 | "destination" : [ "obj-20", 0 ],
417 | "source" : [ "obj-19", 0 ]
418 | }
419 |
420 | }
421 | , {
422 | "patchline" : {
423 | "destination" : [ "obj-11", 0 ],
424 | "source" : [ "obj-20", 0 ]
425 | }
426 |
427 | }
428 | , {
429 | "patchline" : {
430 | "destination" : [ "obj-22", 0 ],
431 | "source" : [ "obj-21", 0 ]
432 | }
433 |
434 | }
435 | , {
436 | "patchline" : {
437 | "destination" : [ "obj-12", 0 ],
438 | "source" : [ "obj-22", 0 ]
439 | }
440 |
441 | }
442 | , {
443 | "patchline" : {
444 | "destination" : [ "obj-28", 0 ],
445 | "source" : [ "obj-27", 0 ]
446 | }
447 |
448 | }
449 | , {
450 | "patchline" : {
451 | "destination" : [ "obj-24", 0 ],
452 | "source" : [ "obj-28", 0 ]
453 | }
454 |
455 | }
456 | , {
457 | "patchline" : {
458 | "destination" : [ "obj-13", 0 ],
459 | "source" : [ "obj-33", 0 ]
460 | }
461 |
462 | }
463 | , {
464 | "patchline" : {
465 | "destination" : [ "obj-33", 0 ],
466 | "source" : [ "obj-34", 0 ]
467 | }
468 |
469 | }
470 | , {
471 | "patchline" : {
472 | "destination" : [ "obj-7", 0 ],
473 | "source" : [ "obj-6", 0 ]
474 | }
475 |
476 | }
477 | , {
478 | "patchline" : {
479 | "destination" : [ "obj-3", 0 ],
480 | "source" : [ "obj-7", 0 ]
481 | }
482 |
483 | }
484 | , {
485 | "patchline" : {
486 | "destination" : [ "obj-9", 0 ],
487 | "source" : [ "obj-8", 0 ]
488 | }
489 |
490 | }
491 | , {
492 | "patchline" : {
493 | "destination" : [ "obj-23", 0 ],
494 | "source" : [ "obj-9", 0 ]
495 | }
496 |
497 | }
498 | ]
499 | }
500 | ,
501 | "patching_rect" : [ 111.0, 45.0, 63.0, 22.0 ],
502 | "saved_object_attributes" : {
503 | "description" : "",
504 | "digest" : "",
505 | "globalpatchername" : "",
506 | "tags" : ""
507 | }
508 | ,
509 | "text" : "p Formats"
510 | }
511 |
512 | }
513 | , {
514 | "box" : {
515 | "id" : "obj-2",
516 | "maxclass" : "newobj",
517 | "numinlets" : 0,
518 | "numoutlets" : 0,
519 | "patcher" : {
520 | "fileversion" : 1,
521 | "appversion" : {
522 | "major" : 8,
523 | "minor" : 1,
524 | "revision" : 3,
525 | "architecture" : "x64",
526 | "modernui" : 1
527 | }
528 | ,
529 | "classnamespace" : "box",
530 | "rect" : [ 59.0, 107.0, 634.0, 514.0 ],
531 | "bglocked" : 0,
532 | "openinpresentation" : 0,
533 | "default_fontsize" : 12.0,
534 | "default_fontface" : 0,
535 | "default_fontname" : "Arial",
536 | "gridonopen" : 1,
537 | "gridsize" : [ 15.0, 15.0 ],
538 | "gridsnaponopen" : 1,
539 | "objectsnaponopen" : 1,
540 | "statusbarvisible" : 2,
541 | "toolbarvisible" : 1,
542 | "lefttoolbarpinned" : 0,
543 | "toptoolbarpinned" : 0,
544 | "righttoolbarpinned" : 0,
545 | "bottomtoolbarpinned" : 0,
546 | "toolbars_unpinned_last_save" : 0,
547 | "tallnewobj" : 0,
548 | "boxanimatetime" : 200,
549 | "enablehscroll" : 1,
550 | "enablevscroll" : 1,
551 | "devicewidth" : 0.0,
552 | "description" : "",
553 | "digest" : "",
554 | "tags" : "",
555 | "style" : "",
556 | "subpatcher_template" : "",
557 | "showontab" : 1,
558 | "boxes" : [ {
559 | "box" : {
560 | "id" : "obj-16",
561 | "maxclass" : "toggle",
562 | "numinlets" : 1,
563 | "numoutlets" : 1,
564 | "outlettype" : [ "int" ],
565 | "parameter_enable" : 0,
566 | "patching_rect" : [ 346.417747497558594, 371.0, 24.0, 24.0 ]
567 | }
568 |
569 | }
570 | , {
571 | "box" : {
572 | "bubble" : 1,
573 | "id" : "obj-10",
574 | "maxclass" : "comment",
575 | "numinlets" : 1,
576 | "numoutlets" : 0,
577 | "patching_rect" : [ 383.417747497558594, 371.0, 133.0, 24.0 ],
578 | "text" : "Toggle Endianness"
579 | }
580 |
581 | }
582 | , {
583 | "box" : {
584 | "id" : "obj-11",
585 | "maxclass" : "message",
586 | "numinlets" : 2,
587 | "numoutlets" : 1,
588 | "outlettype" : [ "" ],
589 | "patching_rect" : [ 256.417747497558594, 434.0, 121.5, 22.0 ]
590 | }
591 |
592 | }
593 | , {
594 | "box" : {
595 | "id" : "obj-12",
596 | "maxclass" : "message",
597 | "numinlets" : 2,
598 | "numoutlets" : 1,
599 | "outlettype" : [ "" ],
600 | "patching_rect" : [ 256.417747497558594, 374.0, 79.0, 22.0 ],
601 | "text" : "64 73 15 219"
602 | }
603 |
604 | }
605 | , {
606 | "box" : {
607 | "id" : "obj-13",
608 | "maxclass" : "newobj",
609 | "numinlets" : 2,
610 | "numoutlets" : 1,
611 | "outlettype" : [ "list" ],
612 | "patching_rect" : [ 256.417747497558594, 403.0, 64.0, 22.0 ],
613 | "text" : "byte-cast f"
614 | }
615 |
616 | }
617 | , {
618 | "box" : {
619 | "bubble" : 1,
620 | "id" : "obj-1",
621 | "maxclass" : "comment",
622 | "numinlets" : 1,
623 | "numoutlets" : 0,
624 | "patching_rect" : [ 350.417747497558594, 148.0, 155.0, 24.0 ],
625 | "text" : "256 and 512 in bytes list"
626 | }
627 |
628 | }
629 | , {
630 | "box" : {
631 | "bubble" : 1,
632 | "id" : "obj-2",
633 | "linecount" : 2,
634 | "maxclass" : "comment",
635 | "numinlets" : 1,
636 | "numoutlets" : 0,
637 | "patching_rect" : [ 417.417747497558594, 259.0, 94.0, 37.0 ],
638 | "text" : "pi and tau in bytes"
639 | }
640 |
641 | }
642 | , {
643 | "box" : {
644 | "id" : "obj-3",
645 | "maxclass" : "message",
646 | "numinlets" : 2,
647 | "numoutlets" : 1,
648 | "outlettype" : [ "" ],
649 | "patching_rect" : [ 255.417747497558594, 218.0, 69.0, 22.0 ]
650 | }
651 |
652 | }
653 | , {
654 | "box" : {
655 | "id" : "obj-5",
656 | "maxclass" : "message",
657 | "numinlets" : 2,
658 | "numoutlets" : 1,
659 | "outlettype" : [ "" ],
660 | "patching_rect" : [ 256.417747497558594, 319.0, 84.0, 22.0 ]
661 | }
662 |
663 | }
664 | , {
665 | "box" : {
666 | "id" : "obj-6",
667 | "maxclass" : "message",
668 | "numinlets" : 2,
669 | "numoutlets" : 1,
670 | "outlettype" : [ "" ],
671 | "patching_rect" : [ 255.417747497558594, 148.0, 85.0, 22.0 ],
672 | "text" : "0 0 1 0 0 0 2 0"
673 | }
674 |
675 | }
676 | , {
677 | "box" : {
678 | "id" : "obj-7",
679 | "maxclass" : "newobj",
680 | "numinlets" : 2,
681 | "numoutlets" : 1,
682 | "outlettype" : [ "list" ],
683 | "patching_rect" : [ 255.417747497558594, 182.0, 63.0, 22.0 ],
684 | "text" : "byte-cast i"
685 | }
686 |
687 | }
688 | , {
689 | "box" : {
690 | "id" : "obj-8",
691 | "maxclass" : "message",
692 | "numinlets" : 2,
693 | "numoutlets" : 1,
694 | "outlettype" : [ "" ],
695 | "patching_rect" : [ 256.417747497558594, 259.0, 159.0, 22.0 ],
696 | "text" : "64 73 15 219 64 201 15 219"
697 | }
698 |
699 | }
700 | , {
701 | "box" : {
702 | "id" : "obj-9",
703 | "maxclass" : "newobj",
704 | "numinlets" : 2,
705 | "numoutlets" : 1,
706 | "outlettype" : [ "list" ],
707 | "patching_rect" : [ 256.417747497558594, 288.0, 64.0, 22.0 ],
708 | "text" : "byte-cast f"
709 | }
710 |
711 | }
712 | , {
713 | "box" : {
714 | "border" : 0,
715 | "filename" : "helpargs.js",
716 | "id" : "obj-4",
717 | "ignoreclick" : 1,
718 | "jsarguments" : [ "byte-cast" ],
719 | "maxclass" : "jsui",
720 | "numinlets" : 1,
721 | "numoutlets" : 1,
722 | "outlettype" : [ "" ],
723 | "parameter_enable" : 0,
724 | "patching_rect" : [ 101.0, 182.0, 120.835494995117188, 39.0 ]
725 | }
726 |
727 | }
728 | , {
729 | "box" : {
730 | "id" : "obj-42",
731 | "maxclass" : "comment",
732 | "numinlets" : 1,
733 | "numoutlets" : 0,
734 | "patching_rect" : [ 17.0, 126.0, 103.0, 20.0 ],
735 | "text" : "ASCII text"
736 | }
737 |
738 | }
739 | , {
740 | "box" : {
741 | "bubble" : 1,
742 | "id" : "obj-41",
743 | "maxclass" : "comment",
744 | "numinlets" : 1,
745 | "numoutlets" : 0,
746 | "patching_rect" : [ 96.417747497558594, 259.0, 130.0, 24.0 ],
747 | "text" : "475937281 in bytes"
748 | }
749 |
750 | }
751 | , {
752 | "box" : {
753 | "bubble" : 1,
754 | "id" : "obj-39",
755 | "maxclass" : "comment",
756 | "numinlets" : 1,
757 | "numoutlets" : 0,
758 | "patching_rect" : [ 106.417747497558594, 374.0, 120.0, 24.0 ],
759 | "text" : "pi in bytes"
760 | }
761 |
762 | }
763 | , {
764 | "box" : {
765 | "id" : "obj-35",
766 | "maxclass" : "message",
767 | "numinlets" : 2,
768 | "numoutlets" : 1,
769 | "outlettype" : [ "" ],
770 | "patching_rect" : [ 18.417747497558594, 319.0, 69.0, 22.0 ]
771 | }
772 |
773 | }
774 | , {
775 | "box" : {
776 | "id" : "obj-36",
777 | "maxclass" : "message",
778 | "numinlets" : 2,
779 | "numoutlets" : 1,
780 | "outlettype" : [ "" ],
781 | "patching_rect" : [ 18.417747497558594, 434.0, 64.0, 22.0 ]
782 | }
783 |
784 | }
785 | , {
786 | "box" : {
787 | "id" : "obj-37",
788 | "maxclass" : "message",
789 | "numinlets" : 2,
790 | "numoutlets" : 1,
791 | "outlettype" : [ "" ],
792 | "patching_rect" : [ 17.0, 218.0, 67.0, 22.0 ]
793 | }
794 |
795 | }
796 | , {
797 | "box" : {
798 | "id" : "obj-34",
799 | "maxclass" : "message",
800 | "numinlets" : 2,
801 | "numoutlets" : 1,
802 | "outlettype" : [ "" ],
803 | "patching_rect" : [ 18.417747497558594, 259.0, 65.0, 22.0 ],
804 | "text" : "28 94 58 1"
805 | }
806 |
807 | }
808 | , {
809 | "box" : {
810 | "id" : "obj-33",
811 | "maxclass" : "newobj",
812 | "numinlets" : 2,
813 | "numoutlets" : 1,
814 | "outlettype" : [ "list" ],
815 | "patching_rect" : [ 18.417747497558594, 288.0, 63.0, 22.0 ],
816 | "text" : "byte-cast i"
817 | }
818 |
819 | }
820 | , {
821 | "box" : {
822 | "id" : "obj-32",
823 | "maxclass" : "message",
824 | "numinlets" : 2,
825 | "numoutlets" : 1,
826 | "outlettype" : [ "" ],
827 | "patching_rect" : [ 18.417747497558594, 374.0, 79.0, 22.0 ],
828 | "text" : "64 73 15 219"
829 | }
830 |
831 | }
832 | , {
833 | "box" : {
834 | "id" : "obj-30",
835 | "maxclass" : "newobj",
836 | "numinlets" : 2,
837 | "numoutlets" : 1,
838 | "outlettype" : [ "list" ],
839 | "patching_rect" : [ 18.417747497558594, 403.0, 64.0, 22.0 ],
840 | "text" : "byte-cast f"
841 | }
842 |
843 | }
844 | , {
845 | "box" : {
846 | "id" : "obj-29",
847 | "maxclass" : "message",
848 | "numinlets" : 2,
849 | "numoutlets" : 1,
850 | "outlettype" : [ "" ],
851 | "patching_rect" : [ 17.0, 148.0, 159.0, 22.0 ],
852 | "text" : "84 101 115 116 105 110 103"
853 | }
854 |
855 | }
856 | , {
857 | "box" : {
858 | "id" : "obj-27",
859 | "maxclass" : "newobj",
860 | "numinlets" : 2,
861 | "numoutlets" : 1,
862 | "outlettype" : [ "list" ],
863 | "patching_rect" : [ 17.0, 182.0, 67.0, 22.0 ],
864 | "text" : "byte-cast s"
865 | }
866 |
867 | }
868 | , {
869 | "box" : {
870 | "border" : 0,
871 | "filename" : "helpdetails.js",
872 | "id" : "obj-26",
873 | "ignoreclick" : 1,
874 | "jsarguments" : [ "byte-cast" ],
875 | "maxclass" : "jsui",
876 | "numinlets" : 1,
877 | "numoutlets" : 1,
878 | "outlettype" : [ "" ],
879 | "parameter_enable" : 0,
880 | "patching_rect" : [ 0.0, 0.0, 539.0, 117.0 ]
881 | }
882 |
883 | }
884 | ],
885 | "lines" : [ {
886 | "patchline" : {
887 | "destination" : [ "obj-13", 0 ],
888 | "source" : [ "obj-12", 0 ]
889 | }
890 |
891 | }
892 | , {
893 | "patchline" : {
894 | "destination" : [ "obj-11", 1 ],
895 | "source" : [ "obj-13", 0 ]
896 | }
897 |
898 | }
899 | , {
900 | "patchline" : {
901 | "destination" : [ "obj-13", 1 ],
902 | "source" : [ "obj-16", 0 ]
903 | }
904 |
905 | }
906 | , {
907 | "patchline" : {
908 | "destination" : [ "obj-37", 1 ],
909 | "source" : [ "obj-27", 0 ]
910 | }
911 |
912 | }
913 | , {
914 | "patchline" : {
915 | "destination" : [ "obj-27", 0 ],
916 | "source" : [ "obj-29", 0 ]
917 | }
918 |
919 | }
920 | , {
921 | "patchline" : {
922 | "destination" : [ "obj-36", 1 ],
923 | "source" : [ "obj-30", 0 ]
924 | }
925 |
926 | }
927 | , {
928 | "patchline" : {
929 | "destination" : [ "obj-30", 0 ],
930 | "source" : [ "obj-32", 0 ]
931 | }
932 |
933 | }
934 | , {
935 | "patchline" : {
936 | "destination" : [ "obj-35", 1 ],
937 | "source" : [ "obj-33", 0 ]
938 | }
939 |
940 | }
941 | , {
942 | "patchline" : {
943 | "destination" : [ "obj-33", 0 ],
944 | "source" : [ "obj-34", 0 ]
945 | }
946 |
947 | }
948 | , {
949 | "patchline" : {
950 | "destination" : [ "obj-7", 0 ],
951 | "source" : [ "obj-6", 0 ]
952 | }
953 |
954 | }
955 | , {
956 | "patchline" : {
957 | "destination" : [ "obj-3", 1 ],
958 | "source" : [ "obj-7", 0 ]
959 | }
960 |
961 | }
962 | , {
963 | "patchline" : {
964 | "destination" : [ "obj-9", 0 ],
965 | "source" : [ "obj-8", 0 ]
966 | }
967 |
968 | }
969 | , {
970 | "patchline" : {
971 | "destination" : [ "obj-5", 1 ],
972 | "source" : [ "obj-9", 0 ]
973 | }
974 |
975 | }
976 | ]
977 | }
978 | ,
979 | "patching_rect" : [ 28.0, 45.0, 69.0, 22.0 ],
980 | "saved_object_attributes" : {
981 | "description" : "",
982 | "digest" : "",
983 | "globalpatchername" : "",
984 | "tags" : ""
985 | }
986 | ,
987 | "text" : "p Overview"
988 | }
989 |
990 | }
991 | ],
992 | "lines" : [ ],
993 | "dependency_cache" : [ {
994 | "name" : "helpdetails.js",
995 | "bootpath" : "C74:/help/resources",
996 | "type" : "TEXT",
997 | "implicit" : 1
998 | }
999 | , {
1000 | "name" : "helpargs.js",
1001 | "bootpath" : "C74:/help/resources",
1002 | "type" : "TEXT",
1003 | "implicit" : 1
1004 | }
1005 | , {
1006 | "name" : "byte-cast.mxo",
1007 | "type" : "iLaX"
1008 | }
1009 | ],
1010 | "autosave" : 0
1011 | }
1012 |
1013 | }
1014 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mhamilt/max-hardware-library/d8db59c33fe5bcaec2d649af37d3982e6d33ed45/max-package/max-hardware-library/icon.png
--------------------------------------------------------------------------------
/max-package/max-hardware-library/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
20 |
26 |
32 |
35 |
39 |
43 |
44 |
53 |
54 |
73 |
76 |
77 |
79 |
80 |
82 | image/svg+xml
83 |
85 |
86 |
87 |
88 |
89 |
93 |
102 | 0;
110 | 1
118 |
124 |
130 |
136 |
140 |
144 |
145 |
146 |
--------------------------------------------------------------------------------
/max-package/max-hardware-library/package-info.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Max Hardware Library",
3 | "version": "1.0.3",
4 | "author": "Matthew Hamilton",
5 | "description": "Library of utility objects for MaxMSP aimed at interacting with electronics hardware like Arduino via Bluetooth",
6 | "tags": [
7 | "serial",
8 | "bytes",
9 | "arduino",
10 | "bluetooth",
11 | "ble"
12 | ],
13 | "website": "https://github.com/mhamilt/max-hardware-library",
14 | "max_version_min": "8.0",
15 | "max_version_max": "none",
16 | "os": {
17 | "macintosh": {
18 | "min_version": "10.13.0",
19 | "platform": [
20 | "arm64",
21 | "x64"
22 | ]
23 | },
24 | "windows": {
25 | "platform": [
26 | "ia32",
27 | "x64"
28 | ],
29 | "min_version": "none"
30 | }
31 | },
32 | "homepatcher": "byte-cast.maxpat",
33 | "package_extra": {
34 | "reverse_domain": "com.mhamilt",
35 | "copyright": "GNU General Public License v3.0"
36 | },
37 | "filelist": {
38 | "examples": [
39 | "mhl.rssi.maxpat",
40 | "mhl.connect-everything.maxpat",
41 | "mhl.using-umenus.maxpat",
42 | "mhl.filter-scan.maxpat",
43 | "mhl.simple-max-ble.maxpat",
44 | "mhl.subscribing.maxpat",
45 | "mhl.byte-cast.maxpat",
46 | "mhl.formats.maxpat",
47 | "mhl.arduino-notify.maxpat",
48 | "mhl.ble-midi.maxpat"
49 | ],
50 | "externals": [
51 | "byte-cast.mxo",
52 | "byte-cast.mxe",
53 | "byte-cast.mxe64",
54 | "max-ble.mxo",
55 | "max-ble.mxe",
56 | "max-ble.mxe64"
57 | ],
58 | "help": [
59 | "byte-cast.maxhelp",
60 | "max-ble.maxhelp"
61 | ],
62 | "extras": [
63 | "ble-notify/ble-notify.ino"
64 | ],
65 | "docs": [
66 | "byte-cast.maxref.xml",
67 | "max-ble.maxref.xml"
68 | ]
69 | }
70 | }
71 |
--------------------------------------------------------------------------------