Commit Graph

  • b1ac141ea5 fix(tracker/sequencer): add a way to exit the sequencer loop Matias Lahti 2020-11-08 04:27:52 +02:00
  • d30388a09a fix(tracker): fix invalid println Matias Lahti 2020-11-08 04:22:00 +02:00
  • 5e45e4f1f4 feat(tracker): hook up audio to tracker, we have liftoff Matias Lahti 2020-11-08 04:17:21 +02:00
  • 175bbb7743 fix(tracker/track): re-enable clipping of tracks Matias Lahti 2020-11-08 02:48:52 +02:00
  • 7a434f69fd fix(go/audio): fix audio.Player interface to have erroring Close() Matias Lahti 2020-11-08 02:41:42 +02:00
  • 9b6249a1a7 feat(tracker): implement basic tracker keys Matias Lahti 2020-11-08 02:36:24 +02:00
  • 77949bdc17 feat(tracker): implement basic track display Matias Lahti 2020-11-08 02:24:27 +02:00
  • 90c3536f3e feat(tracker): implement some basic styled ui building blocks Matias Lahti 2020-11-08 01:20:53 +02:00
  • 910bf42da9 Update README.md Veikko Sariola 2020-11-07 21:31:24 +02:00
  • 9209aa1cba Implement .asm parsing in go4k, and run succesfully almost all tests/ through the bridge. Veikko Sariola 2020-11-07 19:50:44 +02:00
  • 64fe28a240 feat(tracker): create initial tracker skeleton using Gio Matias Lahti 2020-11-07 19:50:37 +02:00
  • 5eb7cef889 style(go/audio/oto): change error messages to be consistent Matias Lahti 2020-11-07 19:38:58 +02:00
  • 6e141f36c7 fix(go/audio/oto): clean up forgotten debug prints Matias Lahti 2020-11-07 19:37:33 +02:00
  • 551a7cb6c0 feat(sointu-player): implement a basic commandline tool to play songs Matias Lahti 2020-11-07 19:34:46 +02:00
  • fa772ddd77 feat(go/audio): implement basic audio output with oto Matias Lahti 2020-11-07 19:22:59 +02:00
  • 41ce5d1efe Merge remote-tracking branch 'upstream/master' into draft/go-tracker Matias Lahti 2020-11-07 17:27:11 +02:00
  • f584138572 Remove expressions from parameters, so the future .asm parser does not need expression evaluator. Veikko Sariola 2020-11-04 23:31:08 +02:00
  • df83001a64 Change delay macros to use FLAGS(NOTETRACKING) and FLAGS(NONE) Veikko Sariola 2020-11-04 23:29:16 +02:00
  • d99cfd92d9 Change LOCALPORT and GLOBALPORT macros so that SU_SEND commands are easier to parse. Veikko Sariola 2020-11-04 23:11:51 +02:00
  • 4eaa54ecee Update LICENSE: Fix whitespace. Veikko Sariola 2020-11-02 23:14:01 +02:00
  • ccb6434fac Implement compile definition RUNTIME_TABLES, which enables putting the pointers to delay and sample tables to stack. Veikko Sariola 2020-11-02 23:05:12 +02:00
  • c7c752cd73 Change the stack rewind in the end of render to be slightly less fragile, anticipating putting more stuff in the stack. Veikko Sariola 2020-11-02 22:52:48 +02:00
  • b94bb79366 Update README.md Veikko Sariola 2020-11-02 22:43:15 +02:00
  • dc88b885e9 Fix warnings when built using nasm. Veikko Sariola 2020-11-02 22:31:22 +02:00
  • eb37d8123d Change include path in CMake file to point to include/ instead of include/sointu/ Veikko Sariola 2020-11-02 21:37:22 +02:00
  • 9544a130ab feat(song): add basic JSON marshaling/unmarshaling tests to make sure everything gets marshalled properly Matias Lahti 2020-11-02 16:36:54 +02:00
  • e0a793ea6d Reorganize the project folder structure and how go packages are organized. Veikko Sariola 2020-10-30 22:05:26 +02:00
  • 23e8bc0c5f Remove bridge.newSynthState & add 1 to RandSeed during Render calls, so now an empty struct corresponds to the Sointu default behavior. Veikko Sariola 2020-10-28 20:03:21 +02:00
  • 8183c698da Separate Synth and SynthState: SynthState is the part that Render changes. Veikko Sariola 2020-10-28 13:44:34 +02:00
  • 64afa9fb48 Change the C-API to roughly match the new Go-API. Veikko Sariola 2020-10-27 20:15:06 +02:00
  • 5f4b85b0a4 Change the Go API to have two versions: Render(buffer []float32), which always fill the whole buffer, and RenderTime(buffer []float32,int maxtime), which ends either when the buffer is full, or modulated time is reached. Veikko Sariola 2020-10-27 17:26:08 +02:00
  • 7a9ac3489b Add polyphonism support to bridge.go Veikko Sariola 2020-10-26 12:47:22 +02:00
  • 1d07b4f192 Change the .asm song format so it's a bit easier to parse, by replacing PORT and GLOBALPORT macros with LOCALPORT and GLOBALPORT. Veikko Sariola 2020-10-26 12:53:17 +02:00
  • f495b0575a Fix bug in song.go: the note was pulled from the song data incorrectly. Veikko Sariola 2020-10-26 12:49:27 +02:00
  • debeaa181c Fix bug in song.go: len(s.Patterns) should have been len(s.Tracks). Veikko Sariola 2020-10-26 12:48:33 +02:00
  • 470ba28592 Change the Render function in bridge.go to return a tuple of: number of samples rendered; bool indicating if rowend was reached; and a possible error. Veikko Sariola 2020-10-26 08:30:43 +02:00
  • acab824523 Update README.md Veikko Sariola 2020-10-24 23:36:56 +03:00
  • 6c90ba2067 Implement a song struct to hold all the information of a single song (corresponding one .asm file) and Render function for it. Veikko Sariola 2020-10-24 23:25:23 +03:00
  • be7a4e21f3 Optimize asm player size, removing one unnecessary instruction. Veikko Sariola 2020-10-24 22:07:58 +03:00
  • 3bb3e5c88e Fix su_render_samples to return correct values when built in 32-bit. Veikko Sariola 2020-10-24 17:04:27 +03:00
  • aa133b4606 Change bridge.go so that there is just SetPatch(...) function, instead of having to SetCommands, SetValues etc. Veikko Sariola 2020-10-24 16:15:15 +03:00
  • 1abc6f22d5 Change the Go bridge API to more idiomatic Go, offering a callback when the row advances. Veikko Sariola 2020-10-24 14:39:10 +03:00
  • 6e85ff674a Change the sointu.h api to return -1, 0 or n>0 depending if buffer is full and/or row ended. Veikko Sariola 2020-10-24 13:00:08 +03:00
  • c9e8000c5f Remove the cmake magic to create bridge.go from bridge.go.in. Veikko Sariola 2020-10-23 00:04:54 +03:00
  • 163af33c9b Add .cache/ to .gitignore. Veikko Sariola 2020-10-22 23:31:05 +03:00
  • 896e7e70b1 Add Opcode type to bridge, and pull the opcodes from the cgo side. Veikko Sariola 2020-10-22 23:29:37 +03:00
  • af75dd38aa Add common build folder names to .gitignore. Veikko Sariola 2020-10-22 21:05:10 +03:00
  • 95b70018cc Fix all CMake tests passing on MinGW: consider minor (< 1e-6) errors in waveform shape successes. Veikko Sariola 2020-10-22 21:03:54 +03:00
  • b9ec015b4a Document MinGW build commands in README.md. Veikko Sariola 2020-10-22 17:46:51 +03:00
  • 7aac3917b7 Implement a bridge to call Sointu from Go language. Veikko Sariola 2020-10-21 20:07:45 +03:00
  • af14cd310b Change .asm files that are actually only ever included into .inc-files, and rename all files as _header.inc & _footer.inc, depending where they are included. Veikko Sariola 2020-10-20 09:06:53 +03:00
  • 06e8365c06 Update README.md Veikko Sariola 2020-10-21 09:50:19 +03:00
  • 7e3dc19c83 Add inverse gain to compressor. The inverse gain is applied to the signal before any compressor calculations. Veikko Sariola 2020-05-27 18:53:54 +03:00
  • c5b6e6e28c Move su_load_gmdls into the responsibility of the intro to call, anticipating multicore rendering so it is called once before all the cores are spun up. Veikko Sariola 2020-05-27 17:08:35 +03:00
  • 200937aa50 Fix single shot samples: only first half of them was getting played. Veikko Sariola 2020-05-27 16:21:49 +03:00
  • 8956f524c9 Only compile introspection.asm when SU_USE_INTROSPECTION is defined. Veikko Sariola 2020-05-27 16:04:52 +03:00
  • 45e554a9f9 Fix yasm warnings about flags being ignored on section redeclaration. Veikko Sariola 2020-05-27 13:17:28 +03:00
  • 5e05057240 Fix builds and tests to pass on Linux. Veikko 2020-05-26 21:27:53 +03:00
  • b64723323f Move player.asm back to sointu.asm, as they were getting again pretty intertwined. Veikko Sariola 2020-05-26 21:36:06 +03:00
  • e049bf2dce Change loadnote to load values from [-1,1], to allow using notes for both positive and negative modulations. Veikko Sariola 2020-05-26 18:58:49 +03:00
  • 3cdada41e0 Rename labels in envelope into more sensible. Veikko Sariola 2020-05-26 18:34:47 +03:00
  • ceae6ffcba Clean up the op_advance code&comments and remove one unnecessary jump. Veikko Sariola 2020-05-26 18:13:16 +03:00
  • 91b8912015 Rename all SU_BEGIN_* macros into BEGIN_*; there's no real risk of nameclash and makes the code more readable. Veikko Sariola 2020-05-26 17:45:37 +03:00
  • efc6db71ab Reverse the logic of USE_SECTIONS (it's now DISABLE_SECTIONS) and then remove unnecessary defines. Veikko Sariola 2020-05-26 17:30:50 +03:00
  • 3b10476dc2 Remove unused strucs / struc members; in particular: .params /.ports. Veikko Sariola 2020-05-26 16:35:19 +03:00
  • cf86a951f5 Move all constants into the end of sointu.asm, littering them around started getting messy. Veikko Sariola 2020-05-26 16:30:57 +03:00
  • 35b8253776 Delete CONCATENATE macro - it is not used anymore. Veikko Sariola 2020-05-26 14:25:15 +03:00
  • dac5afea60 Implement IN, OUTAUX and AUX opcodes, to conveniently input from or output to global ports. Veikko Sariola 2020-05-25 23:14:02 +03:00
  • 17c6afceb4 Fix bug that su_env_map was not compiled when using only compressor, and rename it to su_nonlinear_map. Veikko Sariola 2020-05-25 20:45:36 +03:00
  • 1f92373a63 Limit compressor stack use. Veikko Sariola 2020-05-25 20:37:34 +03:00
  • 1eb6974d5d Optimize compressor size. Veikko Sariola 2020-05-25 20:29:34 +03:00
  • 55d9ca0ffc Reverse the voiceno counter: now it starts from MAX_VOICES and decrements until 0. This way, the VM needs not know anything about MAX_VOICES. Veikko Sariola 2020-05-25 17:23:54 +03:00
  • a193b8b1ef Inline transform_values into the VM, leading to a slightly more efficient register use. Veikko Sariola 2020-05-25 16:57:50 +03:00
  • 3198452b9c Add a change log. Veikko Sariola 2020-05-25 14:14:13 +03:00
  • 33d83d29a5 Update project description & version. Veikko Sariola 2020-05-25 13:50:09 +03:00
  • 8d0ae21fb6 Remove separate playerstack and clean up the code. Veikko Sariola 2020-05-25 11:16:49 +03:00
  • 7de7b49e24 Change apply to "do" and add brackets. Veikko Sariola 2020-05-24 01:11:17 +03:00
  • 2c6f4f44d5 Use some of the unused space of synth object for curvoices. Veikko Sariola 2020-05-24 00:45:59 +03:00
  • 457c1fdc32 Move things to stack, anticipating support for multicore rendering. Veikko Sariola 2020-05-24 00:32:49 +03:00
  • 5c25eacd08 Optimize delay for better register use. Veikko Sariola 2020-05-23 17:40:22 +03:00
  • da52c10f7f Get rid of transformed values and use the header of the voice for that; saves _CX completely for the opcode. Veikko Sariola 2020-05-23 17:30:52 +03:00
  • 79b384a0d6 Clean up comments and some defines. Veikko Sariola 2020-05-23 16:02:29 +03:00
  • bd005d52a7 Clean up whitespace. Veikko Sariola 2020-05-23 15:09:32 +03:00
  • 6f06306f0c Re-engineer delay, to use stack for the delay WRK pointer and to support note-syncing transpose. Veikko Sariola 2020-05-23 15:05:38 +03:00
  • afbff66e36 Use strucs for stack locations, instead of hard-coding them everywhere. Veikko Sariola 2020-05-21 17:43:14 +03:00
  • 654e5868bc Implement support for 64-bit builds. Veikko Sariola 2020-05-21 17:18:18 +03:00
  • 6f7fed4c6b Move jnc *_mono, ..., *_mono: code from function bodies to the stereofilter helper. Veikko Sariola 2020-05-20 08:49:23 +03:00
  • dc99157fbb Implement unison oscillators: multiple versions of slightly detuned oscillators that are added up to make a signal. Veikko Sariola 2020-05-19 21:12:49 +03:00
  • adc4a6e45f Implement sample-based oscillators, with sample import from gm.dls. Veikko Sariola 2020-05-19 18:29:47 +03:00
  • 77b989d88d Optimize size. Veikko Sariola 2020-05-18 16:25:20 +03:00
  • 666fd385d1 Fix bug in SEND STEREO. Veikko Sariola 2020-05-18 16:23:49 +03:00
  • 5d1145be39 Improve README. Veikko Sariola 2020-05-17 16:48:28 +03:00
  • fc0ad4c011 Implement compressor. Veikko Sariola 2020-05-17 16:37:08 +03:00
  • 71a5a18257 Implement player speed modulation opcode for triplets and such. Veikko Sariola 2020-05-17 09:51:20 +03:00
  • 15717557f1 Split polyphony test into two tests. Veikko Sariola 2020-05-17 08:32:35 +03:00
  • f06810d956 Optimize size. Veikko Sariola 2020-05-16 23:53:39 +03:00
  • 3b33b4e4d2 Improve README. Veikko Sariola 2020-05-16 23:26:21 +03:00
  • d87d2e22cf Implement new effect: bit-crusher. Veikko Sariola 2020-05-16 23:22:31 +03:00
  • 6a0a2fc36c Optimize the implementations of gain and invgain. Veikko Sariola 2020-05-16 23:01:16 +03:00
  • ac5b4dd496 Make clip opcode working and add regression tests to it. Veikko Sariola 2020-05-16 22:49:59 +03:00