It is currently Tue Feb 27, 2024 6:39 am


Editing a custom organ definition in JSON format

Using the CODM to create your own organ definitions, exchange CODM organ definitions, ...
  • Author
  • Message
Offline

carlrobert

Member

  • Posts: 1
  • Joined: Thu Oct 21, 2021 1:58 pm

Editing a custom organ definition in JSON format

PostThu Oct 21, 2021 2:30 pm

Hi,

Just curious: Has anyone tried editing the organ definition using JSON, converted from and back to XML?
For my first, minor edits learning to use the CODM, I found the database format to be a bit awkward to navigate.
I tried converting the XML to JSON using a few lines of Python and IMO it looks quite manageable for minor edits.
There is still a lot of visual clutter but at least the bulk of the document is not XML start and end tags :)

Code: Select all
{
"Hauptwerk": {
   "@FileFormat": "CustomOrgan",
   "@FileFormatVersion": 5.0,
   "ObjectList": [
      {
         "@ObjectType": "_general",
         "_general": {
            "UniqueOrganID": {
               "$": 801010
            },
            "Name": {
               "$": "Example Custom Organ 0"
            },
            "ShortName": {
               "$": "Example Organ 0"
            },
            "OrganDefinitionFilenameExcludingExtension": {
               "$": "ExampleCustomOrgan0"
            }, ...
Offline
User avatar

mdyde

Moderator

  • Posts: 15405
  • Joined: Fri Mar 14, 2003 1:19 pm
  • Location: UK

Re: Editing a custom organ definition in JSON format

PostThu Oct 21, 2021 2:37 pm

Hello carlrobert,

I have no experience myself with converting CODM ODF files to/from JSON format, but just in case you weren't aware of it, Hauptwerk does have native functionality (on the 'Design tools' menu) for exporting/importing CODM ODFs to/from SQLite databases. The intention was always that SQL editors would be the primary means used for editing ODFs, rather than editing XML files by hand in a text editor. Various editors exist for SQLite databases, ranging from basic free ones (such as DB Browser for SQLite) to ones designed for professional use (e.g Navicat for SQLite).
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Offline
User avatar

vpo-organist

Member

  • Posts: 298
  • Joined: Wed Apr 29, 2020 6:49 am

Re: Editing a custom organ definition in JSON format

PostThu Oct 21, 2021 2:58 pm

carlrobert, you have recognized this correctly, but have not yet thought it through to the end.

In fact, XML is the most cumbersome format to take.
The parsers are slow and it is exhausting - not to say deadly - for the eyes to read.

With Json, after a while you will wonder why you always have to type the superfluous quotation marks.
If you have empty elements (without value), then you just write unnecessary stuff to waste your life time.

Then you think further and maybe come to the following format :-)

Code: Select all
[division]
; 3 = Standard division: manual 2 (Swell, Schwellwerk, Recit Expressif, Accompaniment or equivalent)
DivisionCode: 3
Name: SWELL
ShortName: Swell
NumberOfKeys: 56
MIDINoteNumOfFirstKey: 36
NumberOfKeyActionNodesIfDifferentFromNumberOfKeys: 0
MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey: 0
AccessibleForMIDIInputAndOutput: Y
WindModel_EnableWindModel: Y
WindModel_TotalResrvrAndWndchstVolMetresCubed: 1.5
WindModel_AreaOfReservoirTableMetresSquared: 1.5
WindModel_ResrvrBellowsPositiveDampingCoeff: 20
WindModel_WindchestPressureDropPctAtMaxLoad: 2
PercussiveEngagingKeyActionNoise_RankID
PercussiveEngagingKeyActionNoise_ChooseMIDINoteNumRandomly: N
PercussiveDisengagingKeyActionNoise_RankID
PercussiveDisengagingKeyActionNoise_ChooseMIDINoteNumRandomly: N
SustainingKeyActionNoise_RankID
SustainingKeyActionNoise_ChooseMIDINoteNumberRandomly: N


From this you can easy generate this eye cancer inducing format:

Code: Select all
<division>
  <DivisionCode>3</DivisionCode>
  <Name>SWELL</Name>
  <ShortName>Swell</ShortName>
  <NumberOfKeys>56</NumberOfKeys>
  <MIDINoteNumOfFirstKey>36</MIDINoteNumOfFirstKey>
<NumberOfKeyActionNodesIfDifferentFromNumberOfKeys>0</NumberOfKeyActionNodesIfDifferentFromNumberOfKeys>
<MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey>0</MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey>
  <AccessibleForMIDIInputAndOutput>Y</AccessibleForMIDIInputAndOutput>
  <WindModel_EnableWindModel>Y</WindModel_EnableWindModel>
  <WindModel_TotalResrvrAndWndchstVolMetresCubed>1.5</WindModel_TotalResrvrAndWndchstVolMetresCubed>
  <WindModel_AreaOfReservoirTableMetresSquared>1.5</WindModel_AreaOfReservoirTableMetresSquared>
  <WindModel_ResrvrBellowsPositiveDampingCoeff>20</WindModel_ResrvrBellowsPositiveDampingCoeff>
  <WindModel_WindchestPressureDropPctAtMaxLoad>2</WindModel_WindchestPressureDropPctAtMaxLoad>
  <PercussiveEngagingKeyActionNoise_RankID></PercussiveEngagingKeyActionNoise_RankID>
<PercussiveEngagingKeyActionNoise_ChooseMIDINoteNumRandomly>N</PercussiveEngagingKeyActionNoise_ChooseMIDINoteNumRandomly>
  <PercussiveDisengagingKeyActionNoise_RankID></PercussiveDisengagingKeyActionNoise_RankID>
<PercussiveDisengagingKeyActionNoise_ChooseMIDINoteNumRandomly>N</PercussiveDisengagingKeyActionNoise_ChooseMIDINoteNumRandomly>
  <SustainingKeyActionNoise_RankID></SustainingKeyActionNoise_RankID>
<SustainingKeyActionNoise_ChooseMIDINoteNumberRandomly>N</SustainingKeyActionNoise_ChooseMIDINoteNumberRandomly>
</division>
Offline

larason2

Member

  • Posts: 742
  • Joined: Thu Feb 04, 2016 9:32 pm

Re: Editing a custom organ definition in JSON format

PostSun Oct 24, 2021 6:57 pm

I had trouble finding a free app that does SQlite well on the Mac, so I ended up just using a free coding app called Atom. It takes some getting used to, but after a while the XML tags with the “< >” brackets don’t bother me. No eye cancer so far either!
Offline
User avatar

tf11972

Member

  • Posts: 337
  • Joined: Tue Jan 14, 2014 4:33 pm
  • Location: Bavaria, Germany

Re: Editing a custom organ definition in JSON format

PostSat Oct 30, 2021 10:02 am

I don't want to advertise, but there is now a good tool on the market from a german developer with which you can edit XML files quite comfortably in table form. The app costs 24 euros per licence, but that is money well spent. If you are interested, I will send you the link by PM.
Best regards
Thomas

Forestpipes - Virtual Pipe Organs
https://forestpipes.de

Return to Custom Organ Design Module (CODM)

Who is online

Users browsing this forum: No registered users and 1 guest