Skip to content

Commit

Permalink
fix msvc windows issue - fix new system bug - use catch test framework (
Browse files Browse the repository at this point in the history
#64)

* release v0.3.0

* frz fix placement of directions in chords

* frz round trip musicxml version

* frz fix tuplet issues

* frz branch progress

* gene noteheads and lyrics

* fix errant comments in cmake build

* better error message and project update

* gitignore

* merge mxapi into develop

* probably ok

* sublime

* merge mxapi branch (#20)

* mxapi komp-build stuff

* mxapi bombe test

* the latest crap

* mxapi handle divisions changes

* mxapi use voice 1 in bombe

* mx-version-0.2.0.2

* mx-version-0.2.0.3

* mx-version-0.2.0.4

* mxapi adjust -0 to say 0 instead when stringing decimals

* mx-version-0.2.0.5

* mx-version-0.2.0.6

* mxapi save ornaments

* mx-version-0.2.0.7

* mxapi working on direction offset problems

* mxapi direction mark time bug fixed

* mxapi reenable some tests

* mxapi pedal start stop working

* mxapi disable the core tests

* mx-version-0.2.0.8

* mxapi working on order of directions and notes

* mxapi directions are now written in a relatively sane order with respect to notes

* mxapi tests passing

* mx-version-0.2.0.9

* mxapi fix direction position data import and export

* mx-version-0.2.0.10

* mxapi compile visual studio

* mx-version-0.2.0.11

* mxapi doesnt compile add tremolos

* better support for tremolo glyphs

* mxapi words are exporting

* mxapi finish with words for now

* mx-version-0.2.0.12

* mxapi save and load technical marks

* mx-version-0.2.0.13

* mxapi turn off cout

* mxapi fix bug with other articulation

* mx-version-0.2.0.14

* mxapi merge decimal

* mxapi score data and tests

* mxapi tests

* mxapi sort score data before writing

* mx-version-0.2.0.17

* mxapi progress on directions robustness

* more work on cursor and direction

* mxapi directions seem more bulletproof now

* mx-version-0.2.0.18

* mxapi fix chord bug

* mxapi fix xcode project groups - add enum macros

* mxapi add musicxml instrument sound strings

* mxapi sound id

* mxapi restore compile control

* mx-version-0.2.0.20

* sound and general midi work

* mxapi begin adding chord support

* mxapi chord test simple

* mxapi middle of something does not compile

* mxapi chord progress

* mxapi chord saving works but round trip does not work

* mxapi still cannot fix the round trip test

* mxapi basic chord support complete

* mx-version-0.2.0.21

* mxapi add chord symbol features

* mx-version-0.2.0.22

* mxapi add processing instructions

* mx-version-0.2.0.23

* more chord symbol work

* mx-version-0.2.0.24

* mxapi not much

* mxapi Barlines (#12)

* mxapi fix broken test

* mx-version-0.2.0.25

* Feature/mxapi (#14)

mxapi barlines and endings

* Feature/repeats (#15)

mxapi repeats

* mx-version-0.2.0.26

* mxapi add chord positioning

* mx-version-0.2.0.27

* mxapi read and write note position data

* mx-version-0.2.0.28

* mxapi barline work

* mx-version-0.2.0.29

* mxapi fix measure rest writing

* mx-version-0.2.0.30

* mxapi fix another measure rest issue

* mx-version-0.2.0.31

* mx-version-0.2.0.32

* mxapi add failing freezing pieces test viola measure 7

* mxapi freezing tests

* mxapi more freezing tests

* mxapi freezing tests

* Feature/mxapi (#17)

* Smufl flailing

* Fat framework

* Add missing architectures

* Clean up projects

* Remove scheme and add stub post-archive script

* Track down a memory smasher

* Add an additional check

* use sparsepp to avoid smufl crash (#18)

* Use frozen map

* User sparse map for unordered list

* Return ref not copy of string

* smufl map carnage

* version

* mx-version-0.3.1.37

* nothing

* gitignore

* remove sublime workspace

* ignore sublime workspace

* ci and gcc work

* pesky sublime workspace

* sublime workspace ignore

* ci

* ci work

* ci work and gcc

* circleci

* circleci

* circleci

* test stuff

* work on test options (#27)

work on test options #24 #23

* readme and examples #22 #26 (#28)

* work on test options

* work on examples

* work on examples

* build examples on circleci

* run examples on circleci

* use include directory as public api #21 (#29)

* work on test options

* work on examples

* work on examples

* build examples on circleci

* run examples on circleci

* readme

* readme

* readme

* big shuffle

* hide stuff

* readme work for 1.0 #25 #26 #30 (#31)

* work on test options

* work on examples

* work on examples

* build examples on circleci

* run examples on circleci

* readme

* readme

* readme

* big shuffle

* hide stuff

* readme work

* done enough

* xcode

* merge with ezxml library (#38)

* bring in latest ezxml

* use ezxml library cmake works xcode does not

* incorporate ezxml into xcode project - does not build

* xcode mx library compiles

* xcode project stuff

* xcode tests run

* fix circleci warning

* delete circleci comments

* fix xcode project for komp (#39)

* fix-build

* xcode

* further explain tick time position #43 (#47)

* further explain tick time position

* improve tick time position comment

* support microtonal notes with cents #42 (#48)

* document and add cents

* documentation

* documentation

* implementation

* pitch data test

* run only my new test

* cents bug

* working

* good

* restore compile control

* clean up

* Update Sourcecode/private/mxtest/api/NoteDataTest.cpp

* Update Sourcecode/private/mxtest/api/NoteDataTest.cpp

* Update Sourcecode/private/mxtest/api/PitchDataTest.cpp

* Update Sourcecode/private/mx/impl/NoteReader.cpp

* Update Sourcecode/include/mx/api/PitchData.h

* note msvc compiler is tested in the readme #41 (#49)

* readme

* Update README.md

* badges

* Update README.md

* fix new system logic #52 (#56)

* remove mx::utility (#51)

* fix #62 windows msvc bad address bug (#61)

* fix windows msvc compiler issue

* add timers and logs

* trace the hanging test

* another msvc workaround

* fix syntax

* fix off by one error

* try using almost point five instead of point five

* fix precision failure

* revert traces

Co-authored-by: Matt Briggs <mjb@nowhere.com>

* fix rust gitignore

* use the catch2 test framework instead of cpplite #46 (#59)

* no go

* Revert "no go"

This reverts commit b36e91c.

* catch

* this is close

* closer

* passing

* print fewer dots when preprocessing xml files

* better cmake messages

* add traces for undefined behavior

* add more traces

* More trace

* More traces

* More traces

* Count the xml document that is failing

* remove traces

* clean up test main

* do not do unnecessary changes for now

* cleanup

Co-authored-by: Matt Briggs <brigmatt>
Co-authored-by: Matt Briggs <mjb@nowhere.com>
  • Loading branch information
webern and Matt Briggs committed Mar 9, 2020
1 parent 813e862 commit 34b6490
Show file tree
Hide file tree
Showing 56 changed files with 18,947 additions and 3,414 deletions.
5 changes: 5 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/saveactions_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 7 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ option(
OFF
)

#set(CMAKE_BINARY_DIR "./Build")
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})

Expand Down Expand Up @@ -90,14 +89,13 @@ file(WRITE ${PRIVATE_DIR}/mxtest/file/PathRoot.h

# MxTest
if(MX_BUILD_TESTS)
message("tests will be compiled")
message(STATUS "${PROJECT_NAME}:${CMAKE_CURRENT_LIST_LINE} tests will be compiled")
if(MX_BUILD_CORE_TESTS)
message("core tests will be compiled")
# add_compile_definitions(MX_COMPILE_CORE_TESTS)
message(STATUS "${PROJECT_NAME}:${CMAKE_CURRENT_LIST_LINE} core tests will be compiled")
add_definitions(-DMX_COMPILE_CORE_TESTS)
else()
message("core tests will not be compiled")
endif()
message(STATUS "${PROJECT_NAME}:${CMAKE_CURRENT_LIST_LINE} core tests will NOT be compiled")
endif()
find_package( Threads )
add_executable(MxTest ${SRC_MX_TEST_API} ${SRC_MX_TEST_CONTROL} ${SRC_MX_TEST_CORE} ${SRC_MX_TEST_FILE} ${SRC_MX_TEST_IMPL} ${SRC_MX_TEST_IMPORT} ${SRC_MX_TEST_UTILITY} ${SRC_MX_TEST_XML} ${SRC_CPUL})
target_include_directories(MxTest PRIVATE ${PRIVATE_DIR})
Expand All @@ -106,12 +104,12 @@ if(MX_BUILD_TESTS)
target_link_libraries(MxTest ${CMAKE_THREAD_LIBS_INIT})
set_property(TARGET MxTest PROPERTY CXX_STANDARD 14)
else()
message("tests will not be compiled")
message(STATUS "${PROJECT_NAME}:${CMAKE_CURRENT_LIST_LINE} tests will NOT be compiled")
endif()

# MxExamples
if(MX_BUILD_EXAMPLES)
message("examples will be compiled")
message(STATUS "${PROJECT_NAME}:${CMAKE_CURRENT_LIST_LINE} examples will be compiled")
find_package( Threads )
add_executable(MxRead ${PRIVATE_DIR}/mx/examples/Read.cpp)
add_executable(MxWrite ${PRIVATE_DIR}/mx/examples/Write.cpp)
Expand All @@ -123,5 +121,5 @@ if(MX_BUILD_EXAMPLES)
set_property(TARGET MxWrite PROPERTY CXX_STANDARD 14)
set_property(TARGET MxHide PROPERTY CXX_STANDARD 14)
else()
message("examples will not be compiled")
message(STATUS "${PROJECT_NAME}:${CMAKE_CURRENT_LIST_LINE} examples will NOT be compiled")
endif()
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -300,8 +300,6 @@ The `mx::core` namespace contains the MusicXML representation objects such as el

The `::ezxml::` namespace contains generic XML DOM functionality. Under the hood [pugixml](http://pugixml.org/) is being used. See the XML DOM section for more information.

The `mx::utility` namespace contains the beginnings of an api for simplifying the interactions with MusicXML. This namespace and its interfaces will change completely and should be avoided for now.

##### Partwise vs. Timewise
There are two types of MusicXML documents, 'partwise' and 'timewise'. A partwise document consists of a set of parts which contain measures. A timewise document consists of a set of measures which contain parts. Partwise is used more often by MusicXML applications while Timewise documents seem to be rare or even nonresistant. Nonetheless *MusicXML Class Library* implements both Timewise and Partwise. The class `mx::core::Document` can hold *either* a Partwise *or* a Timewise score. Note that is actually holds both, but only one or the other is 'active'. You can check the inner document type with the getChoice function. You can convert between Partwise and Timewise with the convertContents function.

Expand Down
Loading

0 comments on commit 34b6490

Please sign in to comment.