{"action":"created","issue":{"url":"https://api.github.com/repos/Mindwerks/wildmidi/issues/80","labels_url":"https://api.github.com/repos/Mindwerks/wildmidi/issues/80/labels{/name}","comments_url":"https://api.github.com/repos/Mindwerks/wildmidi/issues/80/comments","events_url":"https://api.github.com/repos/Mindwerks/wildmidi/issues/80/events","html_url":"https://github.com/Mindwerks/wildmidi/issues/80","id":32776987,"number":80,"title":"event struct needs to retain certain events","user":{"login":"chrisisonwildcode","id":6725242,"avatar_url":"https://avatars.githubusercontent.com/u/6725242?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisisonwildcode","html_url":"https://github.com/chrisisonwildcode","followers_url":"https://api.github.com/users/chrisisonwildcode/followers","following_url":"https://api.github.com/users/chrisisonwildcode/following{/other_user}","gists_url":"https://api.github.com/users/chrisisonwildcode/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisisonwildcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisisonwildcode/subscriptions","organizations_url":"https://api.github.com/users/chrisisonwildcode/orgs","repos_url":"https://api.github.com/users/chrisisonwildcode/repos","events_url":"https://api.github.com/users/chrisisonwildcode/events{/privacy}","received_events_url":"https://api.github.com/users/chrisisonwildcode/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"chrisisonwildcode","id":6725242,"avatar_url":"https://avatars.githubusercontent.com/u/6725242?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisisonwildcode","html_url":"https://github.com/chrisisonwildcode","followers_url":"https://api.github.com/users/chrisisonwildcode/followers","following_url":"https://api.github.com/users/chrisisonwildcode/following{/other_user}","gists_url":"https://api.github.com/users/chrisisonwildcode/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisisonwildcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisisonwildcode/subscriptions","organizations_url":"https://api.github.com/users/chrisisonwildcode/orgs","repos_url":"https://api.github.com/users/chrisisonwildcode/repos","events_url":"https://api.github.com/users/chrisisonwildcode/events{/privacy}","received_events_url":"https://api.github.com/users/chrisisonwildcode/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/Mindwerks/wildmidi/milestones/3","labels_url":"https://api.github.com/repos/Mindwerks/wildmidi/milestones/3/labels","id":564205,"number":3,"title":"Wishlist","description":"Here goes all issues, feature requests and other things that haven't yet found a place in a near term release.","creator":{"login":"psi29a","id":1122069,"avatar_url":"https://avatars.githubusercontent.com/u/1122069?v=3","gravatar_id":"","url":"https://api.github.com/users/psi29a","html_url":"https://github.com/psi29a","followers_url":"https://api.github.com/users/psi29a/followers","following_url":"https://api.github.com/users/psi29a/following{/other_user}","gists_url":"https://api.github.com/users/psi29a/gists{/gist_id}","starred_url":"https://api.github.com/users/psi29a/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/psi29a/subscriptions","organizations_url":"https://api.github.com/users/psi29a/orgs","repos_url":"https://api.github.com/users/psi29a/repos","events_url":"https://api.github.com/users/psi29a/events{/privacy}","received_events_url":"https://api.github.com/users/psi29a/received_events","type":"User","site_admin":false},"open_issues":12,"closed_issues":5,"state":"open","created_at":"2014-02-10T08:48:59Z","updated_at":"2015-01-01T02:48:57Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2014-05-04T21:12:52Z","updated_at":"2015-01-01T06:56:17Z","closed_at":null,"body":"Nothings broken, until you try to visualise turning the event struct into a midi file. Because all the timings are pre-calculated and converted into sample counts there is no information in the struct that can give you BMP or some other things that may be usefully put in the WM_Info struct such as TimeSignature, KeySignature and more importantly text and lyrics for karaoke :) \r\n\r\nIf the following events occurs within the files being processed they will also appear in the midi file output:\r\n\r\n- Divisions (done)\r\n- Meta: Tempo (done)\r\n- Meta: Port Prefix (done)\r\n- Meta: Channel Prefix (done)\r\n- Meta: Time signature (done)\r\n- Meta: Key signature (done)\r\n- Meta: Sequence Number (done)\r\n- SMPTE Offset (done)\r\n- Sysex: Roland drum track (done)\r\n- Sysex: Roland reset (done)\r\n- Sysex: Yamaha reset (done)\r\n- Unsupported controls (done)\r\n- Meta: Copyright\r\n- Meta: Text\r\n- Meta: Lyric\r\n- Meta: Cue Point\r\n- Meta: Marker\r\n- Meta: Instrument Name\r\n- Meta: Track Name\r\n\r\n\r\n**A marking of (done) means it has made it into my development branch.\r\n*** Note: An event listed here does not mean WildMidi supports it, only that if it exists in the input file then it will be output in the midi file WildMidi is able to produce. However the framework is in place for WildMidi to support events marked as (done).\r\n"},"comment":{"url":"https://api.github.com/repos/Mindwerks/wildmidi/issues/comments/68481572","html_url":"https://github.com/Mindwerks/wildmidi/issues/80#issuecomment-68481572","issue_url":"https://api.github.com/repos/Mindwerks/wildmidi/issues/80","id":68481572,"user":{"login":"chrisisonwildcode","id":6725242,"avatar_url":"https://avatars.githubusercontent.com/u/6725242?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisisonwildcode","html_url":"https://github.com/chrisisonwildcode","followers_url":"https://api.github.com/users/chrisisonwildcode/followers","following_url":"https://api.github.com/users/chrisisonwildcode/following{/other_user}","gists_url":"https://api.github.com/users/chrisisonwildcode/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisisonwildcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisisonwildcode/subscriptions","organizations_url":"https://api.github.com/users/chrisisonwildcode/orgs","repos_url":"https://api.github.com/users/chrisisonwildcode/repos","events_url":"https://api.github.com/users/chrisisonwildcode/events{/privacy}","received_events_url":"https://api.github.com/users/chrisisonwildcode/received_events","type":"User","site_admin":false},"created_at":"2015-01-01T06:56:17Z","updated_at":"2015-01-01T06:56:17Z","body":"Here is a question: the remaining Meta events I would like to support and hence be able to be output into midi file by from the event struct are all text events.\r\n\r\nThis means their format is FF ME LL ?? ?? ?? ... where ME is the Meta event code, and LL is the length of data.\r\n\r\nWhat I would like to do is where the event struct normally stores the data in uint32_t I would like to store the address of a malloc'd chunk of memory ... something like\r\n\r\nuint8_t * storetext = NULL;\r\nstoretext = malloc(LL);\r\nmemncpy(storetext, data, LL);\r\nmdi->events[mdi->event_count-1].event_data.channel = LL;\r\nmdi->events[mdi->event_count-1].event_data.data = (uint32_t)storetext;\r\n\r\nthen later ...\r\n\r\nuint8_t * writetext = NULL;\r\n\r\nwritetext = (uint8_t *)mdi->events[mdi->event_count-1].event_data.data;\r\n\r\n/*\r\nRemember we stored the length in the channel since the event does not have a channel setting.\r\n*/\r\nmemcpy((*out),writetext,mdi->events[mdi->event_count-1].event_data.channel);\r\n\r\nThis would mean I don't have to break the internal format just to add text events.\r\n\r\nPlease inform me if this is possible, and correct. "}}