Giter Club home page Giter Club logo

Comments (7)

pedrolcl avatar pedrolcl commented on May 27, 2024

Hi! Thank you very much!

from wrk2mid.

pedrolcl avatar pedrolcl commented on May 27, 2024

About the MIDI ports

The Drumstick::File signal signalWRKTrack2() has a number of parameters, and one of them is the port. See the documentation of this signal here:
https://drumstick.sourceforge.io/docs/classdrumstick_1_1File_1_1QWrk.html#a5d5cbc6fe3813b626d15789f70a47131

When this signal is processed, here: https://github.com/pedrolcl/wrk2mid/blob/master/sequence.cpp#L473
the parameters: port, selected, muted, and loop are ignored. Only the track name is used. You need to do something here with the port parameter. The problem is that SMF tracks don't have this property. There was a "forced port" meta event, which the standard says now that is deprecated, in favor of the new Device Name and Program Name Meta Events:

https://www.midi.org/specifications/file-format-specifications/standard-midi-files/smf-device-name-and-program-name-meta-events

All the SMF documentation is here: https://www.midi.org/specifications/file-format-specifications/standard-midi-files

from wrk2mid.

pedrolcl avatar pedrolcl commented on May 27, 2024

This is an excerpt of the SMF spec:

MIDI Channel Prefix

FF 20 01 cc

The MIDI channel (0-15) contained in this event may be used to associate a MIDI channel with all events which follow, including System Exclusive and meta-events. This channel is "effective" until the next normal MIDI event (which contains a channel) or the next MIDI Channel Prefix meta-event. If MIDI channels refer to "tracks", this message may help jam several tracks into a format 0 file, keeping their non-MIDI data associated with a track. This capability is also present in Yamaha's ESEQ file format.

There was another Meta Event: FF 21 01 cc (MIDI Port Prefix) which was used for the same purpose as the corresponding Cakewalk track parameter, but you may find that your current sequencer does not understand it.

from wrk2mid.

pedrolcl avatar pedrolcl commented on May 27, 2024

About the markers:

This is the opposite case of the port number. There are perfectly defined SMF meta events for text markers and cue points, but I don't know about how Cakewalk stores markers. So the first step should be locate, document and implement in Drumstick signals for them. It would help to have some files with these types of events.

Marker

FF 06 length text

This optional event is used to label points within a sequence, e.g. rehearsal letters, loop points, or section names (such as 'First verse').

For a format 1 MIDI file, Marker Meta events should only occur within the first MTrk chunk.

Cue Point

FF 07 length text

This optional event is used to describe something that happens within a film, video or stage production at that point in the musical score. E.g. 'Car crashes', 'Door opens', etc.

For a format 1 MIDI file, Cue Point Meta events should only occur within the first MTrk chunk.

from wrk2mid.

pedrolcl avatar pedrolcl commented on May 27, 2024

Tickets created in Sourceforge, at Drumstick (https://sourceforge.net/p/drumstick/bugs/37/) and wrk2mid (https://sourceforge.net/p/wrk2mid/tickets/).

from wrk2mid.

pedrolcl avatar pedrolcl commented on May 27, 2024

Just in case you are listening: you should check the devel branch of wrk2mid with current drumstick, to see your marks and ports.

from wrk2mid.

pedrolcl avatar pedrolcl commented on May 27, 2024

solved in v1.1.0

from wrk2mid.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.