[X] The "/OldFiles" file could not be found or is not available. Please select another file.

Share

More
No-Hardware MIDI Recorder Icon

No-Hardware MIDI Recorder

alpha

by andy_a


Record a melody as a MIDI file, right from the computer keyboard with no special hardware required.


http://imidiacy.sourceforge.net





Separate each tag with a space.

Release Date:

2008-12-24

Topic:

Operating System:

License:

Translations:

Intended Audience:

User Interface:

Programming Language:

C

Registered:

2006-06-15

Ratings and Reviews

Be the first to post a text review of No-Hardware MIDI Recorder. Rate and review a project by clicking thumbs up or thumbs down in the right column.

Project Feed

  • File released: /imidiacy/imidiacy_1.27/imidiacy_2008.12.23.zip

    posted 379 days ago

  • imidiacy imidiacy_1.27 file released: imidiacy_2008.12.23.zip

    ************************************************************ 23 December 2008 Added a very buggy Windows build of the 1.27 version. Undefined LINUX_VERSION and made no other edits. There are problems which will crash the program. It does produce usable output. Unless you decompress the files in the audiodata directory to .wav, you won't hear anything. This is more of a shortcoming than a bug exactly. Don't say you weren't warned. *********************************************************************** 6 September 2007 Various bugs fixed associated with adding the drum support. The major crashes seem to be taken care of. *********************************************************************** 2 September 2007 Changed the drums so that the Z key corresponds to Kick 2 (note 36) rather than note 25, snare roll. This can be modified via the compiled in LOW_DRUM #define 'ition. *********************************************************************** 21 August 2007 Added some rudimentary support for loading drum wave samples for audio feedback on drum tracks. This does not work in the ncurses version. It also has a segfault and a memory leak, to be debugged later. *********************************************************************** 29 June 2007 Added a function called gui_slider_callback() to gfx_fns.c which sends a message to the text object in the settings_dialog to give a printout of what the numerical value of the velocity, tempo and legato are. This is an essential function if one wants to set the tempo to exactly match that of another file. Or at least it's there now, so enjoy. *********************************************************************** 14 June 2007 Corrected the error checking in speaker_fns.c so as to look for a return value of -1 from the system calls rather than any nonzero value. Checked that perror() is appropriate here, so long as stderr may be directed to some target, which may not be the case in Windows. These changes probably have little impact. *********************************************************************** 8 June 2007 Revised the piano-roll view in the Allegro version. It no longer blits the entire viewport to move it one pixel and instead sets up a linked lists in add_note and del_note of the beginning and end points of line segments. Then the function, renamed more usefully scroll_roll, advances the coordinates and draws only the pixels which need to be changed. This appears to speed the execution quite effectively. Under extreme input, only 4% of the 1.0 GHz CPU was being consumed. *********************************************************************** 22 May 2007 Changed some of the bounds checks in gfx_fns.c from an if statement and a print statement to an assertion, because they are unnecessary unless some kind of bug is in the program. Better speed enhancements to follow. *********************************************************************** 18 May 2007 Fixed the Allegro versions of add_note(), del_note(), and pscroll() to use a new meaning of SCROLL_MARGIN as a percentage (to be divided by 100.0) rather than a particular number of pixels. References to the color black as a constant zero were replaced with makecol(0, 0, 0). Revised the dialog boxes to reckon in percentages of the screen rather than fixed numbers of pixels, requiring changes to query_settings, query_details, query_another, query_keep, press_any_key. Removed a redundant call to press_any_key at the end of query_another. Got rid of all the meaningless exit codes. Replaced with standard EXIT_SUCCESS and EXIT FAILURE as appropriate. Added F1 and ENTER as exits from the ncurses version to fix the bug that there was no way to end a recording take in the curses version, and thus no way to get the file. *********************************************************************** 12 May 2007 Made some changes to draw_display. Got rid of the confusing and needless loops, which should not improve the functionality but make the code a lot less of a pathetic hack job. *********************************************************************** 25 April 2007 Changed term_fns.c, to remove the global variables LINES and COLS, and replace them with local variables set by the getmaxyx() macro. This was done on the advice of the ncurses manual, so that window resizes might be supported. More work will have to be done to accomplish this , but I've got a lot to do these days. *********************************************************************** 21 February 2007 Fixed a bug which caused a segmentation fault, apparently because two note-off events were being created when the spacebar is pressed. Fixed a bug that prevented the screen from being cleared of old notes if a note was repeated. Both these problems required small changes to record(). Added a drumbeat.mid to the /data/ directory. Remembered to take the value of patch out of the detail_vars structure, so that it may be modified by query_details() in the ncurses version. *********************************************************************** 15 February 2007 Added a function to adjust volume of a note while it's playing. Made harmony mode optional, which was much harder than it should have been, requiring a custom event-handling function, then checking the value of msg to see if MSG_CLICK has been passed to it. *********************************************************************** 24 January 2007 Back after a long "vacation." That is, working full time. Wrote a new module, audio_fns.c, based mostly on Shawn Hargreaves's akaitest.c from the Allegro example programs. It employs some of the voice control functions to load a sample, release it, play and hush notes. They should be able to play simultaneously in this method. Testing awaits corresponding changes to record() and main(). Moved the legal notice into its own subroutine. It looks really nice in the Allegro alert() box. *********************************************************************** 17 December 2006 Minor changes, especially fixing the coordinates to get pscroll working. Increased the DELAY_DURATION to not waste so much processor time. Fixed the reversal of FORTE and PIANO in the get_input function which was somewhat annoying. Fixed a bug in which the code number for silence in variable note was confused between zero and 138 (ie REST in the event coding scheme.) *********************************************************************** 14 December 2006 Changed the pscroll function, to use blit() instead of putpixel(). Fixed a grievous error in get_input, that reset all of prior_keystate[] to FALSE on each call. *********************************************************************** 22 November 2006 Fixed a couple bugs in passing the event and note variables back to the record function. *********************************************************************** 9 November 2006 Allegro functions for graphical output, and the graphical user interface have been added. They are a mess. The pointers to nodes in the linked list are bad now, when they had never been a problem before. *********************************************************************** 1 November 2006 The get_time functions for ncurses and Allegro have been added. No tests have been made for a long time now... many errors are likely present. *********************************************************************** 31 October 2006 Made some changes in record() in preparation of using a callback function to get the time. This looks like a more difficult undertaking than the gettimeofday() method. *********************************************************************** 25 October 2006 Began the Allegro I/O module, including a new version of get_input(). It compiles, but has not yet been tested. It also contains the trivial functions ready_screen(), cleanup_screen(), and press_any_key(). Revised *trans_inst() to remove the silly restriction that only freepats voices could be chosen. The general MIDI patch set should be available at the next compile. Major changes must still be made to record() to accomodate this revision. *********************************************************************** 11 October 2006 Added the variable-bytes utilities in a new directory named utils. Admitted in the manual to the bug that occasionally causes the files output appear only after a long time (the delta-time of the first event is too long). ************************************************************************ 10 October 2006 Changed the deference-point notation for pointers to a structure element to the more common arrow notation. Previously, a wrong value for the channel was being passed to the query_details() function, causing all tracks to end up with patch piano. Fixed. ************************************************************************ 5 October 2006 Functions for PC sound and ncurses I/O have been segragated to separate sources. Works. Functions regarding the linked list have been brought back into program.c file. Have registered some cleanup functions with atexit(). Fixed bad pointers passed to write_file(), and query_details. Wrote a press_any_key() function. Because these revisions don't add features for the user, no binary release is planned. ************************************************************************ 4 October 2006 Removed #include's from midi_types.h The missing dependencies will have to be found and dealt with. Moved the metronome and input routines from record() to separate functions in term_fns.c Combined the new function get_input with tran_en_US. Eliminated variable keystroke from record() ************************************************************************ 28 September 2006 Broke the program into six seperate source files. That should have been easy, but it has introduced major errors somewhere. The dialogs for user input have been seperated from the main() function and made into new functions: query_details(), query_another(), query_keep(), and query_settings(). The ncurses input and output functions are now mostly located in the module term_fns.c, with the important exception of getch() in record, and some setup done in main(). As a result of these safe and prudent practices, the thing compiles but no longer runs. No update today. ************************************************************************ 14 September 2006 Added two calls to the umask() function to fix an annoyance. Previously, file permissions had been set read-only for ordinary users. The fix should make the files read-write for everybody, and restore the prior umask value. A revision of the instrument dialog should begin every prompt on a new line, even with bad input. I promised much bigger changes. Development is underway, but it must take the form of the programmer rather than the program. That is, I'm trying to learn some of the multimedia stuff. A book is on order. Yes, on paper. Please allow six to eight weeks for delivery of more important improvements. ************************************************************************ August 2006 The original version, slightly modified, was uploaded to sourceforge. ************************************************************************ March - April 2006 Main work in writing version 1.0 was done.

    posted 380 days ago

  • File released: /imidiacy/imidiacy_1.27/imidiacy_2007.9.06.tar.gz

    posted 854 days ago

  • File released: /imidiacy-source/imidiacy-source_1.27/imidiacy-source_2007.9.06.tar.gz

    posted 854 days ago

  • imidiacy imidiacy_1.27 file released: imidiacy_2007.9.06.tar.gz

    ************************************************************ 23 December 2008 Added a very buggy Windows build of the 1.27 version. Undefined LINUX_VERSION and made no other edits. There are problems which will crash the program. It does produce usable output. Unless you decompress the files in the audiodata directory to .wav, you won't hear anything. This is more of a shortcoming than a bug exactly. Don't say you weren't warned. *********************************************************************** 6 September 2007 Various bugs fixed associated with adding the drum support. The major crashes seem to be taken care of. *********************************************************************** 2 September 2007 Changed the drums so that the Z key corresponds to Kick 2 (note 36) rather than note 25, snare roll. This can be modified via the compiled in LOW_DRUM #define 'ition. *********************************************************************** 21 August 2007 Added some rudimentary support for loading drum wave samples for audio feedback on drum tracks. This does not work in the ncurses version. It also has a segfault and a memory leak, to be debugged later. *********************************************************************** 29 June 2007 Added a function called gui_slider_callback() to gfx_fns.c which sends a message to the text object in the settings_dialog to give a printout of what the numerical value of the velocity, tempo and legato are. This is an essential function if one wants to set the tempo to exactly match that of another file. Or at least it's there now, so enjoy. *********************************************************************** 14 June 2007 Corrected the error checking in speaker_fns.c so as to look for a return value of -1 from the system calls rather than any nonzero value. Checked that perror() is appropriate here, so long as stderr may be directed to some target, which may not be the case in Windows. These changes probably have little impact. *********************************************************************** 8 June 2007 Revised the piano-roll view in the Allegro version. It no longer blits the entire viewport to move it one pixel and instead sets up a linked lists in add_note and del_note of the beginning and end points of line segments. Then the function, renamed more usefully scroll_roll, advances the coordinates and draws only the pixels which need to be changed. This appears to speed the execution quite effectively. Under extreme input, only 4% of the 1.0 GHz CPU was being consumed. *********************************************************************** 22 May 2007 Changed some of the bounds checks in gfx_fns.c from an if statement and a print statement to an assertion, because they are unnecessary unless some kind of bug is in the program. Better speed enhancements to follow. *********************************************************************** 18 May 2007 Fixed the Allegro versions of add_note(), del_note(), and pscroll() to use a new meaning of SCROLL_MARGIN as a percentage (to be divided by 100.0) rather than a particular number of pixels. References to the color black as a constant zero were replaced with makecol(0, 0, 0). Revised the dialog boxes to reckon in percentages of the screen rather than fixed numbers of pixels, requiring changes to query_settings, query_details, query_another, query_keep, press_any_key. Removed a redundant call to press_any_key at the end of query_another. Got rid of all the meaningless exit codes. Replaced with standard EXIT_SUCCESS and EXIT FAILURE as appropriate. Added F1 and ENTER as exits from the ncurses version to fix the bug that there was no way to end a recording take in the curses version, and thus no way to get the file. *********************************************************************** 12 May 2007 Made some changes to draw_display. Got rid of the confusing and needless loops, which should not improve the functionality but make the code a lot less of a pathetic hack job. *********************************************************************** 25 April 2007 Changed term_fns.c, to remove the global variables LINES and COLS, and replace them with local variables set by the getmaxyx() macro. This was done on the advice of the ncurses manual, so that window resizes might be supported. More work will have to be done to accomplish this , but I've got a lot to do these days. *********************************************************************** 21 February 2007 Fixed a bug which caused a segmentation fault, apparently because two note-off events were being created when the spacebar is pressed. Fixed a bug that prevented the screen from being cleared of old notes if a note was repeated. Both these problems required small changes to record(). Added a drumbeat.mid to the /data/ directory. Remembered to take the value of patch out of the detail_vars structure, so that it may be modified by query_details() in the ncurses version. *********************************************************************** 15 February 2007 Added a function to adjust volume of a note while it's playing. Made harmony mode optional, which was much harder than it should have been, requiring a custom event-handling function, then checking the value of msg to see if MSG_CLICK has been passed to it. *********************************************************************** 24 January 2007 Back after a long "vacation." That is, working full time. Wrote a new module, audio_fns.c, based mostly on Shawn Hargreaves's akaitest.c from the Allegro example programs. It employs some of the voice control functions to load a sample, release it, play and hush notes. They should be able to play simultaneously in this method. Testing awaits corresponding changes to record() and main(). Moved the legal notice into its own subroutine. It looks really nice in the Allegro alert() box. *********************************************************************** 17 December 2006 Minor changes, especially fixing the coordinates to get pscroll working. Increased the DELAY_DURATION to not waste so much processor time. Fixed the reversal of FORTE and PIANO in the get_input function which was somewhat annoying. Fixed a bug in which the code number for silence in variable note was confused between zero and 138 (ie REST in the event coding scheme.) *********************************************************************** 14 December 2006 Changed the pscroll function, to use blit() instead of putpixel(). Fixed a grievous error in get_input, that reset all of prior_keystate[] to FALSE on each call. *********************************************************************** 22 November 2006 Fixed a couple bugs in passing the event and note variables back to the record function. *********************************************************************** 9 November 2006 Allegro functions for graphical output, and the graphical user interface have been added. They are a mess. The pointers to nodes in the linked list are bad now, when they had never been a problem before. *********************************************************************** 1 November 2006 The get_time functions for ncurses and Allegro have been added. No tests have been made for a long time now... many errors are likely present. *********************************************************************** 31 October 2006 Made some changes in record() in preparation of using a callback function to get the time. This looks like a more difficult undertaking than the gettimeofday() method. *********************************************************************** 25 October 2006 Began the Allegro I/O module, including a new version of get_input(). It compiles, but has not yet been tested. It also contains the trivial functions ready_screen(), cleanup_screen(), and press_any_key(). Revised *trans_inst() to remove the silly restriction that only freepats voices could be chosen. The general MIDI patch set should be available at the next compile. Major changes must still be made to record() to accomodate this revision. *********************************************************************** 11 October 2006 Added the variable-bytes utilities in a new directory named utils. Admitted in the manual to the bug that occasionally causes the files output appear only after a long time (the delta-time of the first event is too long). ************************************************************************ 10 October 2006 Changed the deference-point notation for pointers to a structure element to the more common arrow notation. Previously, a wrong value for the channel was being passed to the query_details() function, causing all tracks to end up with patch piano. Fixed. ************************************************************************ 5 October 2006 Functions for PC sound and ncurses I/O have been segragated to separate sources. Works. Functions regarding the linked list have been brought back into program.c file. Have registered some cleanup functions with atexit(). Fixed bad pointers passed to write_file(), and query_details. Wrote a press_any_key() function. Because these revisions don't add features for the user, no binary release is planned. ************************************************************************ 4 October 2006 Removed #include's from midi_types.h The missing dependencies will have to be found and dealt with. Moved the metronome and input routines from record() to separate functions in term_fns.c Combined the new function get_input with tran_en_US. Eliminated variable keystroke from record() ************************************************************************ 28 September 2006 Broke the program into six seperate source files. That should have been easy, but it has introduced major errors somewhere. The dialogs for user input have been seperated from the main() function and made into new functions: query_details(), query_another(), query_keep(), and query_settings(). The ncurses input and output functions are now mostly located in the module term_fns.c, with the important exception of getch() in record, and some setup done in main(). As a result of these safe and prudent practices, the thing compiles but no longer runs. No update today. ************************************************************************ 14 September 2006 Added two calls to the umask() function to fix an annoyance. Previously, file permissions had been set read-only for ordinary users. The fix should make the files read-write for everybody, and restore the prior umask value. A revision of the instrument dialog should begin every prompt on a new line, even with bad input. I promised much bigger changes. Development is underway, but it must take the form of the programmer rather than the program. That is, I'm trying to learn some of the multimedia stuff. A book is on order. Yes, on paper. Please allow six to eight weeks for delivery of more important improvements. ************************************************************************ August 2006 The original version, slightly modified, was uploaded to sourceforge. ************************************************************************ March - April 2006 Main work in writing version 1.0 was done.

    posted 854 days ago

  • imidiacy-source imidiacy-source_1.27 file released: imidiacy-source_2007.9.06.tar.gz

    *********************************************************************** 6 September 2007 Various bugs fixed associated with adding the drum support. The major crashes seem to be taken care of. *********************************************************************** 2 September 2007 Changed the drums so that the Z key corresponds to Kick 2 (note 36) rather than note 25, snare roll. This can be modified via the compiled in LOW_DRUM #define 'ition. *********************************************************************** 21 August 2007 Added some rudimentary support for loading drum wave samples for audio feedback on drum tracks. This does not work in the ncurses version. It also has a segfault and a memory leak, to be debugged later. *********************************************************************** 29 June 2007 Added a function called gui_slider_callback() to gfx_fns.c which sends a message to the text object in the settings_dialog to give a printout of what the numerical value of the velocity, tempo and legato are. This is an essential function if one wants to set the tempo to exactly match that of another file. Or at least it's there now, so enjoy. *********************************************************************** 14 June 2007 Corrected the error checking in speaker_fns.c so as to look for a return value of -1 from the system calls rather than any nonzero value. Checked that perror() is appropriate here, so long as stderr may be directed to some target, which may not be the case in Windows. These changes probably have little impact. *********************************************************************** 8 June 2007 Revised the piano-roll view in the Allegro version. It no longer blits the entire viewport to move it one pixel and instead sets up a linked lists in add_note and del_note of the beginning and end points of line segments. Then the function, renamed more usefully scroll_roll, advances the coordinates and draws only the pixels which need to be changed. This appears to speed the execution quite effectively. Under extreme input, only 4% of the 1.0 GHz CPU was being consumed. *********************************************************************** 22 May 2007 Changed some of the bounds checks in gfx_fns.c from an if statement and a print statement to an assertion, because they are unnecessary unless some kind of bug is in the program. Better speed enhancements to follow. *********************************************************************** 18 May 2007 Fixed the Allegro versions of add_note(), del_note(), and pscroll() to use a new meaning of SCROLL_MARGIN as a percentage (to be divided by 100.0) rather than a particular number of pixels. References to the color black as a constant zero were replaced with makecol(0, 0, 0). Revised the dialog boxes to reckon in percentages of the screen rather than fixed numbers of pixels, requiring changes to query_settings, query_details, query_another, query_keep, press_any_key. Removed a redundant call to press_any_key at the end of query_another. Got rid of all the meaningless exit codes. Replaced with standard EXIT_SUCCESS and EXIT FAILURE as appropriate. Added F1 and ENTER as exits from the ncurses version to fix the bug that there was no way to end a recording take in the curses version, and thus no way to get the file. *********************************************************************** 12 May 2007 Made some changes to draw_display. Got rid of the confusing and needless loops, which should not improve the functionality but make the code a lot less of a pathetic hack job. *********************************************************************** 25 April 2007 Changed term_fns.c, to remove the global variables LINES and COLS, and replace them with local variables set by the getmaxyx() macro. This was done on the advice of the ncurses manual, so that window resizes might be supported. More work will have to be done to accomplish this , but I've got a lot to do these days. *********************************************************************** 21 February 2007 Fixed a bug which caused a segmentation fault, apparently because two note-off events were being created when the spacebar is pressed. Fixed a bug that prevented the screen from being cleared of old notes if a note was repeated. Both these problems required small changes to record(). Added a drumbeat.mid to the /data/ directory. Remembered to take the value of patch out of the detail_vars structure, so that it may be modified by query_details() in the ncurses version. *********************************************************************** 15 February 2007 Added a function to adjust volume of a note while it's playing. Made harmony mode optional, which was much harder than it should have been, requiring a custom event-handling function, then checking the value of msg to see if MSG_CLICK has been passed to it. *********************************************************************** 24 January 2007 Back after a long "vacation." That is, working full time. Wrote a new module, audio_fns.c, based mostly on Shawn Hargreaves's akaitest.c from the Allegro example programs. It employs some of the voice control functions to load a sample, release it, play and hush notes. They should be able to play simultaneously in this method. Testing awaits corresponding changes to record() and main(). Moved the legal notice into its own subroutine. It looks really nice in the Allegro alert() box. *********************************************************************** 17 December 2006 Minor changes, especially fixing the coordinates to get pscroll working. Increased the DELAY_DURATION to not waste so much processor time. Fixed the reversal of FORTE and PIANO in the get_input function which was somewhat annoying. Fixed a bug in which the code number for silence in variable note was confused between zero and 138 (ie REST in the event coding scheme.) *********************************************************************** 14 December 2006 Changed the pscroll function, to use blit() instead of putpixel(). Fixed a grievous error in get_input, that reset all of prior_keystate[] to FALSE on each call. *********************************************************************** 22 November 2006 Fixed a couple bugs in passing the event and note variables back to the record function. *********************************************************************** 9 November 2006 Allegro functions for graphical output, and the graphical user interface have been added. They are a mess. The pointers to nodes in the linked list are bad now, when they had never been a problem before. *********************************************************************** 1 November 2006 The get_time functions for ncurses and Allegro have been added. No tests have been made for a long time now... many errors are likely present. *********************************************************************** 31 October 2006 Made some changes in record() in preparation of using a callback function to get the time. This looks like a more difficult undertaking than the gettimeofday() method. *********************************************************************** 25 October 2006 Began the Allegro I/O module, including a new version of get_input(). It compiles, but has not yet been tested. It also contains the trivial functions ready_screen(), cleanup_screen(), and press_any_key(). Revised *trans_inst() to remove the silly restriction that only freepats voices could be chosen. The general MIDI patch set should be available at the next compile. Major changes must still be made to record() to accomodate this revision. *********************************************************************** 11 October 2006 Added the variable-bytes utilities in a new directory named utils. Admitted in the manual to the bug that occasionally causes the files output appear only after a long time (the delta-time of the first event is too long). ************************************************************************ 10 October 2006 Changed the deference-point notation for pointers to a structure element to the more common arrow notation. Previously, a wrong value for the channel was being passed to the query_details() function, causing all tracks to end up with patch piano. Fixed. ************************************************************************ 5 October 2006 Functions for PC sound and ncurses I/O have been segragated to separate sources. Works. Functions regarding the linked list have been brought back into program.c file. Have registered some cleanup functions with atexit(). Fixed bad pointers passed to write_file(), and query_details. Wrote a press_any_key() function. Because these revisions don't add features for the user, no binary release is planned. ************************************************************************ 4 October 2006 Removed #include's from midi_types.h The missing dependencies will have to be found and dealt with. Moved the metronome and input routines from record() to separate functions in term_fns.c Combined the new function get_input with tran_en_US. Eliminated variable keystroke from record() ************************************************************************ 28 September 2006 Broke the program into six seperate source files. That should have been easy, but it has introduced major errors somewhere. The dialogs for user input have been seperated from the main() function and made into new functions: query_details(), query_another(), query_keep(), and query_settings(). The ncurses input and output functions are now mostly located in the module term_fns.c, with the important exception of getch() in record, and some setup done in main(). As a result of these safe and prudent practices, the thing compiles but no longer runs. No update today. ************************************************************************ 14 September 2006 Added two calls to the umask() function to fix an annoyance. Previously, file permissions had been set read-only for ordinary users. The fix should make the files read-write for everybody, and restore the prior umask value. A revision of the instrument dialog should begin every prompt on a new line, even with bad input. I promised much bigger changes. Development is underway, but it must take the form of the programmer rather than the program. That is, I'm trying to learn some of the multimedia stuff. A book is on order. Yes, on paper. Please allow six to eight weeks for delivery of more important improvements. ************************************************************************ August 2006 The original version, slightly modified, was uploaded to sourceforge. ************************************************************************ March - April 2006 Main work in writing version 1.0 was done.

    posted 854 days ago

  • File released: /imidiacy-source/imidiacy-source_1.25/imidiacy-source_2007.6.14.tar.gz

    posted 937 days ago

  • imidiacy-source imidiacy-source_1.25 file released: imidiacy-source_2007.6.14.tar.gz

    *********************************************************************** 14 June 2007 Corrected the error checking in speaker_fns.c so as to look for a return value of -1 from the system calls rather than any nonzero value. Checked that perror() is appropriate here, so long as stderr may be directed to some target, which may not be the case in Windows. These changes probably have little impact. *********************************************************************** 8 June 2007 Revised the piano-roll view in the Allegro version. It no longer blits the entire viewport to move it one pixel and instead sets up a linked lists in add_note and del_note of the beginning and end points of line segments. Then the function, renamed more usefully scroll_roll, advances the coordinates and draws only the pixels which need to be changed. This appears to speed the execution quite effectively. Under extreme input, only 4% of the 1.0 GHz CPU was being consumed. *********************************************************************** 22 May 2007 Changed some of the bounds checks in gfx_fns.c from an if statement and a print statement to an assertion, because they are unnecessary unless some kind of bug is in the program. Better speed enhancements to follow. *********************************************************************** 18 May 2007 Fixed the Allegro versions of add_note(), del_note(), and pscroll() to use a new meaning of SCROLL_MARGIN as a percentage (to be divided by 100.0) rather than a particular number of pixels. References to the color black as a constant zero were replaced with makecol(0, 0, 0). Revised the dialog boxes to reckon in percentages of the screen rather than fixed numbers of pixels, requiring changes to query_settings, query_details, query_another, query_keep, press_any_key. Removed a redundant call to press_any_key at the end of query_another. Got rid of all the meaningless exit codes. Replaced with standard EXIT_SUCCESS and EXIT FAILURE as appropriate. Added F1 and ENTER as exits from the ncurses version to fix the bug that there was no way to end a recording take in the curses version, and thus no way to get the file. *********************************************************************** 12 May 2007 Made some changes to draw_display. Got rid of the confusing and needless loops, which should not improve the functionality but make the code a lot less of a pathetic hack job. *********************************************************************** 25 April 2007 Changed term_fns.c, to remove the global variables LINES and COLS, and replace them with local variables set by the getmaxyx() macro. This was done on the advice of the ncurses manual, so that window resizes might be supported. More work will have to be done to accomplish this , but I've got a lot to do these days. *********************************************************************** 21 February 2007 Fixed a bug which caused a segmentation fault, apparently because two note-off events were being created when the spacebar is pressed. Fixed a bug that prevented the screen from being cleared of old notes if a note was repeated. Both these problems required small changes to record(). Added a drumbeat.mid to the /data/ directory. Remembered to take the value of patch out of the detail_vars structure, so that it may be modified by query_details() in the ncurses version. *********************************************************************** 15 February 2007 Added a function to adjust volume of a note while it's playing. Made harmony mode optional, which was much harder than it should have been, requiring a custom event-handling function, then checking the value of msg to see if MSG_CLICK has been passed to it. *********************************************************************** 24 January 2007 Back after a long "vacation." That is, working full time. Wrote a new module, audio_fns.c, based mostly on Shawn Hargreaves's akaitest.c from the Allegro example programs. It employs some of the voice control functions to load a sample, release it, play and hush notes. They should be able to play simultaneously in this method. Testing awaits corresponding changes to record() and main(). Moved the legal notice into its own subroutine. It looks really nice in the Allegro alert() box. *********************************************************************** 17 December 2006 Minor changes, especially fixing the coordinates to get pscroll working. Increased the DELAY_DURATION to not waste so much processor time. Fixed the reversal of FORTE and PIANO in the get_input function which was somewhat annoying. Fixed a bug in which the code number for silence in variable note was confused between zero and 138 (ie REST in the event coding scheme.) *********************************************************************** 14 December 2006 Changed the pscroll function, to use blit() instead of putpixel(). Fixed a grievous error in get_input, that reset all of prior_keystate[] to FALSE on each call. *********************************************************************** 22 November 2006 Fixed a couple bugs in passing the event and note variables back to the record function. *********************************************************************** 9 November 2006 Allegro functions for graphical output, and the graphical user interface have been added. They are a mess. The pointers to nodes in the linked list are bad now, when they had never been a problem before. *********************************************************************** 1 November 2006 The get_time functions for ncurses and Allegro have been added. No tests have been made for a long time now... many errors are likely present. *********************************************************************** 31 October 2006 Made some changes in record() in preparation of using a callback function to get the time. This looks like a more difficult undertaking than the gettimeofday() method. *********************************************************************** 25 October 2006 Began the Allegro I/O module, including a new version of get_input(). It compiles, but has not yet been tested. It also contains the trivial functions ready_screen(), cleanup_screen(), and press_any_key(). Revised *trans_inst() to remove the silly restriction that only freepats voices could be chosen. The general MIDI patch set should be available at the next compile. Major changes must still be made to record() to accomodate this revision. *********************************************************************** 11 October 2006 Added the variable-bytes utilities in a new directory named utils. Admitted in the manual to the bug that occasionally causes the files output appear only after a long time (the delta-time of the first event is too long). ************************************************************************ 10 October 2006 Changed the deference-point notation for pointers to a structure element to the more common arrow notation. Previously, a wrong value for the channel was being passed to the query_details() function, causing all tracks to end up with patch piano. Fixed. ************************************************************************ 5 October 2006 Functions for PC sound and ncurses I/O have been segragated to separate sources. Works. Functions regarding the linked list have been brought back into program.c file. Have registered some cleanup functions with atexit(). Fixed bad pointers passed to write_file(), and query_details. Wrote a press_any_key() function. Because these revisions don't add features for the user, no binary release is planned. ************************************************************************ 4 October 2006 Removed #include's from midi_types.h The missing dependencies will have to be found and dealt with. Moved the metronome and input routines from record() to separate functions in term_fns.c Combined the new function get_input with tran_en_US. Eliminated variable keystroke from record() ************************************************************************ 28 September 2006 Broke the program into six seperate source files. That should have been easy, but it has introduced major errors somewhere. The dialogs for user input have been seperated from the main() function and made into new functions: query_details(), query_another(), query_keep(), and query_settings(). The ncurses input and output functions are now mostly located in the module term_fns.c, with the important exception of getch() in record, and some setup done in main(). As a result of these safe and prudent practices, the thing compiles but no longer runs. No update today. ************************************************************************ 14 September 2006 Added two calls to the umask() function to fix an annoyance. Previously, file permissions had been set read-only for ordinary users. The fix should make the files read-write for everybody, and restore the prior umask value. A revision of the instrument dialog should begin every prompt on a new line, even with bad input. I promised much bigger changes. Development is underway, but it must take the form of the programmer rather than the program. That is, I'm trying to learn some of the multimedia stuff. A book is on order. Yes, on paper. Please allow six to eight weeks for delivery of more important improvements. ************************************************************************ August 2006 The original version, slightly modified, was uploaded to sourceforge. ************************************************************************ March - April 2006 Main work in writing version 1.0 was done.

    posted 938 days ago

  • File released: /imidiacy-source/imidiacy-source_1.23/imidiacy-source_2007.5.19.tar.gz

    posted 964 days ago

  • imidiacy-source imidiacy-source_1.23 file released: imidiacy-source_2007.5.19.tar.gz

    *********************************************************************** 18 May 2007 Fixed the Allegro versions of add_note(), del_note(), and pscroll() to use a new meaning of SCROLL_MARGIN as a percentage (to be divided by 100.0) rather than a particular number of pixels. References to the color black as a constant zero were replaced with makecol(0, 0, 0). Revised the dialog boxes to reckon in percentages of the screen rather than fixed numbers of pixels, requiring changes to query_settings, query_details, query_another, query_keep, press_any_key. Removed a redundant call to press_any_key at the end of query_another. Got rid of all the meaningless exit codes. Replaced with standard EXIT_SUCCESS and EXIT FAILURE as appropriate. Added F1 and ENTER as exits from the ncurses version to fix the bug that there was no way to end a recording take in the curses version, and thus no way to get the file. *********************************************************************** 12 May 2007 Made some changes to draw_display. Got rid of the confusing and needless loops, which should not improve the functionality but make the code a lot less of a pathetic hack job. *********************************************************************** 25 April 2007 Changed term_fns.c, to remove the global variables LINES and COLS, and replace them with local variables set by the getmaxyx() macro. This was done on the advice of the ncurses manual, so that window resizes might be supported. More work will have to be done to accomplish this , but I've got a lot to do these days. *********************************************************************** 21 February 2007 Fixed a bug which caused a segmentation fault, apparently because two note-off events were being created when the spacebar is pressed. Fixed a bug that prevented the screen from being cleared of old notes if a note was repeated. Both these problems required small changes to record(). Added a drumbeat.mid to the /data/ directory. Remembered to take the value of patch out of the detail_vars structure, so that it may be modified by query_details() in the ncurses version. *********************************************************************** 15 February 2007 Added a function to adjust volume of a note while it's playing. Made harmony mode optional, which was much harder than it should have been, requiring a custom event-handling function, then checking the value of msg to see if MSG_CLICK has been passed to it. *********************************************************************** 24 January 2007 Back after a long "vacation." That is, working full time. Wrote a new module, audio_fns.c, based mostly on Shawn Hargreaves's akaitest.c from the Allegro example programs. It employs some of the voice control functions to load a sample, release it, play and hush notes. They should be able to play simultaneously in this method. Testing awaits corresponding changes to record() and main(). Moved the legal notice into its own subroutine. It looks really nice in the Allegro alert() box. *********************************************************************** 17 December 2006 Minor changes, especially fixing the coordinates to get pscroll working. Increased the DELAY_DURATION to not waste so much processor time. Fixed the reversal of FORTE and PIANO in the get_input function which was somewhat annoying. Fixed a bug in which the code number for silence in variable note was confused between zero and 138 (ie REST in the event coding scheme.) *********************************************************************** 14 December 2006 Changed the pscroll function, to use blit() instead of putpixel(). Fixed a grievous error in get_input, that reset all of prior_keystate[] to FALSE on each call. *********************************************************************** 22 November 2006 Fixed a couple bugs in passing the event and note variables back to the record function. *********************************************************************** 9 November 2006 Allegro functions for graphical output, and the graphical user interface have been added. They are a mess. The pointers to nodes in the linked list are bad now, when they had never been a problem before. *********************************************************************** 1 November 2006 The get_time functions for ncurses and Allegro have been added. No tests have been made for a long time now... many errors are likely present. *********************************************************************** 31 October 2006 Made some changes in record() in preparation of using a callback function to get the time. This looks like a more difficult undertaking than the gettimeofday() method. *********************************************************************** 25 October 2006 Began the Allegro I/O module, including a new version of get_input(). It compiles, but has not yet been tested. It also contains the trivial functions ready_screen(), cleanup_screen(), and press_any_key(). Revised *trans_inst() to remove the silly restriction that only freepats voices could be chosen. The general MIDI patch set should be available at the next compile. Major changes must still be made to record() to accomodate this revision. *********************************************************************** 11 October 2006 Added the variable-bytes utilities in a new directory named utils. Admitted in the manual to the bug that occasionally causes the files output appear only after a long time (the delta-time of the first event is too long). ************************************************************************ 10 October 2006 Changed the deference-point notation for pointers to a structure element to the more common arrow notation. Previously, a wrong value for the channel was being passed to the query_details() function, causing all tracks to end up with patch piano. Fixed. ************************************************************************ 5 October 2006 Functions for PC sound and ncurses I/O have been segragated to separate sources. Works. Functions regarding the linked list have been brought back into program.c file. Have registered some cleanup functions with atexit(). Fixed bad pointers passed to write_file(), and query_details. Wrote a press_any_key() function. Because these revisions don't add features for the user, no binary release is planned. ************************************************************************ 4 October 2006 Removed #include's from midi_types.h The missing dependencies will have to be found and dealt with. Moved the metronome and input routines from record() to separate functions in term_fns.c Combined the new function get_input with tran_en_US. Eliminated variable keystroke from record() ************************************************************************ 28 September 2006 Broke the program into six seperate source files. That should have been easy, but it has introduced major errors somewhere. The dialogs for user input have been seperated from the main() function and made into new functions: query_details(), query_another(), query_keep(), and query_settings(). The ncurses input and output functions are now mostly located in the module term_fns.c, with the important exception of getch() in record, and some setup done in main(). As a result of these safe and prudent practices, the thing compiles but no longer runs. No update today. ************************************************************************ 14 September 2006 Added two calls to the umask() function to fix an annoyance. Previously, file permissions had been set read-only for ordinary users. The fix should make the files read-write for everybody, and restore the prior umask value. A revision of the instrument dialog should begin every prompt on a new line, even with bad input. I promised much bigger changes. Development is underway, but it must take the form of the programmer rather than the program. That is, I'm trying to learn some of the multimedia stuff. A book is on order. Yes, on paper. Please allow six to eight weeks for delivery of more important improvements. ************************************************************************ August 2006 The original version, slightly modified, was uploaded to sourceforge. ************************************************************************ March - April 2006 Main work in writing version 1.0 was done.

    posted 964 days ago

Rate and Review

Be the first person to add a text review.

Would you recommend this project?






<

Related Projects

No-Hardware MIDI Recorder Actions

Thanks for your rating!

Would you also like to write a review?





Skip Review

Thanks for your review!

Get credit for your review by logging in via OpenID. Click your account provider:

No Thanks